Hydra  4.0.1
A header-only templated C++ framework to perform data analysis on massively parallel platforms.
Histogram

Histogram. More...

Data Structures

class  hydra::DenseHistogram< T, N, BACKEND, typename, typename >
 
class  hydra::DenseHistogram< T, 1, hydra::detail::BackendPolicy< BACKEND >, detail::unidimensional >
 Class representing one-dimensional dense histogram. More...
 
class  hydra::DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >
 Class representing multidimensional dense histograms. More...
 
class  hydra::SparseHistogram< T, N, BACKEND, typename, typename >
 
class  hydra::SparseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional >
 Class representing one-dimensional sparse histogram. More...
 
class  hydra::SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >
 Class representing multidimensional sparse histogram. More...
 

Functions

template<typename T , typename Iterator , size_t N, hydra::detail::Backend BACKEND>
DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensionalhydra::make_dense_histogram (detail::BackendPolicy< BACKEND > backend, std::array< size_t, N >const &grid, std::array< double, N > const &lowerlimits, std::array< double, N > const &upperlimits, Iterator first, Iterator end)
 Function to make a N-dimensional dense histogram. More...
 
template<typename T , size_t N, hydra::detail::Backend BACKEND, typename Iterable >
std::enable_if< hydra::detail::is_iterable< Iterable >::value, DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional > >::type hydra::make_dense_histogram (detail::BackendPolicy< BACKEND > backend, std::array< size_t, N > const &grid, std::array< double, N > const &lowerlimits, std::array< double, N > const &upperlimits, Iterable &&data)
 Function to make a N-dimensional dense histogram. More...
 
template<typename T , size_t N, hydra::detail::Backend BACKEND, typename Iterable1 , typename Iterable2 >
std::enable_if< hydra::detail::is_iterable< Iterable1 >::value &&hydra::detail::is_iterable< Iterable2 >::value, DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional > >::type hydra::make_dense_histogram (detail::BackendPolicy< BACKEND > backend, std::array< size_t, N > const &grid, std::array< double, N > const &lowerlimits, std::array< double, N > const &upperlimits, Iterable1 &&data, Iterable2 &&weight)
 Function to make a N-dimensional dense histogram. More...
 
template<typename T , typename Iterator , hydra::detail::Backend BACKEND>
DenseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensionalhydra::make_dense_histogram (detail::BackendPolicy< BACKEND > backend, size_t nbins, double lowerlimit, double upperlimit, Iterator first, Iterator end)
 Function to make a 1-dimensional dense histogram. More...
 
template<typename T , typename Iterator1 , typename Iterator2 , hydra::detail::Backend BACKEND>
DenseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensionalhydra::make_dense_histogram (detail::BackendPolicy< BACKEND > backend, size_t nbins, double lowerlimit, double upperlimit, Iterator1 first, Iterator1 end, Iterator2 wfirst)
 Function to make a 1-dimensional dense histogram. More...
 
template<typename T , hydra::detail::Backend BACKEND, typename Iterable >
std::enable_if< hydra::detail::is_iterable< Iterable >::value, DenseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional > >::type hydra::make_dense_histogram (detail::BackendPolicy< BACKEND > backend, size_t nbins, double lowerlimits, double upperlimits, Iterable &&data)
 Function to make a N-dimensional dense histogram. More...
 
template<typename T , hydra::detail::Backend BACKEND, typename Iterable1 , typename Iterable2 >
std::enable_if< hydra::detail::is_iterable< Iterable1 >::value &&hydra::detail::is_iterable< Iterable2 >::value, DenseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional > >::type hydra::make_dense_histogram (detail::BackendPolicy< BACKEND > backend, size_t nbins, double lowerlimits, double upperlimits, Iterable1 &&data, Iterable2 &&weight)
 Function to make a N-dimensional dense histogram. More...
 
template<typename T , typename Iterator , size_t N, hydra::detail::Backend BACKEND>
SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensionalhydra::make_sparse_histogram (detail::BackendPolicy< BACKEND > backend, std::array< size_t, N > grid, std::array< double, N > const &lowerlimits, std::array< double, N > const &upperlimits, Iterator first, Iterator end)
 Function to make a N-dimensional sparse histogram. More...
 
template<typename T , typename Iterator1 , typename Iterator2 , size_t N, hydra::detail::Backend BACKEND>
SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensionalhydra::make_sparse_histogram (detail::BackendPolicy< BACKEND >, std::array< size_t, N > grid, std::array< double, N > const &lowerlimits, std::array< double, N > const &upperlimits, Iterator1 first, Iterator1 end, Iterator2 wfirst)
 Function to make a N-dimensional sparse histogram. More...
 
template<typename T , typename Iterator1 , typename Iterator2 , hydra::detail::Backend BACKEND>
SparseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensionalhydra::make_sparse_histogram (detail::BackendPolicy< BACKEND >, size_t nbins, double lowerlimit, double upperlimit, Iterator1 first, Iterator1 end, Iterator2 wfirst)
 Function to make a 1-dimensional sparse histogram. More...
 
template<typename T , hydra::detail::Backend BACKEND, typename Iterable >
std::enable_if< hydra::detail::is_iterable< Iterable >::value, SparseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional > >::type hydra::make_sparse_histogram (detail::BackendPolicy< BACKEND > backend, size_t nbins, double lowerlimit, double upperlimit, Iterable &&data)
 Function to make a 1-dimensional sparse histogram. More...
 
template<typename T , hydra::detail::Backend BACKEND, typename Iterable1 , typename Iterable2 >
std::enable_if< hydra::detail::is_iterable< Iterable1 >::value &&hydra::detail::is_iterable< Iterable2 >::value, SparseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional > >::type hydra::make_sparse_histogram (detail::BackendPolicy< BACKEND > backend, size_t nbins, double lowerlimit, double upperlimit, Iterable1 &&data, Iterable2 &&weights)
 Function to make a 1-dimensional sparse histogram. More...
 
template<typename T , size_t N, hydra::detail::Backend BACKEND, typename Iterable >
std::enable_if< hydra::detail::is_iterable< Iterable >::value, SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional > >::type hydra::make_sparse_histogram (detail::BackendPolicy< BACKEND > backend, std::array< size_t, N >const &grid, std::array< double, N >const &lowerlimits, std::array< double, N >const &upperlimits, Iterable &&data)
 Function to make a N-dimensional sparse histogram. More...
 
template<typename T , size_t N, hydra::detail::Backend BACKEND, typename Iterable1 , typename Iterable2 >
std::enable_if< hydra::detail::is_iterable< Iterable1 >::value &&hydra::detail::is_iterable< Iterable2 >::value, SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional > >::type hydra::make_sparse_histogram (detail::BackendPolicy< BACKEND > backend, std::array< size_t, N >const &grid, std::array< double, N >const &lowerlimits, std::array< double, N >const &upperlimits, Iterable1 &&data, Iterable2 &&weights)
 Function to make a N-dimensional sparse histogram. More...
 
template<typename T , typename Iterator , hydra::detail::Backend BACKEND>
SparseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::multidimensionalhydra::make_sparse_histogram (detail::BackendPolicy< BACKEND > backend, size_t nbins, double lowerlimit, double upperlimit, Iterator first, Iterator end)
 Function to make a 1-dimensional sparse histogram. More...
 

Detailed Description

Histogram.


Data Structure Documentation

◆ hydra::DenseHistogram

class hydra::DenseHistogram

template<typename T, size_t N, typename BACKEND, typename = typename detail::dimensionality<N>::type, typename = typename std::enable_if<std::is_arithmetic<T>::value, void>::type>
class hydra::DenseHistogram< T, N, BACKEND, typename, typename >

Examples:
basic_fit.inl, basic_fit_range_semantics.inl, binned_extended_logLL_fit.inl, breit_wigner_plus_polynomial.inl, crystal_ball_plus_exponential.inl, dense_histogram.inl, double_gaussian_plus_exponential.inl, extended_logLL_fit.inl, fit_convoluted_pdfs.inl, fit_gaussian.C, fit_johnson.C, fractional_logLL_fit.inl, gaussian_plus_argus.inl, multidimensional_fit.inl, range_semantics.inl, and splot.inl.
Collaboration diagram for hydra::DenseHistogram< T, N, BACKEND, typename, typename >:

◆ hydra::DenseHistogram< T, 1, hydra::detail::BackendPolicy< BACKEND >, detail::unidimensional >

class hydra::DenseHistogram< T, 1, hydra::detail::BackendPolicy< BACKEND >, detail::unidimensional >

template<typename T, hydra::detail::Backend BACKEND>
class hydra::DenseHistogram< T, 1, hydra::detail::BackendPolicy< BACKEND >, detail::unidimensional >

Class representing one-dimensional dense histogram.

Collaboration diagram for hydra::DenseHistogram< T, 1, hydra::detail::BackendPolicy< BACKEND >, detail::unidimensional >:

Public Member Functions

 DenseHistogram ()=delete
 
 DenseHistogram (size_t grid, double lowerlimits, double upperlimits)
 
 DenseHistogram (DenseHistogram< T, 1, hydra::detail::BackendPolicy< BACKEND >, detail::unidimensional > const &other)
 
 DenseHistogram (DenseHistogram< T, 1, hydra::detail::BackendPolicy< BACKEND >, detail::unidimensional > &&other)
 
template<hydra::detail::Backend BACKEND2>
 DenseHistogram (DenseHistogram< T, 1, hydra::detail::BackendPolicy< BACKEND2 >, detail::unidimensional > const &other)
 
iterator begin ()
 
const_iterator begin () const
 
pointer data ()
 
iterator end ()
 
const_iterator end () const
 
template<typename Iterator >
DenseHistogram< T, 1, hydra::detail::BackendPolicy< BACKEND >, detail::unidimensional > & Fill (Iterator begin, Iterator end)
 
template<typename Iterator1 , typename Iterator2 >
DenseHistogram< T, 1, hydra::detail::BackendPolicy< BACKEND >, detail::unidimensional > & Fill (Iterator1 begin, Iterator1 end, Iterator2 wbegin)
 
template<typename Iterable >
std::enable_if< hydra::detail::is_iterable< Iterable >::value, DenseHistogram< T, 1, hydra::detail::BackendPolicy< BACKEND >, detail::unidimensional > &>::type Fill (Iterable &&container)
 
template<typename Iterable1 , typename Iterable2 >
std::enable_if< hydra::detail::is_iterable< Iterable1 >::value &&hydra::detail::is_iterable< Iterable2 >::value, DenseHistogram< T, 1, hydra::detail::BackendPolicy< BACKEND >, detail::unidimensional > &>::type Fill (Iterable1 &&container, Iterable2 &&wbegin)
 
template<hydra::detail::Backend BACKEND2, typename Iterator >
DenseHistogram< T, 1, hydra::detail::BackendPolicy< BACKEND >, detail::unidimensional > & Fill (detail::BackendPolicy< BACKEND2 > const &exec_policy, Iterator begin, Iterator end)
 
template<hydra::detail::Backend BACKEND2, typename Iterator1 , typename Iterator2 >
DenseHistogram< T, 1, hydra::detail::BackendPolicy< BACKEND >, detail::unidimensional > & Fill (detail::BackendPolicy< BACKEND2 > const &exec_policy, Iterator1 begin, Iterator1 end, Iterator2 wbegin)
 
double GetBinContent (size_t i)
 
Range< hydra::thrust::transform_iterator< detail::GetBinCenter< T, 1 >, hydra::thrust::counting_iterator< size_t > > > GetBinsCenters () const
 
Range< const_iterator > GetBinsContents () const
 
Range< iterator > GetBinsContents ()
 
const storage_t & GetContents () const
 
size_t GetGrid () const
 
GetLowerLimits () const
 
size_t GetNBins () const
 
GetUpperLimits () const
 
DenseHistogram< T, 1, hydra::detail::BackendPolicy< BACKEND >, detail::unidimensional > & operator= (DenseHistogram< T, 1, hydra::detail::BackendPolicy< BACKEND >, detail::unidimensional > const &other)
 
DenseHistogram< T, 1, hydra::detail::BackendPolicy< BACKEND >, detail::unidimensional > & operator= (DenseHistogram< T, 1, hydra::detail::BackendPolicy< BACKEND >, detail::unidimensional > &&other)
 
template<hydra::detail::Backend BACKEND2>
DenseHistogram< T, 1, hydra::detail::BackendPolicy< BACKEND >, detail::unidimensional > & operator= (DenseHistogram< T, 1, hydra::detail::BackendPolicy< BACKEND2 >, detail::unidimensional > const &other)
 
reference operator[] (size_t i)
 
value_type operator[] (size_t i) const
 
void SetContents (storage_t histogram)
 
size_t size () const
 

Constructor & Destructor Documentation

◆ DenseHistogram() [1/5]

template<typename T , hydra::detail::Backend BACKEND>
hydra::DenseHistogram< T, 1, hydra::detail::BackendPolicy< BACKEND >, detail::unidimensional >::DenseHistogram ( )
delete

◆ DenseHistogram() [2/5]

template<typename T , hydra::detail::Backend BACKEND>
hydra::DenseHistogram< T, 1, hydra::detail::BackendPolicy< BACKEND >, detail::unidimensional >::DenseHistogram ( size_t  grid,
double  lowerlimits,
double  upperlimits 
)
inline

◆ DenseHistogram() [3/5]

template<typename T , hydra::detail::Backend BACKEND>
hydra::DenseHistogram< T, 1, hydra::detail::BackendPolicy< BACKEND >, detail::unidimensional >::DenseHistogram ( DenseHistogram< T, 1, hydra::detail::BackendPolicy< BACKEND >, detail::unidimensional > const &  other)
inline

◆ DenseHistogram() [4/5]

template<typename T , hydra::detail::Backend BACKEND>
hydra::DenseHistogram< T, 1, hydra::detail::BackendPolicy< BACKEND >, detail::unidimensional >::DenseHistogram ( DenseHistogram< T, 1, hydra::detail::BackendPolicy< BACKEND >, detail::unidimensional > &&  other)
inline

◆ DenseHistogram() [5/5]

template<typename T , hydra::detail::Backend BACKEND>
template<hydra::detail::Backend BACKEND2>
hydra::DenseHistogram< T, 1, hydra::detail::BackendPolicy< BACKEND >, detail::unidimensional >::DenseHistogram ( DenseHistogram< T, 1, hydra::detail::BackendPolicy< BACKEND2 >, detail::unidimensional > const &  other)
inline

Member Function Documentation

◆ begin() [1/2]

template<typename T , hydra::detail::Backend BACKEND>
iterator hydra::DenseHistogram< T, 1, hydra::detail::BackendPolicy< BACKEND >, detail::unidimensional >::begin ( )
inline

◆ begin() [2/2]

template<typename T , hydra::detail::Backend BACKEND>
const_iterator hydra::DenseHistogram< T, 1, hydra::detail::BackendPolicy< BACKEND >, detail::unidimensional >::begin ( ) const
inline

◆ data()

template<typename T , hydra::detail::Backend BACKEND>
pointer hydra::DenseHistogram< T, 1, hydra::detail::BackendPolicy< BACKEND >, detail::unidimensional >::data ( )
inline

◆ end() [1/2]

template<typename T , hydra::detail::Backend BACKEND>
iterator hydra::DenseHistogram< T, 1, hydra::detail::BackendPolicy< BACKEND >, detail::unidimensional >::end ( )
inline

◆ end() [2/2]

template<typename T , hydra::detail::Backend BACKEND>
const_iterator hydra::DenseHistogram< T, 1, hydra::detail::BackendPolicy< BACKEND >, detail::unidimensional >::end ( ) const
inline

◆ Fill() [1/6]

template<typename T , hydra::detail::Backend BACKEND>
template<typename Iterator >
DenseHistogram<T,1, hydra::detail::BackendPolicy<BACKEND>, detail::unidimensional>& hydra::DenseHistogram< T, 1, hydra::detail::BackendPolicy< BACKEND >, detail::unidimensional >::Fill ( Iterator  begin,
Iterator  end 
)

◆ Fill() [2/6]

template<typename T , hydra::detail::Backend BACKEND>
template<typename Iterator1 , typename Iterator2 >
DenseHistogram<T,1, hydra::detail::BackendPolicy<BACKEND>, detail::unidimensional>& hydra::DenseHistogram< T, 1, hydra::detail::BackendPolicy< BACKEND >, detail::unidimensional >::Fill ( Iterator1  begin,
Iterator1  end,
Iterator2  wbegin 
)

◆ Fill() [3/6]

template<typename T , hydra::detail::Backend BACKEND>
template<typename Iterable >
std::enable_if< hydra::detail::is_iterable<Iterable>::value, DenseHistogram<T,1, hydra::detail::BackendPolicy<BACKEND>, detail::unidimensional>& >::type hydra::DenseHistogram< T, 1, hydra::detail::BackendPolicy< BACKEND >, detail::unidimensional >::Fill ( Iterable &&  container)
inline

◆ Fill() [4/6]

template<typename T , hydra::detail::Backend BACKEND>
template<typename Iterable1 , typename Iterable2 >
std::enable_if< hydra::detail::is_iterable<Iterable1>::value && hydra::detail::is_iterable<Iterable2>::value, DenseHistogram<T,1, hydra::detail::BackendPolicy<BACKEND>, detail::unidimensional>& >::type hydra::DenseHistogram< T, 1, hydra::detail::BackendPolicy< BACKEND >, detail::unidimensional >::Fill ( Iterable1 &&  container,
Iterable2 &&  wbegin 
)
inline

◆ Fill() [5/6]

template<typename T , hydra::detail::Backend BACKEND>
template<hydra::detail::Backend BACKEND2, typename Iterator >
DenseHistogram<T,1, hydra::detail::BackendPolicy<BACKEND>, detail::unidimensional>& hydra::DenseHistogram< T, 1, hydra::detail::BackendPolicy< BACKEND >, detail::unidimensional >::Fill ( detail::BackendPolicy< BACKEND2 > const &  exec_policy,
Iterator  begin,
Iterator  end 
)
inline

◆ Fill() [6/6]

template<typename T , hydra::detail::Backend BACKEND>
template<hydra::detail::Backend BACKEND2, typename Iterator1 , typename Iterator2 >
DenseHistogram<T,1, hydra::detail::BackendPolicy<BACKEND>, detail::unidimensional>& hydra::DenseHistogram< T, 1, hydra::detail::BackendPolicy< BACKEND >, detail::unidimensional >::Fill ( detail::BackendPolicy< BACKEND2 > const &  exec_policy,
Iterator1  begin,
Iterator1  end,
Iterator2  wbegin 
)
inline

◆ GetBinContent()

template<typename T , hydra::detail::Backend BACKEND>
double hydra::DenseHistogram< T, 1, hydra::detail::BackendPolicy< BACKEND >, detail::unidimensional >::GetBinContent ( size_t  i)
inline

◆ GetBinsCenters()

template<typename T , hydra::detail::Backend BACKEND>
Range<hydra::thrust::transform_iterator<detail::GetBinCenter<T,1>, hydra::thrust::counting_iterator<size_t> > > hydra::DenseHistogram< T, 1, hydra::detail::BackendPolicy< BACKEND >, detail::unidimensional >::GetBinsCenters ( ) const
inline

◆ GetBinsContents() [1/2]

template<typename T , hydra::detail::Backend BACKEND>
Range<const_iterator> hydra::DenseHistogram< T, 1, hydra::detail::BackendPolicy< BACKEND >, detail::unidimensional >::GetBinsContents ( ) const
inline

◆ GetBinsContents() [2/2]

template<typename T , hydra::detail::Backend BACKEND>
Range<iterator> hydra::DenseHistogram< T, 1, hydra::detail::BackendPolicy< BACKEND >, detail::unidimensional >::GetBinsContents ( )
inline

◆ GetContents()

template<typename T , hydra::detail::Backend BACKEND>
const storage_t& hydra::DenseHistogram< T, 1, hydra::detail::BackendPolicy< BACKEND >, detail::unidimensional >::GetContents ( ) const
inline

◆ GetGrid()

template<typename T , hydra::detail::Backend BACKEND>
size_t hydra::DenseHistogram< T, 1, hydra::detail::BackendPolicy< BACKEND >, detail::unidimensional >::GetGrid ( ) const
inline

◆ GetLowerLimits()

template<typename T , hydra::detail::Backend BACKEND>
T hydra::DenseHistogram< T, 1, hydra::detail::BackendPolicy< BACKEND >, detail::unidimensional >::GetLowerLimits ( ) const
inline

◆ GetNBins()

template<typename T , hydra::detail::Backend BACKEND>
size_t hydra::DenseHistogram< T, 1, hydra::detail::BackendPolicy< BACKEND >, detail::unidimensional >::GetNBins ( ) const
inline

◆ GetUpperLimits()

template<typename T , hydra::detail::Backend BACKEND>
T hydra::DenseHistogram< T, 1, hydra::detail::BackendPolicy< BACKEND >, detail::unidimensional >::GetUpperLimits ( ) const
inline

◆ operator=() [1/3]

template<typename T , hydra::detail::Backend BACKEND>
DenseHistogram<T,1, hydra::detail::BackendPolicy<BACKEND>, detail::unidimensional>& hydra::DenseHistogram< T, 1, hydra::detail::BackendPolicy< BACKEND >, detail::unidimensional >::operator= ( DenseHistogram< T, 1, hydra::detail::BackendPolicy< BACKEND >, detail::unidimensional > const &  other)
inline

◆ operator=() [2/3]

template<typename T , hydra::detail::Backend BACKEND>
DenseHistogram<T,1, hydra::detail::BackendPolicy<BACKEND>, detail::unidimensional>& hydra::DenseHistogram< T, 1, hydra::detail::BackendPolicy< BACKEND >, detail::unidimensional >::operator= ( DenseHistogram< T, 1, hydra::detail::BackendPolicy< BACKEND >, detail::unidimensional > &&  other)
inline

◆ operator=() [3/3]

template<typename T , hydra::detail::Backend BACKEND>
template<hydra::detail::Backend BACKEND2>
DenseHistogram<T,1, hydra::detail::BackendPolicy<BACKEND>, detail::unidimensional>& hydra::DenseHistogram< T, 1, hydra::detail::BackendPolicy< BACKEND >, detail::unidimensional >::operator= ( DenseHistogram< T, 1, hydra::detail::BackendPolicy< BACKEND2 >, detail::unidimensional > const &  other)
inline

◆ operator[]() [1/2]

template<typename T , hydra::detail::Backend BACKEND>
reference hydra::DenseHistogram< T, 1, hydra::detail::BackendPolicy< BACKEND >, detail::unidimensional >::operator[] ( size_t  i)
inline

◆ operator[]() [2/2]

template<typename T , hydra::detail::Backend BACKEND>
value_type hydra::DenseHistogram< T, 1, hydra::detail::BackendPolicy< BACKEND >, detail::unidimensional >::operator[] ( size_t  i) const
inline

◆ SetContents()

template<typename T , hydra::detail::Backend BACKEND>
void hydra::DenseHistogram< T, 1, hydra::detail::BackendPolicy< BACKEND >, detail::unidimensional >::SetContents ( storage_t  histogram)
inline

◆ size()

template<typename T , hydra::detail::Backend BACKEND>
size_t hydra::DenseHistogram< T, 1, hydra::detail::BackendPolicy< BACKEND >, detail::unidimensional >::size ( ) const
inline

◆ hydra::DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >

class hydra::DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >

template<typename T, size_t N, hydra::detail::Backend BACKEND>
class hydra::DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >

Class representing multidimensional dense histograms.

Template Parameters
Ttype of data to histogram
Nnumber of dimensions
BACKENDmemory space where histogram is allocated
Collaboration diagram for hydra::DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >:

Public Member Functions

 DenseHistogram ()=delete
 
 DenseHistogram (std::array< size_t, N > grid, std::array< double, N > const &lowerlimits, std::array< double, N > const &upperlimits)
 
 DenseHistogram (size_t(&grid)[N], double(&lowerlimits)[N], double(&upperlimits)[N])
 
template<typename Int , typename = typename std::enable_if<std::is_integral<Int>::value, void>::type>
 DenseHistogram (std::array< Int, N > grid, std::array< double, N > const &lowerlimits, std::array< double, N > const &upperlimits)
 
template<typename Int , typename = typename std::enable_if<std::is_integral<Int>::value, void>::type>
 DenseHistogram (Int(&grid)[N], double(&lowerlimits)[N], double(&upperlimits)[N])
 
 DenseHistogram (DenseHistogram< T, N, hydra::detail::BackendPolicy< BACKEND >, detail::multidimensional > const &other)
 
 DenseHistogram (DenseHistogram< T, N, hydra::detail::BackendPolicy< BACKEND >, detail::multidimensional > &&other)
 
template<hydra::detail::Backend BACKEND2>
 DenseHistogram (DenseHistogram< T, N, hydra::detail::BackendPolicy< BACKEND2 >, detail::multidimensional > const &other)
 
iterator begin ()
 
const_iterator begin () const
 
pointer data ()
 
iterator end ()
 
const_iterator end () const
 
template<typename Iterator1, typename Iterator2 >
DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional > & Fill (Iterator1 begin, Iterator1 end, Iterator2 wbegin)
 
template<hydra::detail::Backend BACKEND2, typename Iterator1 , typename Iterator2 >
DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional > & Fill (detail::BackendPolicy< BACKEND2 > const &exec_policy, Iterator1 begin, Iterator1 end, Iterator2 wbegin)
 
template<typename Iterator >
DenseHistogram< T, N, hydra::detail::BackendPolicy< BACKEND >, detail::multidimensional > & Fill (Iterator begin, Iterator end)
 
template<typename Iterator1 , typename Iterator2 >
DenseHistogram< T, N, hydra::detail::BackendPolicy< BACKEND >, detail::multidimensional > & Fill (Iterator1 begin, Iterator1 end, Iterator2 wbegin)
 
template<typename Iterable >
std::enable_if< hydra::detail::is_iterable< Iterable >::value, DenseHistogram< T, N, hydra::detail::BackendPolicy< BACKEND >, detail::multidimensional > & >::type Fill (Iterable &container)
 
template<typename Iterable1 , typename Iterable2 >
std::enable_if< hydra::detail::is_iterable< Iterable1 >::value &&hydra::detail::is_iterable< Iterable2 >::value, DenseHistogram< T, N, hydra::detail::BackendPolicy< BACKEND >, detail::multidimensional > &>::type Fill (Iterable1 &container, Iterable2 &wbegin)
 
template<hydra::detail::Backend BACKEND2, typename Iterator >
DenseHistogram< T, N, hydra::detail::BackendPolicy< BACKEND >, detail::multidimensional > & Fill (detail::BackendPolicy< BACKEND2 > const &exec_policy, Iterator begin, Iterator end)
 
template<hydra::detail::Backend BACKEND2, typename Iterator1 , typename Iterator2 >
DenseHistogram< T, N, hydra::detail::BackendPolicy< BACKEND >, detail::multidimensional > & Fill (detail::BackendPolicy< BACKEND2 > const &exec_policy, Iterator1 begin, Iterator1 end, Iterator2 wbegin)
 
size_t GetBin (size_t(&bins)[N])
 
size_t GetBin (std::array< size_t, N > const &bins)
 
template<typename Int , typename = typename std::enable_if<std::is_integral<Int>::value, void>::type>
size_t GetBin (Int(&bins)[N])
 
template<typename Int , typename = typename std::enable_if<std::is_integral<Int>::value, void>::type>
size_t GetBin (std::array< Int, N > const &bins)
 
double GetBinContent (size_t(&bins)[N])
 
double GetBinContent (std::array< size_t, N > const &bins)
 
template<typename Int , typename = typename std::enable_if<std::is_integral<Int>::value, void>::type>
double GetBinContent (Int(&bins)[N])
 
template<typename Int , typename = typename std::enable_if<std::is_integral<Int>::value, void>::type>
double GetBinContent (std::array< Int, N > const &bins)
 
double GetBinContent (size_t bin)
 
template<unsigned int I>
Range< hydra::thrust::transform_iterator< detail::GetAxisBinCenter< T, N, I >, hydra::thrust::counting_iterator< size_t > > > GetBinsCenters (placeholders::placeholder< I >)
 
Range< hydra::thrust::transform_iterator< detail::GetBinCenter< T, N >, hydra::thrust::counting_iterator< size_t > > > GetBinsCenters ()
 
Range< const_iterator > GetBinsContents () const
 
Range< iterator > GetBinsContents ()
 
const storage_t & GetContents () const
 
size_t GetGrid (size_t i) const
 
void GetIndexes (size_t globalbin, size_t(&bins)[N])
 
void GetIndexes (size_t globalbin, std::array< size_t, N > &bins)
 
template<typename Int , typename = typename std::enable_if<std::is_integral<Int>::value, void>::type>
void GetIndexes (size_t globalbin, Int(&bins)[N])
 
template<typename Int , typename = typename std::enable_if<std::is_integral<Int>::value, void>::type>
void GetIndexes (size_t globalbin, std::array< Int, N > &bins)
 
GetLowerLimits (size_t i) const
 
size_t GetNBins () const
 
GetUpperLimits (size_t i) const
 
template<size_t M = N>
std::enable_if< M==2, T >::type Interpolate (std::array< size_t, 2 > const &point)
 
template<size_t M = N>
std::enable_if< M==3, T >::type Interpolate (std::array< size_t, 3 > const &point)
 
template<size_t M = N>
std::enable_if< M==4, T >::type Interpolate (std::array< size_t, 4 > const &point)
 
DenseHistogram< T, N, hydra::detail::BackendPolicy< BACKEND >, detail::multidimensional > & operator= (DenseHistogram< T, N, hydra::detail::BackendPolicy< BACKEND >, detail::multidimensional > const &other)
 
DenseHistogram< T, N, hydra::detail::BackendPolicy< BACKEND >, detail::multidimensional > & operator= (DenseHistogram< T, N, hydra::detail::BackendPolicy< BACKEND >, detail::multidimensional > &&other)
 
template<hydra::detail::Backend BACKEND2>
DenseHistogram< T, N, hydra::detail::BackendPolicy< BACKEND >, detail::multidimensional > & operator= (DenseHistogram< T, N, hydra::detail::BackendPolicy< BACKEND2 >, detail::multidimensional > const &other)
 
reference operator[] (size_t i)
 
value_type operator[] (size_t i) const
 
void SetContents (storage_t histogram)
 
size_t size () const
 

Constructor & Destructor Documentation

◆ DenseHistogram() [1/8]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
hydra::DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::DenseHistogram ( )
delete

◆ DenseHistogram() [2/8]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
hydra::DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::DenseHistogram ( std::array< size_t, N >  grid,
std::array< double, N > const &  lowerlimits,
std::array< double, N > const &  upperlimits 
)
inlineexplicit

◆ DenseHistogram() [3/8]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
hydra::DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::DenseHistogram ( size_t(&)  grid[N],
double(&)  lowerlimits[N],
double(&)  upperlimits[N] 
)
inlineexplicit

◆ DenseHistogram() [4/8]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
template<typename Int , typename = typename std::enable_if<std::is_integral<Int>::value, void>::type>
hydra::DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::DenseHistogram ( std::array< Int, N >  grid,
std::array< double, N > const &  lowerlimits,
std::array< double, N > const &  upperlimits 
)
inline

◆ DenseHistogram() [5/8]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
template<typename Int , typename = typename std::enable_if<std::is_integral<Int>::value, void>::type>
hydra::DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::DenseHistogram ( Int(&)  grid[N],
double(&)  lowerlimits[N],
double(&)  upperlimits[N] 
)
inline

◆ DenseHistogram() [6/8]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
hydra::DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::DenseHistogram ( DenseHistogram< T, N, hydra::detail::BackendPolicy< BACKEND >, detail::multidimensional > const &  other)
inline

◆ DenseHistogram() [7/8]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
hydra::DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::DenseHistogram ( DenseHistogram< T, N, hydra::detail::BackendPolicy< BACKEND >, detail::multidimensional > &&  other)
inline

◆ DenseHistogram() [8/8]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
template<hydra::detail::Backend BACKEND2>
hydra::DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::DenseHistogram ( DenseHistogram< T, N, hydra::detail::BackendPolicy< BACKEND2 >, detail::multidimensional > const &  other)
inline

Member Function Documentation

◆ begin() [1/2]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
iterator hydra::DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::begin ( )
inline

◆ begin() [2/2]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
const_iterator hydra::DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::begin ( ) const
inline

◆ data()

template<typename T , size_t N, hydra::detail::Backend BACKEND>
pointer hydra::DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::data ( )
inline

◆ end() [1/2]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
iterator hydra::DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::end ( )
inline

◆ end() [2/2]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
const_iterator hydra::DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::end ( ) const
inline

◆ Fill() [1/8]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
template<typename Iterator1, typename Iterator2 >
DenseHistogram<T, N, detail::BackendPolicy<BACKEND>, detail::multidimensional>& hydra::DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::Fill ( Iterator1  begin,
Iterator1  end,
Iterator2  wbegin 
)

◆ Fill() [2/8]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
template<hydra::detail::Backend BACKEND2, typename Iterator1 , typename Iterator2 >
DenseHistogram<T, N, detail::BackendPolicy<BACKEND>, detail::multidimensional>& hydra::DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::Fill ( detail::BackendPolicy< BACKEND2 > const &  exec_policy,
Iterator1  begin,
Iterator1  end,
Iterator2  wbegin 
)

◆ Fill() [3/8]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
template<typename Iterator >
DenseHistogram<T,N, hydra::detail::BackendPolicy<BACKEND>, detail::multidimensional>& hydra::DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::Fill ( Iterator  begin,
Iterator  end 
)
inline

◆ Fill() [4/8]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
template<typename Iterator1 , typename Iterator2 >
DenseHistogram<T,N, hydra::detail::BackendPolicy<BACKEND>, detail::multidimensional>& hydra::DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::Fill ( Iterator1  begin,
Iterator1  end,
Iterator2  wbegin 
)
inline

◆ Fill() [5/8]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
template<typename Iterable >
std::enable_if< hydra::detail::is_iterable<Iterable>::value, DenseHistogram<T,N, hydra::detail::BackendPolicy<BACKEND>, detail::multidimensional>&>::type hydra::DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::Fill ( Iterable &  container)
inline

◆ Fill() [6/8]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
template<typename Iterable1 , typename Iterable2 >
std::enable_if< hydra::detail::is_iterable<Iterable1>::value && hydra::detail::is_iterable<Iterable2>::value, DenseHistogram<T,N, hydra::detail::BackendPolicy<BACKEND>, detail::multidimensional>& >::type hydra::DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::Fill ( Iterable1 &  container,
Iterable2 &  wbegin 
)
inline

◆ Fill() [7/8]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
template<hydra::detail::Backend BACKEND2, typename Iterator >
DenseHistogram<T,N, hydra::detail::BackendPolicy<BACKEND>, detail::multidimensional>& hydra::DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::Fill ( detail::BackendPolicy< BACKEND2 > const &  exec_policy,
Iterator  begin,
Iterator  end 
)
inline

◆ Fill() [8/8]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
template<hydra::detail::Backend BACKEND2, typename Iterator1 , typename Iterator2 >
DenseHistogram<T,N, hydra::detail::BackendPolicy<BACKEND>, detail::multidimensional>& hydra::DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::Fill ( detail::BackendPolicy< BACKEND2 > const &  exec_policy,
Iterator1  begin,
Iterator1  end,
Iterator2  wbegin 
)
inline

◆ GetBin() [1/4]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
size_t hydra::DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::GetBin ( size_t(&)  bins[N])
inline

◆ GetBin() [2/4]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
size_t hydra::DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::GetBin ( std::array< size_t, N > const &  bins)
inline

◆ GetBin() [3/4]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
template<typename Int , typename = typename std::enable_if<std::is_integral<Int>::value, void>::type>
size_t hydra::DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::GetBin ( Int(&)  bins[N])
inline

◆ GetBin() [4/4]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
template<typename Int , typename = typename std::enable_if<std::is_integral<Int>::value, void>::type>
size_t hydra::DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::GetBin ( std::array< Int, N > const &  bins)
inline

◆ GetBinContent() [1/5]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
double hydra::DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::GetBinContent ( size_t(&)  bins[N])
inline

◆ GetBinContent() [2/5]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
double hydra::DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::GetBinContent ( std::array< size_t, N > const &  bins)
inline

◆ GetBinContent() [3/5]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
template<typename Int , typename = typename std::enable_if<std::is_integral<Int>::value, void>::type>
double hydra::DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::GetBinContent ( Int(&)  bins[N])
inline

◆ GetBinContent() [4/5]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
template<typename Int , typename = typename std::enable_if<std::is_integral<Int>::value, void>::type>
double hydra::DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::GetBinContent ( std::array< Int, N > const &  bins)
inline

◆ GetBinContent() [5/5]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
double hydra::DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::GetBinContent ( size_t  bin)
inline

◆ GetBinsCenters() [1/2]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
template<unsigned int I>
Range<hydra::thrust::transform_iterator<detail::GetAxisBinCenter<T,N,I>, hydra::thrust::counting_iterator<size_t> > > hydra::DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::GetBinsCenters ( placeholders::placeholder< I >  )
inline

◆ GetBinsCenters() [2/2]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
Range<hydra::thrust::transform_iterator<detail::GetBinCenter<T,N>, hydra::thrust::counting_iterator<size_t> > > hydra::DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::GetBinsCenters ( )
inline

◆ GetBinsContents() [1/2]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
Range<const_iterator> hydra::DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::GetBinsContents ( ) const
inline

◆ GetBinsContents() [2/2]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
Range<iterator> hydra::DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::GetBinsContents ( )
inline

◆ GetContents()

template<typename T , size_t N, hydra::detail::Backend BACKEND>
const storage_t& hydra::DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::GetContents ( ) const
inline

◆ GetGrid()

template<typename T , size_t N, hydra::detail::Backend BACKEND>
size_t hydra::DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::GetGrid ( size_t  i) const
inline

◆ GetIndexes() [1/4]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
void hydra::DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::GetIndexes ( size_t  globalbin,
size_t(&)  bins[N] 
)
inline

◆ GetIndexes() [2/4]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
void hydra::DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::GetIndexes ( size_t  globalbin,
std::array< size_t, N > &  bins 
)
inline

◆ GetIndexes() [3/4]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
template<typename Int , typename = typename std::enable_if<std::is_integral<Int>::value, void>::type>
void hydra::DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::GetIndexes ( size_t  globalbin,
Int(&)  bins[N] 
)
inline

◆ GetIndexes() [4/4]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
template<typename Int , typename = typename std::enable_if<std::is_integral<Int>::value, void>::type>
void hydra::DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::GetIndexes ( size_t  globalbin,
std::array< Int, N > &  bins 
)
inline

◆ GetLowerLimits()

template<typename T , size_t N, hydra::detail::Backend BACKEND>
T hydra::DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::GetLowerLimits ( size_t  i) const
inline

◆ GetNBins()

template<typename T , size_t N, hydra::detail::Backend BACKEND>
size_t hydra::DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::GetNBins ( ) const
inline

◆ GetUpperLimits()

template<typename T , size_t N, hydra::detail::Backend BACKEND>
T hydra::DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::GetUpperLimits ( size_t  i) const
inline

◆ Interpolate() [1/3]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
template<size_t M>
std::enable_if< M==2, T >::type hydra::DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::Interpolate ( std::array< size_t, 2 > const &  point)
inline

◆ Interpolate() [2/3]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
template<size_t M>
std::enable_if< M==3, T >::type hydra::DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::Interpolate ( std::array< size_t, 3 > const &  point)
inline

◆ Interpolate() [3/3]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
template<size_t M>
std::enable_if< M==4, T >::type hydra::DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::Interpolate ( std::array< size_t, 4 > const &  point)
inline

◆ operator=() [1/3]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
DenseHistogram<T,N, hydra::detail::BackendPolicy<BACKEND>, detail::multidimensional>& hydra::DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::operator= ( DenseHistogram< T, N, hydra::detail::BackendPolicy< BACKEND >, detail::multidimensional > const &  other)
inline

◆ operator=() [2/3]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
DenseHistogram<T,N, hydra::detail::BackendPolicy<BACKEND>, detail::multidimensional>& hydra::DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::operator= ( DenseHistogram< T, N, hydra::detail::BackendPolicy< BACKEND >, detail::multidimensional > &&  other)
inline

◆ operator=() [3/3]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
template<hydra::detail::Backend BACKEND2>
DenseHistogram<T,N, hydra::detail::BackendPolicy<BACKEND>, detail::multidimensional>& hydra::DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::operator= ( DenseHistogram< T, N, hydra::detail::BackendPolicy< BACKEND2 >, detail::multidimensional > const &  other)
inline

◆ operator[]() [1/2]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
reference hydra::DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::operator[] ( size_t  i)
inline

◆ operator[]() [2/2]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
value_type hydra::DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::operator[] ( size_t  i) const
inline

◆ SetContents()

template<typename T , size_t N, hydra::detail::Backend BACKEND>
void hydra::DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::SetContents ( storage_t  histogram)
inline

◆ size()

template<typename T , size_t N, hydra::detail::Backend BACKEND>
size_t hydra::DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::size ( ) const
inline

◆ hydra::SparseHistogram

class hydra::SparseHistogram

template<typename T, size_t N, typename BACKEND, typename = typename detail::dimensionality<N>::type, typename = typename std::enable_if<std::is_arithmetic<T>::value, void>::type>
class hydra::SparseHistogram< T, N, BACKEND, typename, typename >

Examples:
dalitz_plot.C, and dalitz_plot.inl.
Collaboration diagram for hydra::SparseHistogram< T, N, BACKEND, typename, typename >:

◆ hydra::SparseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional >

class hydra::SparseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional >

template<typename T, hydra::detail::Backend BACKEND>
class hydra::SparseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional >

Class representing one-dimensional sparse histogram.

Collaboration diagram for hydra::SparseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional >:

Public Member Functions

 SparseHistogram ()=delete
 
 SparseHistogram (size_t grid, double lowerlimits, double upperlimits)
 
 SparseHistogram (SparseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional > const &other)
 
template<hydra::detail::Backend BACKEND2>
 SparseHistogram (SparseHistogram< T, 1, detail::BackendPolicy< BACKEND2 >, detail::unidimensional > const &other)
 
iterator begin ()
 
const_iterator begin () const
 
pointer_pair data ()
 
iterator end ()
 
const_iterator end () const
 
template<typename Iterator >
SparseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional > & Fill (Iterator begin, Iterator end)
 
template<typename Iterator1 , typename Iterator2 >
SparseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional > & Fill (Iterator1 begin, Iterator1 end, Iterator2 wbegin)
 
template<typename Iterable >
std::enable_if< hydra::detail::is_iterable< Iterable >::value, SparseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional > &>::type Fill (Iterable &&container)
 
template<typename Iterable1 , typename Iterable2 >
std::enable_if< hydra::detail::is_iterable< Iterable1 >::value &&hydra::detail::is_iterable< Iterable2 >::value, SparseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional > &>::type Fill (Iterable1 &&container, Iterable2 &&wbegin)
 
template<hydra::detail::Backend BACKEND2, typename Iterator >
SparseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional > & Fill (detail::BackendPolicy< BACKEND2 > const &exec_policy, Iterator begin, Iterator end)
 
template<hydra::detail::Backend BACKEND2, typename Iterator1 , typename Iterator2 >
SparseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional > & Fill (detail::BackendPolicy< BACKEND2 > const &exec_policy, Iterator1 begin, Iterator1 end, Iterator2 wbegin)
 
double GetBinContent (size_t bin)
 
const storage_keys_t & GetBins () const
 
Range< hydra::thrust::transform_iterator< detail::GetBinCenter< T, 1 >, keys_iterator > > GetBinsCenters ()
 
Range< iterator > GetBinsContents ()
 
const storage_data_t & GetContents () const
 
size_t GetGrid () const
 
GetLowerLimits () const
 
size_t GetNBins () const
 
GetUpperLimits () const
 
SparseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional > & operator= (SparseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional > const &other)
 
template<hydra::detail::Backend BACKEND2>
SparseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional > & operator= (SparseHistogram< T, 1, detail::BackendPolicy< BACKEND2 >, detail::unidimensional > const &other)
 
reference operator[] (size_t i)
 
value_type operator[] (size_t i) const
 
void SetBins (storage_keys_t bins)
 
void SetContents (storage_data_t histogram)
 
size_t size () const
 

Constructor & Destructor Documentation

◆ SparseHistogram() [1/4]

template<typename T , hydra::detail::Backend BACKEND>
hydra::SparseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional >::SparseHistogram ( )
delete

◆ SparseHistogram() [2/4]

template<typename T , hydra::detail::Backend BACKEND>
hydra::SparseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional >::SparseHistogram ( size_t  grid,
double  lowerlimits,
double  upperlimits 
)
inline

◆ SparseHistogram() [3/4]

template<typename T , hydra::detail::Backend BACKEND>
hydra::SparseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional >::SparseHistogram ( SparseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional > const &  other)
inline

◆ SparseHistogram() [4/4]

template<typename T , hydra::detail::Backend BACKEND>
template<hydra::detail::Backend BACKEND2>
hydra::SparseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional >::SparseHistogram ( SparseHistogram< T, 1, detail::BackendPolicy< BACKEND2 >, detail::unidimensional > const &  other)
inline

Member Function Documentation

◆ begin() [1/2]

template<typename T , hydra::detail::Backend BACKEND>
iterator hydra::SparseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional >::begin ( )
inline

◆ begin() [2/2]

template<typename T , hydra::detail::Backend BACKEND>
const_iterator hydra::SparseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional >::begin ( ) const
inline

◆ data()

template<typename T , hydra::detail::Backend BACKEND>
pointer_pair hydra::SparseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional >::data ( )
inline

◆ end() [1/2]

template<typename T , hydra::detail::Backend BACKEND>
iterator hydra::SparseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional >::end ( )
inline

◆ end() [2/2]

template<typename T , hydra::detail::Backend BACKEND>
const_iterator hydra::SparseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional >::end ( ) const
inline

◆ Fill() [1/6]

template<typename T , hydra::detail::Backend BACKEND>
template<typename Iterator >
SparseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional > & hydra::SparseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional >::Fill ( Iterator  begin,
Iterator  end 
)

◆ Fill() [2/6]

template<typename T , hydra::detail::Backend BACKEND>
template<typename Iterator1 , typename Iterator2 >
SparseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional > & hydra::SparseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional >::Fill ( Iterator1  begin,
Iterator1  end,
Iterator2  wbegin 
)

◆ Fill() [3/6]

template<typename T , hydra::detail::Backend BACKEND>
template<typename Iterable >
std::enable_if< hydra::detail::is_iterable<Iterable>::value, SparseHistogram<T,1, detail::BackendPolicy<BACKEND>,detail::unidimensional >& >::type hydra::SparseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional >::Fill ( Iterable &&  container)
inline

◆ Fill() [4/6]

template<typename T , hydra::detail::Backend BACKEND>
template<typename Iterable1 , typename Iterable2 >
std::enable_if< hydra::detail::is_iterable<Iterable1>::value && hydra::detail::is_iterable<Iterable2>::value, SparseHistogram<T,1, detail::BackendPolicy<BACKEND>,detail::unidimensional >& >::type hydra::SparseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional >::Fill ( Iterable1 &&  container,
Iterable2 &&  wbegin 
)
inline

◆ Fill() [5/6]

template<typename T , hydra::detail::Backend BACKEND>
template<hydra::detail::Backend BACKEND2, typename Iterator >
SparseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional > & hydra::SparseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional >::Fill ( detail::BackendPolicy< BACKEND2 > const &  exec_policy,
Iterator  begin,
Iterator  end 
)

◆ Fill() [6/6]

template<typename T , hydra::detail::Backend BACKEND>
template<hydra::detail::Backend BACKEND2, typename Iterator1 , typename Iterator2 >
SparseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional > & hydra::SparseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional >::Fill ( detail::BackendPolicy< BACKEND2 > const &  exec_policy,
Iterator1  begin,
Iterator1  end,
Iterator2  wbegin 
)

◆ GetBinContent()

template<typename T , hydra::detail::Backend BACKEND>
double hydra::SparseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional >::GetBinContent ( size_t  bin)
inline

◆ GetBins()

template<typename T , hydra::detail::Backend BACKEND>
const storage_keys_t& hydra::SparseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional >::GetBins ( ) const
inline

◆ GetBinsCenters()

template<typename T , hydra::detail::Backend BACKEND>
Range<hydra::thrust::transform_iterator<detail::GetBinCenter<T,1>, keys_iterator> > hydra::SparseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional >::GetBinsCenters ( )
inline

◆ GetBinsContents()

template<typename T , hydra::detail::Backend BACKEND>
Range<iterator> hydra::SparseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional >::GetBinsContents ( )
inline

◆ GetContents()

template<typename T , hydra::detail::Backend BACKEND>
const storage_data_t& hydra::SparseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional >::GetContents ( ) const
inline

◆ GetGrid()

template<typename T , hydra::detail::Backend BACKEND>
size_t hydra::SparseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional >::GetGrid ( ) const
inline

◆ GetLowerLimits()

template<typename T , hydra::detail::Backend BACKEND>
T hydra::SparseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional >::GetLowerLimits ( ) const
inline

◆ GetNBins()

template<typename T , hydra::detail::Backend BACKEND>
size_t hydra::SparseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional >::GetNBins ( ) const
inline

◆ GetUpperLimits()

template<typename T , hydra::detail::Backend BACKEND>
T hydra::SparseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional >::GetUpperLimits ( ) const
inline

◆ operator=() [1/2]

template<typename T , hydra::detail::Backend BACKEND>
SparseHistogram<T,1, detail::BackendPolicy<BACKEND>,detail::unidimensional >& hydra::SparseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional >::operator= ( SparseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional > const &  other)
inline

◆ operator=() [2/2]

template<typename T , hydra::detail::Backend BACKEND>
template<hydra::detail::Backend BACKEND2>
SparseHistogram<T,1, detail::BackendPolicy<BACKEND>,detail::unidimensional >& hydra::SparseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional >::operator= ( SparseHistogram< T, 1, detail::BackendPolicy< BACKEND2 >, detail::unidimensional > const &  other)
inline

◆ operator[]() [1/2]

template<typename T , hydra::detail::Backend BACKEND>
reference hydra::SparseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional >::operator[] ( size_t  i)
inline

◆ operator[]() [2/2]

template<typename T , hydra::detail::Backend BACKEND>
value_type hydra::SparseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional >::operator[] ( size_t  i) const
inline

◆ SetBins()

template<typename T , hydra::detail::Backend BACKEND>
void hydra::SparseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional >::SetBins ( storage_keys_t  bins)
inline

◆ SetContents()

template<typename T , hydra::detail::Backend BACKEND>
void hydra::SparseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional >::SetContents ( storage_data_t  histogram)
inline

◆ size()

template<typename T , hydra::detail::Backend BACKEND>
size_t hydra::SparseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional >::size ( ) const
inline

◆ hydra::SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >

class hydra::SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >

template<typename T, size_t N, hydra::detail::Backend BACKEND>
class hydra::SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >

Class representing multidimensional sparse histogram.

Collaboration diagram for hydra::SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >:

Public Member Functions

 SparseHistogram ()=delete
 
 SparseHistogram (std::array< size_t, N > const &grid, std::array< double, N > const &lowerlimits, std::array< double, N > const &upperlimits)
 
 SparseHistogram (size_t(&grid)[N], T(&lowerlimits)[N], T(&upperlimits)[N])
 
template<typename Int , typename = typename std::enable_if<std::is_integral<Int>::value, void>::type>
 SparseHistogram (std::array< Int, N > const &grid, std::array< double, N > const &lowerlimits, std::array< double, N > const &upperlimits)
 
template<typename Int , typename = typename std::enable_if<std::is_integral<Int>::value, void>::type>
 SparseHistogram (Int(&grid)[N], T(&lowerlimits)[N], T(&upperlimits)[N])
 
 SparseHistogram (SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional > const &other)
 
template<hydra::detail::Backend BACKEND2>
 SparseHistogram (SparseHistogram< T, N, detail::BackendPolicy< BACKEND2 >, detail::multidimensional > const &other)
 
iterator begin ()
 
const_iterator begin () const
 
pointer_pair data ()
 
iterator end ()
 
const_iterator end () const
 
template<typename Iterator >
SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional > & Fill (Iterator begin, Iterator end)
 
template<typename Iterator1 , typename Iterator2 >
SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional > & Fill (Iterator1 begin, Iterator1 end, Iterator2 wbegin)
 
template<typename Iterable >
std::enable_if< hydra::detail::is_iterable< Iterable >::value, SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional > &>::type Fill (Iterable &&container)
 
template<typename Iterable1 , typename Iterable2 >
std::enable_if< hydra::detail::is_iterable< Iterable1 >::value &&hydra::detail::is_iterable< Iterable2 >::value, SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional > &>::type Fill (Iterable1 &&container, Iterable2 &&wbegin)
 
template<hydra::detail::Backend BACKEND2, typename Iterator >
SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional > & Fill (detail::BackendPolicy< BACKEND2 > const &exec_policy, Iterator begin, Iterator end)
 
template<hydra::detail::Backend BACKEND2, typename Iterator1 , typename Iterator2 >
SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional > & Fill (detail::BackendPolicy< BACKEND2 > const &exec_policy, Iterator1 begin, Iterator1 end, Iterator2 wbegin)
 
template<typename Int , typename = typename std::enable_if<std::is_integral<Int>::value, void>::type>
size_t GetBin (Int(&bins)[N])
 
size_t GetBin (std::array< size_t, N > const &bins)
 
template<typename Int , typename = typename std::enable_if<std::is_integral<Int>::value, void>::type>
size_t GetBin (std::array< Int, N > const &bins)
 
template<typename Int , typename = typename std::enable_if<std::is_integral<Int>::value, void>::type>
double GetBinContent (Int(&bins)[N])
 
double GetBinContent (std::array< size_t, N > const &bins)
 
template<typename Int , typename = typename std::enable_if<std::is_integral<Int>::value, void>::type>
double GetBinContent (std::array< Int, N > const &bins)
 
double GetBinContent (size_t bin)
 
const storage_keys_t & GetBins () const
 
Range< hydra::thrust::transform_iterator< detail::GetBinCenter< T, N >, keys_iterator > > GetBinsCenters ()
 
template<unsigned int I>
Range< hydra::thrust::transform_iterator< detail::GetAxisBinCenter< double, N, I >, keys_iterator > > GetBinsCenters (placeholders::placeholder< I >)
 
Range< data_iterator > GetBinsContents () const
 
const storage_data_t & GetContents () const
 
size_t GetGrid (size_t i) const
 
template<typename Int , typename = typename std::enable_if<std::is_integral<Int>::value, void>::type>
void GetIndexes (size_t globalbin, Int(&bins)[N])
 
template<typename Int , typename = typename std::enable_if<std::is_integral<Int>::value, void>::type>
void GetIndexes (size_t globalbin, std::array< Int, N > &bins)
 
GetLowerLimits (size_t i) const
 
size_t GetNBins () const
 
GetUpperLimits (size_t i) const
 
template<size_t M = N>
std::enable_if< M==2, T >::type Interpolate (std::array< size_t, 2 > const &point)
 
template<size_t M = N>
std::enable_if< M==3, T >::type Interpolate (std::array< size_t, 3 > const &point)
 
template<size_t M = N>
std::enable_if< M==4, T >::type Interpolate (std::array< size_t, 4 > const &point)
 
SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional > & operator= (SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional > const &other)
 
template<hydra::detail::Backend BACKEND2>
SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional > & operator= (SparseHistogram< T, N, detail::BackendPolicy< BACKEND2 >, detail::multidimensional > const &other)
 
reference operator[] (size_t i)
 
value_type operator[] (size_t i) const
 
void SetBins (storage_keys_t bins)
 
void SetContents (storage_data_t histogram)
 
size_t size () const
 

Constructor & Destructor Documentation

◆ SparseHistogram() [1/7]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
hydra::SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::SparseHistogram ( )
delete

◆ SparseHistogram() [2/7]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
hydra::SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::SparseHistogram ( std::array< size_t, N > const &  grid,
std::array< double, N > const &  lowerlimits,
std::array< double, N > const &  upperlimits 
)
inlineexplicit

◆ SparseHistogram() [3/7]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
hydra::SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::SparseHistogram ( size_t(&)  grid[N],
T(&)  lowerlimits[N],
T(&)  upperlimits[N] 
)
inlineexplicit

◆ SparseHistogram() [4/7]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
template<typename Int , typename = typename std::enable_if<std::is_integral<Int>::value, void>::type>
hydra::SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::SparseHistogram ( std::array< Int, N > const &  grid,
std::array< double, N > const &  lowerlimits,
std::array< double, N > const &  upperlimits 
)
inline

◆ SparseHistogram() [5/7]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
template<typename Int , typename = typename std::enable_if<std::is_integral<Int>::value, void>::type>
hydra::SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::SparseHistogram ( Int(&)  grid[N],
T(&)  lowerlimits[N],
T(&)  upperlimits[N] 
)
inline

◆ SparseHistogram() [6/7]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
hydra::SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::SparseHistogram ( SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional > const &  other)
inline

◆ SparseHistogram() [7/7]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
template<hydra::detail::Backend BACKEND2>
hydra::SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::SparseHistogram ( SparseHistogram< T, N, detail::BackendPolicy< BACKEND2 >, detail::multidimensional > const &  other)
inline

Member Function Documentation

◆ begin() [1/2]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
iterator hydra::SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::begin ( )
inline

◆ begin() [2/2]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
const_iterator hydra::SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::begin ( ) const
inline

◆ data()

template<typename T , size_t N, hydra::detail::Backend BACKEND>
pointer_pair hydra::SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::data ( )
inline

◆ end() [1/2]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
iterator hydra::SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::end ( )
inline

◆ end() [2/2]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
const_iterator hydra::SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::end ( ) const
inline

◆ Fill() [1/6]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
template<typename Iterator >
SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional > & hydra::SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::Fill ( Iterator  begin,
Iterator  end 
)

◆ Fill() [2/6]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
template<typename Iterator1 , typename Iterator2 >
SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional > & hydra::SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::Fill ( Iterator1  begin,
Iterator1  end,
Iterator2  wbegin 
)

◆ Fill() [3/6]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
template<typename Iterable >
std::enable_if< hydra::detail::is_iterable<Iterable>::value, SparseHistogram<T, N, detail::BackendPolicy<BACKEND>, detail::multidimensional>& >::type hydra::SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::Fill ( Iterable &&  container)
inline

◆ Fill() [4/6]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
template<typename Iterable1 , typename Iterable2 >
std::enable_if< hydra::detail::is_iterable<Iterable1>::value && hydra::detail::is_iterable<Iterable2>::value, SparseHistogram<T, N, detail::BackendPolicy<BACKEND>, detail::multidimensional>& >::type hydra::SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::Fill ( Iterable1 &&  container,
Iterable2 &&  wbegin 
)
inline

◆ Fill() [5/6]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
template<hydra::detail::Backend BACKEND2, typename Iterator >
SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional > & hydra::SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::Fill ( detail::BackendPolicy< BACKEND2 > const &  exec_policy,
Iterator  begin,
Iterator  end 
)
inline

◆ Fill() [6/6]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
template<hydra::detail::Backend BACKEND2, typename Iterator1 , typename Iterator2 >
SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional > & hydra::SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::Fill ( detail::BackendPolicy< BACKEND2 > const &  exec_policy,
Iterator1  begin,
Iterator1  end,
Iterator2  wbegin 
)
inline

◆ GetBin() [1/3]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
template<typename Int , typename = typename std::enable_if<std::is_integral<Int>::value, void>::type>
size_t hydra::SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::GetBin ( Int(&)  bins[N])
inline

◆ GetBin() [2/3]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
size_t hydra::SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::GetBin ( std::array< size_t, N > const &  bins)
inline

◆ GetBin() [3/3]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
template<typename Int , typename = typename std::enable_if<std::is_integral<Int>::value, void>::type>
size_t hydra::SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::GetBin ( std::array< Int, N > const &  bins)
inline

◆ GetBinContent() [1/4]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
template<typename Int , typename = typename std::enable_if<std::is_integral<Int>::value, void>::type>
double hydra::SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::GetBinContent ( Int(&)  bins[N])
inline

◆ GetBinContent() [2/4]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
double hydra::SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::GetBinContent ( std::array< size_t, N > const &  bins)
inline

◆ GetBinContent() [3/4]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
template<typename Int , typename = typename std::enable_if<std::is_integral<Int>::value, void>::type>
double hydra::SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::GetBinContent ( std::array< Int, N > const &  bins)
inline

◆ GetBinContent() [4/4]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
double hydra::SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::GetBinContent ( size_t  bin)
inline

◆ GetBins()

template<typename T , size_t N, hydra::detail::Backend BACKEND>
const storage_keys_t& hydra::SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::GetBins ( ) const
inline

◆ GetBinsCenters() [1/2]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
Range< hydra::thrust::transform_iterator<detail::GetBinCenter<T,N>, keys_iterator> > hydra::SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::GetBinsCenters ( )
inline

◆ GetBinsCenters() [2/2]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
template<unsigned int I>
Range< hydra::thrust::transform_iterator<detail::GetAxisBinCenter<double,N,I>, keys_iterator> > hydra::SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::GetBinsCenters ( placeholders::placeholder< I >  )
inline

◆ GetBinsContents()

template<typename T , size_t N, hydra::detail::Backend BACKEND>
Range<data_iterator> hydra::SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::GetBinsContents ( ) const
inline

◆ GetContents()

template<typename T , size_t N, hydra::detail::Backend BACKEND>
const storage_data_t& hydra::SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::GetContents ( ) const
inline

◆ GetGrid()

template<typename T , size_t N, hydra::detail::Backend BACKEND>
size_t hydra::SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::GetGrid ( size_t  i) const
inline

◆ GetIndexes() [1/2]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
template<typename Int , typename = typename std::enable_if<std::is_integral<Int>::value, void>::type>
void hydra::SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::GetIndexes ( size_t  globalbin,
Int(&)  bins[N] 
)
inline

◆ GetIndexes() [2/2]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
template<typename Int , typename = typename std::enable_if<std::is_integral<Int>::value, void>::type>
void hydra::SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::GetIndexes ( size_t  globalbin,
std::array< Int, N > &  bins 
)
inline

◆ GetLowerLimits()

template<typename T , size_t N, hydra::detail::Backend BACKEND>
T hydra::SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::GetLowerLimits ( size_t  i) const
inline

◆ GetNBins()

template<typename T , size_t N, hydra::detail::Backend BACKEND>
size_t hydra::SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::GetNBins ( ) const
inline

◆ GetUpperLimits()

template<typename T , size_t N, hydra::detail::Backend BACKEND>
T hydra::SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::GetUpperLimits ( size_t  i) const
inline

◆ Interpolate() [1/3]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
template<size_t M>
std::enable_if< M==2, T >::type hydra::SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::Interpolate ( std::array< size_t, 2 > const &  point)
inline

◆ Interpolate() [2/3]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
template<size_t M>
std::enable_if< M==3, T >::type hydra::SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::Interpolate ( std::array< size_t, 3 > const &  point)
inline

◆ Interpolate() [3/3]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
template<size_t M>
std::enable_if< M==4, T >::type hydra::SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::Interpolate ( std::array< size_t, 4 > const &  point)
inline

◆ operator=() [1/2]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
SparseHistogram<T, N, detail::BackendPolicy<BACKEND>, detail::multidimensional>& hydra::SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::operator= ( SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional > const &  other)
inline

◆ operator=() [2/2]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
template<hydra::detail::Backend BACKEND2>
SparseHistogram<T, N, detail::BackendPolicy<BACKEND>, detail::multidimensional>& hydra::SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::operator= ( SparseHistogram< T, N, detail::BackendPolicy< BACKEND2 >, detail::multidimensional > const &  other)
inline

◆ operator[]() [1/2]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
reference hydra::SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::operator[] ( size_t  i)
inline

◆ operator[]() [2/2]

template<typename T , size_t N, hydra::detail::Backend BACKEND>
value_type hydra::SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::operator[] ( size_t  i) const
inline

◆ SetBins()

template<typename T , size_t N, hydra::detail::Backend BACKEND>
void hydra::SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::SetBins ( storage_keys_t  bins)
inline

◆ SetContents()

template<typename T , size_t N, hydra::detail::Backend BACKEND>
void hydra::SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::SetContents ( storage_data_t  histogram)
inline

◆ size()

template<typename T , size_t N, hydra::detail::Backend BACKEND>
size_t hydra::SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >::size ( ) const
inline

Function Documentation

◆ make_dense_histogram() [1/7]

template<typename T , typename Iterator , size_t N, hydra::detail::Backend BACKEND>
DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional > hydra::make_dense_histogram ( detail::BackendPolicy< BACKEND >  backend,
std::array< size_t, N >const &  grid,
std::array< double, N > const &  lowerlimits,
std::array< double, N > const &  upperlimits,
Iterator  first,
Iterator  end 
)

#include <DenseHistogram.h>

Function to make a N-dimensional dense histogram.

Parameters
backend
gridstd::array storing the bins per dimension.
lowerlimitsstd::array storing the lower limits per dimension.
upperlimitsstd::array storing the upper limits per dimension.
firstIterator pointing to the begin of the data range.
endIterator pointing to the end of the data range.
Returns

◆ make_dense_histogram() [2/7]

template<typename T , size_t N, hydra::detail::Backend BACKEND, typename Iterable >
std::enable_if< hydra::detail::is_iterable< Iterable >::value, DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional > >::type hydra::make_dense_histogram ( detail::BackendPolicy< BACKEND >  backend,
std::array< size_t, N > const &  grid,
std::array< double, N > const &  lowerlimits,
std::array< double, N > const &  upperlimits,
Iterable &&  data 
)
inline

#include <DenseHistogram.h>

Function to make a N-dimensional dense histogram.

Parameters
backend
gridstd::array storing the bins per dimension.
lowerlimitsstd::array storing the lower limits per dimension.
upperlimitsstd::array storing the upper limits per dimension.
dataIterable storing the data to histogram.
Returns

◆ make_dense_histogram() [3/7]

template<typename T , size_t N, hydra::detail::Backend BACKEND, typename Iterable1 , typename Iterable2 >
std::enable_if< hydra::detail::is_iterable< Iterable1 >::value &&hydra::detail::is_iterable< Iterable2 >::value, DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional > >::type hydra::make_dense_histogram ( detail::BackendPolicy< BACKEND >  backend,
std::array< size_t, N > const &  grid,
std::array< double, N > const &  lowerlimits,
std::array< double, N > const &  upperlimits,
Iterable1 &&  data,
Iterable2 &&  weight 
)
inline

#include <DenseHistogram.h>

Function to make a N-dimensional dense histogram.

Parameters
backend
gridstd::array storing the bins per dimension.
lowerlimitsstd::array storing the lower limits per dimension.
upperlimitsstd::array storing the upper limits per dimension.
dataIterable storing the data to histogram.
weightIterable storing the data to histogram.
Returns

◆ make_dense_histogram() [4/7]

template<typename T , typename Iterator , hydra::detail::Backend BACKEND>
DenseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional > hydra::make_dense_histogram ( detail::BackendPolicy< BACKEND >  backend,
size_t  nbins,
double  lowerlimit,
double  upperlimit,
Iterator  first,
Iterator  end 
)

#include <DenseHistogram.h>

Function to make a 1-dimensional dense histogram.

Parameters
backend
nbinsnumber of bins.
lowerlimitthe lower limit.
upperlimitthe upper limit.
firstIterator pointing to the begin of the data range.
endIterator pointing to the end of the data range.
Returns

◆ make_dense_histogram() [5/7]

template<typename T , typename Iterator1 , typename Iterator2 , hydra::detail::Backend BACKEND>
DenseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional > hydra::make_dense_histogram ( detail::BackendPolicy< BACKEND >  backend,
size_t  nbins,
double  lowerlimit,
double  upperlimit,
Iterator1  first,
Iterator1  end,
Iterator2  wfirst 
)

#include <DenseHistogram.h>

Function to make a 1-dimensional dense histogram.

Parameters
backend
nbinsnumber of bins.
lowerlimitthe lower limit.
upperlimitthe upper limit.
firstiterator pointing to the begin of the data range.
enditerator pointing to the end of the data range.
wfirstIterator pointing to the begin of the weights range.
Returns

◆ make_dense_histogram() [6/7]

template<typename T , hydra::detail::Backend BACKEND, typename Iterable >
std::enable_if< hydra::detail::is_iterable< Iterable >::value, DenseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional > >::type hydra::make_dense_histogram ( detail::BackendPolicy< BACKEND >  backend,
size_t  nbins,
double  lowerlimits,
double  upperlimits,
Iterable &&  data 
)
inline

#include <DenseHistogram.h>

Function to make a N-dimensional dense histogram.

Parameters
backend
nbinsnumber of bins.
lowerlimitthe lower limit.
upperlimitthe upper limit.
dataIterable storing the data to histogram.
Returns

◆ make_dense_histogram() [7/7]

template<typename T , hydra::detail::Backend BACKEND, typename Iterable1 , typename Iterable2 >
std::enable_if< hydra::detail::is_iterable< Iterable1 >::value &&hydra::detail::is_iterable< Iterable2 >::value, DenseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional > >::type hydra::make_dense_histogram ( detail::BackendPolicy< BACKEND >  backend,
size_t  nbins,
double  lowerlimits,
double  upperlimits,
Iterable1 &&  data,
Iterable2 &&  weight 
)
inline

#include <DenseHistogram.h>

Function to make a N-dimensional dense histogram.

Parameters
backend
nbinsnumber of bins.
lowerlimitthe lower limit.
upperlimitthe upper limit.
dataIterable storing the data to histogram.
weightIterable storing the weights to data.
Returns

◆ make_sparse_histogram() [1/8]

template<typename T , typename Iterator , size_t N, hydra::detail::Backend BACKEND>
SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional > hydra::make_sparse_histogram ( detail::BackendPolicy< BACKEND >  backend,
std::array< size_t, N >  grid,
std::array< double, N > const &  lowerlimits,
std::array< double, N > const &  upperlimits,
Iterator  first,
Iterator  end 
)

#include <SparseHistogram.inl>

Function to make a N-dimensional sparse histogram.

Parameters
backend
gridstd::array storing the bins per dimension.
lowerlimitsstd::array storing the lower limits per dimension.
upperlimitsstd::array storing the upper limits per dimension.
firstIterator pointing to the begin of the data range.
endIterator pointing to the end of the data range.
Returns

◆ make_sparse_histogram() [2/8]

template<typename T , typename Iterator1 , typename Iterator2 , size_t N, hydra::detail::Backend BACKEND>
SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional > hydra::make_sparse_histogram ( detail::BackendPolicy< BACKEND >  ,
std::array< size_t, N >  grid,
std::array< double, N > const &  lowerlimits,
std::array< double, N > const &  upperlimits,
Iterator1  first,
Iterator1  end,
Iterator2  wfirst 
)

#include <SparseHistogram.inl>

Function to make a N-dimensional sparse histogram.

Parameters
backend
gridstd::array storing the bins per dimension.
lowerlimitsstd::array storing the lower limits per dimension.
upperlimitsstd::array storing the upper limits per dimension.
firstIterator pointing to the begin of the data range.
endIterator pointing to the end of the data range.
wfirstIterator pointing to the begin of the weights range.
Returns

◆ make_sparse_histogram() [3/8]

template<typename T , typename Iterator1 , typename Iterator2 , hydra::detail::Backend BACKEND>
SparseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional > hydra::make_sparse_histogram ( detail::BackendPolicy< BACKEND >  ,
size_t  nbins,
double  lowerlimit,
double  upperlimit,
Iterator1  first,
Iterator1  end,
Iterator2  wfirst 
)

#include <SparseHistogram.inl>

Function to make a 1-dimensional sparse histogram.

Parameters
backend
nbinsnumber of bins.
lowerlimitthe lower limit.
upperlimitthe upper limit.
firstiterator pointing to the begin of the data range.
enditerator pointing to the end of the data range.
wfirstIterator pointing to the begin of the weights range.
Returns

◆ make_sparse_histogram() [4/8]

template<typename T , hydra::detail::Backend BACKEND, typename Iterable >
std::enable_if< hydra::detail::is_iterable< Iterable >::value, SparseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional > >::type hydra::make_sparse_histogram ( detail::BackendPolicy< BACKEND >  backend,
size_t  nbins,
double  lowerlimit,
double  upperlimit,
Iterable &&  data 
)
inline

#include <SparseHistogram.inl>

Function to make a 1-dimensional sparse histogram.

Parameters
backend
nbinsnumber of bins.
lowerlimitthe lower limit.
upperlimitthe upper limit.
dataIterable storing the data to histogram.
Returns

◆ make_sparse_histogram() [5/8]

template<typename T , hydra::detail::Backend BACKEND, typename Iterable1 , typename Iterable2 >
std::enable_if< hydra::detail::is_iterable< Iterable1 >::value &&hydra::detail::is_iterable< Iterable2 >::value, SparseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional > >::type hydra::make_sparse_histogram ( detail::BackendPolicy< BACKEND >  backend,
size_t  nbins,
double  lowerlimit,
double  upperlimit,
Iterable1 &&  data,
Iterable2 &&  weights 
)
inline

#include <SparseHistogram.inl>

Function to make a 1-dimensional sparse histogram.

Parameters
backend
nbinsnumber of bins.
lowerlimitthe lower limit.
upperlimitthe upper limit.
dataIterable storing the data to histogram.
weightIterable storing the weights to data.
Returns

◆ make_sparse_histogram() [6/8]

template<typename T , size_t N, hydra::detail::Backend BACKEND, typename Iterable >
std::enable_if< hydra::detail::is_iterable<Iterable>::value,SparseHistogram< T, N, detail::BackendPolicy<BACKEND>, detail::multidimensional> >::type hydra::make_sparse_histogram ( detail::BackendPolicy< BACKEND >  backend,
std::array< size_t, N >const &  grid,
std::array< double, N >const &  lowerlimits,
std::array< double, N >const &  upperlimits,
Iterable &&  data 
)
inline

#include <SparseHistogram.h>

Function to make a N-dimensional sparse histogram.

Parameters
backend
gridstd::array storing the bins per dimension.
lowerlimitsstd::array storing the lower limits per dimension.
upperlimitsstd::array storing the upper limits per dimension.
dataIterable storing the data to histogram.
Returns

◆ make_sparse_histogram() [7/8]

template<typename T , size_t N, hydra::detail::Backend BACKEND, typename Iterable1 , typename Iterable2 >
std::enable_if< hydra::detail::is_iterable<Iterable1>::value&&hydra::detail::is_iterable<Iterable2>::value,SparseHistogram< T, N, detail::BackendPolicy<BACKEND>, detail::multidimensional> >::type hydra::make_sparse_histogram ( detail::BackendPolicy< BACKEND >  backend,
std::array< size_t, N >const &  grid,
std::array< double, N >const &  lowerlimits,
std::array< double, N >const &  upperlimits,
Iterable1 &&  data,
Iterable2 &&  weights 
)
inline

#include <SparseHistogram.h>

Function to make a N-dimensional sparse histogram.

Parameters
backend
gridstd::array storing the bins per dimension.
lowerlimitsstd::array storing the lower limits per dimension.
upperlimitsstd::array storing the upper limits per dimension.
dataIterable storing the data to histogram.
weightsIterable storing the weights to data.
Returns

◆ make_sparse_histogram() [8/8]

template<typename T , typename Iterator , hydra::detail::Backend BACKEND>
SparseHistogram< T, 1, detail::BackendPolicy<BACKEND>, detail::multidimensional> hydra::make_sparse_histogram ( detail::BackendPolicy< BACKEND >  backend,
size_t  nbins,
double  lowerlimit,
double  upperlimit,
Iterator  first,
Iterator  end 
)

#include <SparseHistogram.h>

Function to make a 1-dimensional sparse histogram.

Parameters
backend
nbinsthe number of bins.
lowerlimitthe lower limit.
upperlimitthe upper limits.
firstIterator pointing to the begin of the data range.
endIterator pointing to the end of the data range.
Returns