38 constexpr Configuration(ContainerOption _container,
double _cellSizeFactor, TraversalOption _traversal,
40 InteractionTypeOption _interactionType)
60 [[nodiscard]] std::string
toString()
const;
67 [[nodiscard]] std::string
toShortString(
bool fixedLength =
true)
const {
71 newton3.to_string(fixedLength) +
"}";
150 [[nodiscard]] std::string getCSVRepresentation(
bool returnHeaderOnly)
const;
208 std::size_t enumHash =
static_cast<std::size_t
>(configuration.
interactionType) +
209 static_cast<std::size_t
>(configuration.
newton3) * 10 +
210 static_cast<std::size_t
>(configuration.
dataLayout) * 100 +
211 static_cast<std::size_t
>(configuration.
loadEstimator) * 1000 +
212 static_cast<std::size_t
>(configuration.
traversal) * 10000 +
213 static_cast<std::size_t
>(configuration.
container) * 100000;
214 std::size_t doubleHash = std::hash<double>{}(configuration.
cellSizeFactor);
216 return enumHash ^ doubleHash;
Class containing multiple options that form an algorithm configuration for the pairwise iteration.
Definition: Configuration.h:24
std::string toString() const
Returns string representation in JSON style of the configuration object.
Definition: Configuration.cpp:11
LoadEstimatorOption loadEstimator
Load Estimator option.
Definition: Configuration.h:126
TraversalOption traversal
Traversal option.
Definition: Configuration.h:122
double cellSizeFactor
CellSizeFactor.
Definition: Configuration.h:138
std::string toShortString(bool fixedLength=true) const
Returns a short string representation of the configuration object, suitable for tabular output.
Definition: Configuration.h:67
std::string getCSVHeader() const
Generate a csv header containing all keys from the toString() method.
Definition: Configuration.cpp:18
DataLayoutOption dataLayout
Data Layout option.
Definition: Configuration.h:130
InteractionTypeOption interactionType
Interaction type of the configuration.
Definition: Configuration.h:142
bool hasValidValues() const
Returns whether the configuration has been initialized with valid values or as an invalid one.
Definition: Configuration.cpp:22
constexpr Configuration()
Constructor taking no arguments.
Definition: Configuration.h:53
bool equalsDiscreteOptions(const Configuration &rhs) const
Check if all discrete options of the given configuration are equal to this'.
Definition: Configuration.cpp:99
ContainerOption container
Container option.
Definition: Configuration.h:118
bool equalsContinuousOptions(const autopas::Configuration &rhs, double epsilon=1e-12) const
Check if all continuous options of the given configuration are equal to this configuration.
Definition: Configuration.cpp:104
constexpr Configuration(ContainerOption _container, double _cellSizeFactor, TraversalOption _traversal, LoadEstimatorOption _loadEstimator, DataLayoutOption _dataLayout, Newton3Option _newton3, InteractionTypeOption _interactionType)
Constructor.
Definition: Configuration.h:38
Newton3Option newton3
Newton 3 option.
Definition: Configuration.h:134
bool hasCompatibleValues() const
Checks if any of the configuration values are incompatible with each other.
Definition: Configuration.cpp:52
std::string getCSVLine() const
Generate a csv representation containing all values from the toString() method.
Definition: Configuration.cpp:20
Class representing the load estimator choices.
Definition: LoadEstimatorOption.h:18
This is the main namespace of AutoPas.
Definition: AutoPasDecl.h:32
bool operator!=(const Configuration &lhs, const Configuration &rhs)
Not-Equals operator for Configuration objects.
Definition: Configuration.cpp:112
static std::ostream & operator<<(std::ostream &os, const OwnershipState &ownershipState)
Insertion operator for OwnershipState.
Definition: OwnershipState.h:65
bool operator==(const Configuration &lhs, const Configuration &rhs)
Equals operator for Configuration objects.
Definition: Configuration.cpp:108
std::istream & operator>>(std::istream &in, Configuration &configuration)
Stream extraction operator.
Definition: Configuration.cpp:122
bool operator<(const Configuration &lhs, const Configuration &rhs)
Comparison operator for Configuration objects.
Definition: Configuration.cpp:116
Hash function for Configuration objects to be used in e.g.
Definition: Configuration.h:201
std::size_t operator()(Configuration configuration) const
Hash Function operator.
Definition: Configuration.h:207