12 #ifndef HAMMER_MATH_MULTIDIM_BinnedIndexing
13 #define HAMMER_MATH_MULTIDIM_BinnedIndexing
19 namespace MultiDimensional {
27 template<
class BasicIndexing>
45 using BasicIndexing::dim;
BasicIndexing::StrideMap getBinStrides(const UniqueIndexList &positions) const
~BinnedIndexing() noexcept=default
Binned tensor (histogram) indexer template method definitions.
BinnedIndexing & operator=(const BinnedIndexing &)=default
const BinEdgeList & edges() const
get the labels of all the indices at once
std::vector< std::vector< double >> BinEdgeList
bool isSameBinShape(const BinEdgeList &otherEdges, const IndexList &otherIndices, bool otherUnderOverFlow) const
BinRangeList binEdges(IndexList position) const
bool hasUnderOverFlow() const
Forward declarations of types used in the tensor classes.
IndexList valueToPos(const BinValue &point) const
std::vector< IndexType > IndexList
const BinValue & edge(IndexType pos) const
BinEdgeList _edges
the labels of each tensor index
std::set< IndexType > UniqueIndexList
static IndexList processEdges(const BinEdgeList &edges, bool hasUnderOverFlow)
void fillEdges(const BinRangeList &ranges)
std::vector< BinRange > BinRangeList
BinRange binEdge(IndexType position, IndexType coord) const
std::pair< double, double > BinRange
std::vector< double > BinValue
static IndexList processRanges(const IndexList &dimensions, bool hasUnderOverFlow)