![]()  | 
  
    Hammer
    1.0.0
    
   Helicity Amplitude Module for Matrix Element Reweighting 
   | 
 
#include <SequentialIndexing.hh>
 Inheritance diagram for Hammer::MultiDimensional::SequentialIndexing:
 Collaboration diagram for Hammer::MultiDimensional::SequentialIndexing:Public Types | |
| using | StrideMap = std::vector< std::tuple< PositionType, long, bool >> | 
Public Member Functions | |
| SequentialIndexing () | |
| SequentialIndexing (IndexList dimensions) | |
| SequentialIndexing (const SequentialIndexing &)=default | |
| SequentialIndexing (SequentialIndexing &&)=default | |
| SequentialIndexing & | operator= (const SequentialIndexing &)=default | 
| SequentialIndexing & | operator= (SequentialIndexing &&)=default | 
| ~SequentialIndexing () noexcept=default | |
| size_t | rank () const | 
| rank of the tensor  More... | |
| IndexType | dim (IndexType index) const | 
| dimension of a specific component  More... | |
| const IndexList & | dims () const | 
| get the dimensions of all the indices at once  More... | |
| PositionType | stride (IndexType index) const | 
| stride of a specific component, i.e.  More... | |
| const PositionList & | strides () const | 
| list of strides, i.e.  More... | |
| PositionType | numValues () const | 
| the number of elements (product of all the dimensions)  More... | |
| PositionType | indicesToPos (const IndexList &indices) const | 
| convert the indices into the position indicizing a sparse tensor container organized as row-major  More... | |
| PositionType | indicesToPos (IndexList::const_iterator first, IndexList::const_iterator last) const | 
| bool | checkValidIndices (const IndexList &indices) const | 
| check that the indices are within range for each component  More... | |
| bool | checkValidIndices (IndexList::const_iterator first, IndexList::const_iterator last) const | 
| void | posToIndices (PositionType position, IndexList &result) const | 
| convert the absolute position (in row-major convention) into the list of indices  More... | |
| IndexType | ithIndexInPos (PositionType position, IndexType indexPosition) const | 
| extract the value of the i-th index from an absolute position  More... | |
| PositionType | build2ndPosition (PositionType reducedPosition, PositionType innerPosition, const PositionPairList &conversion) const | 
| PositionPair | splitPosition (PositionType position, const StrideMap &conversion) const | 
| PositionType | extendPosition (PositionType position, IndexType indexPosition, IndexType indexValue) const | 
| extends an absolute position from a rank N-1 tensor to the corresponding position for this rank N tensor given the missing index and its value.  More... | |
| StrideMap | getInnerOuterStrides (const IndexPairList &positions, const PositionList &secondStrides, bool flipSecond=false) const | 
| Get the Inner Outer Strides object.  More... | |
| PositionPairList | getOuterStrides2nd (const IndexPairList &positions) const | 
| Get the Outer Strides2nd object.  More... | |
| PositionType | reducedNumValues (const IndexPairList &indices) const | 
| template<typename BasicIndexing > | |
| bool | isSameShape (const BasicIndexing &other) const | 
| bool | isSameShape (const IndexList &indices) const | 
Protected Member Functions | |
| StrideMap | buildStrideMap (const std::map< IndexType, long > innerMap) const | 
Private Member Functions | |
| void | calcPadding () | 
Private Attributes | |
| IndexList | _dimensions | 
| the dimensions of each tensor index  More... | |
| PositionList | _strides | 
the strides for each tensor index (necessary to convert coordinates to position in _data)  More... | |
| PositionType | _maxIndex | 
Definition at line 23 of file SequentialIndexing.hh.
| using Hammer::MultiDimensional::SequentialIndexing::StrideMap = std::vector<std::tuple<PositionType, long, bool>> | 
Definition at line 37 of file SequentialIndexing.hh.
| Hammer::MultiDimensional::SequentialIndexing::SequentialIndexing | ( | ) | 
Definition at line 28 of file SequentialIndexing.cc.
| Hammer::MultiDimensional::SequentialIndexing::SequentialIndexing | ( | IndexList | dimensions | ) | 
Definition at line 31 of file SequentialIndexing.cc.
      
  | 
  default | 
      
  | 
  default | 
      
  | 
  defaultnoexcept | 
| PositionType Hammer::MultiDimensional::SequentialIndexing::build2ndPosition | ( | PositionType | reducedPosition, | 
| PositionType | innerPosition, | ||
| const PositionPairList & | conversion | ||
| ) | const | 
Definition at line 132 of file SequentialIndexing.cc.
      
  | 
  protected | 
Definition at line 187 of file SequentialIndexing.cc.
      
  | 
  private | 
Definition at line 258 of file SequentialIndexing.cc.
| bool Hammer::MultiDimensional::SequentialIndexing::checkValidIndices | ( | const IndexList & | indices | ) | const | 
check that the indices are within range for each component
| [in] | indices | the element indices | 
Definition at line 55 of file SequentialIndexing.cc.
| bool Hammer::MultiDimensional::SequentialIndexing::checkValidIndices | ( | IndexList::const_iterator | first, | 
| IndexList::const_iterator | last | ||
| ) | const | 
Definition at line 64 of file SequentialIndexing.cc.
dimension of a specific component
| [in] | index | the component index | 
Definition at line 39 of file SequentialIndexing.cc.
| const IndexList & Hammer::MultiDimensional::SequentialIndexing::dims | ( | ) | const | 
get the dimensions of all the indices at once
Definition at line 47 of file SequentialIndexing.cc.
| PositionType Hammer::MultiDimensional::SequentialIndexing::extendPosition | ( | PositionType | position, | 
| IndexType | indexPosition, | ||
| IndexType | indexValue | ||
| ) | const | 
extends an absolute position from a rank N-1 tensor to the corresponding position for this rank N tensor given the missing index and its value.
Used in AddAt
| position | the sub-tensor position | 
| indexPosition | the missing index coordinate | 
| indexValue | the missing index value | 
Definition at line 124 of file SequentialIndexing.cc.
| SequentialIndexing::StrideMap Hammer::MultiDimensional::SequentialIndexing::getInnerOuterStrides | ( | const IndexPairList & | positions, | 
| const PositionList & | secondStrides, | ||
| bool | flipSecond = false  | 
        ||
| ) | const | 
Get the Inner Outer Strides object.
| positions | |
| secondStrides | |
| flipSecond | 
Definition at line 173 of file SequentialIndexing.cc.
| PositionPairList Hammer::MultiDimensional::SequentialIndexing::getOuterStrides2nd | ( | const IndexPairList & | positions | ) | const | 
Get the Outer Strides2nd object.
| positions | 
Definition at line 219 of file SequentialIndexing.cc.
| PositionType Hammer::MultiDimensional::SequentialIndexing::indicesToPos | ( | const IndexList & | indices | ) | const | 
convert the indices into the position indicizing a sparse tensor container organized as row-major
| [in] | indices | the element indices | 
Definition at line 73 of file SequentialIndexing.cc.
| PositionType Hammer::MultiDimensional::SequentialIndexing::indicesToPos | ( | IndexList::const_iterator | first, | 
| IndexList::const_iterator | last | ||
| ) | const | 
Definition at line 80 of file SequentialIndexing.cc.
| bool Hammer::MultiDimensional::SequentialIndexing::isSameShape | ( | const BasicIndexing & | other | ) | const | 
Definition at line 146 of file SequentialIndexing.hh.
| bool Hammer::MultiDimensional::SequentialIndexing::isSameShape | ( | const IndexList & | indices | ) | const | 
Definition at line 268 of file SequentialIndexing.cc.
| IndexType Hammer::MultiDimensional::SequentialIndexing::ithIndexInPos | ( | PositionType | position, | 
| IndexType | indexPosition | ||
| ) | const | 
extract the value of the i-th index from an absolute position
| [in] | position | the absolute position | 
| [in] | indexPosition | the index coordinate i | 
Definition at line 115 of file SequentialIndexing.cc.
| PositionType Hammer::MultiDimensional::SequentialIndexing::numValues | ( | ) | const | 
the number of elements (product of all the dimensions)
Definition at line 51 of file SequentialIndexing.cc.
      
  | 
  default | 
      
  | 
  default | 
| void Hammer::MultiDimensional::SequentialIndexing::posToIndices | ( | PositionType | position, | 
| IndexList & | result | ||
| ) | const | 
convert the absolute position (in row-major convention) into the list of indices
| [in] | position | the absolute position | 
| [out] | result | the indices | 
Definition at line 93 of file SequentialIndexing.cc.
| size_t Hammer::MultiDimensional::SequentialIndexing::rank | ( | ) | const | 
rank of the tensor
Definition at line 35 of file SequentialIndexing.cc.
| PositionType Hammer::MultiDimensional::SequentialIndexing::reducedNumValues | ( | const IndexPairList & | indices | ) | const | 
Definition at line 144 of file SequentialIndexing.cc.
| PositionPair Hammer::MultiDimensional::SequentialIndexing::splitPosition | ( | PositionType | position, | 
| const StrideMap & | conversion | ||
| ) | const | 
Definition at line 153 of file SequentialIndexing.cc.
| PositionType Hammer::MultiDimensional::SequentialIndexing::stride | ( | IndexType | index | ) | const | 
stride of a specific component, i.e.
the product of the dimension of the indices to right of the given one (row-major convention). The last index has stride equal to 1.
| [in] | index | the component index | 
Definition at line 250 of file SequentialIndexing.cc.
| const PositionList & Hammer::MultiDimensional::SequentialIndexing::strides | ( | ) | const | 
list of strides, i.e.
the product of the dimension of the indices to right of the given one (row-major convention). The last index has stride equal to 1.
Definition at line 254 of file SequentialIndexing.cc.
      
  | 
  private | 
the dimensions of each tensor index
Definition at line 139 of file SequentialIndexing.hh.
      
  | 
  private | 
Definition at line 141 of file SequentialIndexing.hh.
      
  | 
  private | 
the strides for each tensor index (necessary to convert coordinates to position in _data) 
Definition at line 140 of file SequentialIndexing.hh.