OPAL (Object Oriented Parallel Accelerator Library) 2022.1
OPAL
|
#include <IndexMap.h>
Classes | |
class | myCompare |
class | OutOfBounds |
struct | Range |
Public Types | |
typedef Range | key_t |
typedef std::set< std::shared_ptr< Component > > | value_t |
Public Member Functions | |
IndexMap () | |
void | add (key_t::first_type initialStep, key_t::second_type finalStep, const value_t &val) |
value_t | query (key_t::first_type s, key_t::second_type ds) |
void | tidyUp (double zstop) |
void | print (std::ostream &) const |
void | saveSDDS (double startS) const |
size_t | size () const |
size_t | numElements () const |
key_t | getRange (const IndexMap::value_t::value_type &element, double position) const |
value_t | getTouchingElements (const key_t &range) const |
Private Types | |
typedef std::map< key_t, value_t, myCompare > | map_t |
typedef std::multimap< value_t::value_type, key_t > | invertedMap_t |
Static Private Member Functions | |
static bool | almostEqual (double, double) |
Private Attributes | |
map_t | mapRange2Element_m |
invertedMap_t | mapElement2Range_m |
double | totalPathLength_m |
Static Private Attributes | |
static const double | oneMinusEpsilon_m = 1.0 - std::numeric_limits<double>::epsilon() |
Definition at line 36 of file IndexMap.h.
|
private |
Definition at line 95 of file IndexMap.h.
typedef Range IndexMap::key_t |
Definition at line 46 of file IndexMap.h.
|
private |
Definition at line 94 of file IndexMap.h.
typedef std::set<std::shared_ptr<Component> > IndexMap::value_t |
Definition at line 47 of file IndexMap.h.
IndexMap::IndexMap | ( | ) |
Definition at line 44 of file IndexMap.cpp.
void IndexMap::add | ( | key_t::first_type | initialStep, |
key_t::second_type | finalStep, | ||
const value_t & | val | ||
) |
Definition at line 113 of file IndexMap.cpp.
References almostEqual(), IndexMap::Range::end, mapElement2Range_m, mapRange2Element_m, oneMinusEpsilon_m, and totalPathLength_m.
Referenced by OrbitThreader::execute().
|
staticprivate |
Definition at line 410 of file IndexMap.cpp.
Referenced by add(), and getTouchingElements().
IndexMap::key_t IndexMap::getRange | ( | const IndexMap::value_t::value_type & | element, |
double | position | ||
) | const |
Definition at line 375 of file IndexMap.cpp.
References abs(), mapElement2Range_m, max(), and min().
Referenced by OrbitThreader::getRange().
IndexMap::value_t IndexMap::getTouchingElements | ( | const key_t & | range | ) | const |
Definition at line 396 of file IndexMap.cpp.
References almostEqual(), IndexMap::Range::begin, IndexMap::Range::end, end(), and mapRange2Element_m.
Referenced by OrbitThreader::getTouchingElements().
size_t IndexMap::numElements | ( | ) | const |
void IndexMap::print | ( | std::ostream & | out | ) | const |
Definition at line 50 of file IndexMap.cpp.
References IndexMap::Range::begin, IndexMap::Range::end, endl(), floor(), log(), mapRange2Element_m, and max().
IndexMap::value_t IndexMap::query | ( | key_t::first_type | s, |
key_t::second_type | ds | ||
) |
Definition at line 76 of file IndexMap.cpp.
References a, end(), mapRange2Element_m, min(), and totalPathLength_m.
Referenced by OrbitThreader::query().
void IndexMap::saveSDDS | ( | double | startS | ) | const |
Definition at line 177 of file IndexMap.cpp.
References Util::combineFilePath(), end(), OpalData::getAuxiliaryOutputDirectory(), OpalData::getInputBasename(), OpalData::getInstance(), mapElement2Range_m, mapRange2Element_m, name, RFCAVITY, SIZE, and TRAVELINGWAVE.
Referenced by OrbitThreader::execute().
|
inline |
Definition at line 106 of file IndexMap.h.
References mapRange2Element_m.
void IndexMap::tidyUp | ( | double | zstop | ) |
Definition at line 148 of file IndexMap.cpp.
References IndexMap::Range::begin, and mapRange2Element_m.
Referenced by OrbitThreader::execute().
|
private |
Definition at line 97 of file IndexMap.h.
Referenced by add(), getRange(), and saveSDDS().
|
private |
Definition at line 96 of file IndexMap.h.
Referenced by add(), getTouchingElements(), print(), query(), saveSDDS(), size(), and tidyUp().
|
staticprivate |
Definition at line 102 of file IndexMap.h.
Referenced by add().
|
private |
Definition at line 99 of file IndexMap.h.