AutoPas  3.0.0
Loading...
Searching...
No Matches
FeatureVector.h
Go to the documentation of this file.
1
7#pragma once
8
9#include <Eigen/Core>
10#include <vector>
11
15
16namespace autopas {
17
22 public:
28 static constexpr size_t featureSpaceDims = 4;
29
33 using ContainerTraversalEstimatorOption = std::tuple<ContainerOption, TraversalOption, LoadEstimatorOption>;
34
39
50 FeatureVector(ContainerOption container, double cellSizeFactor, TraversalOption traversal,
51 LoadEstimatorOption loadEstimator, DataLayoutOption dataLayout, Newton3Option newton3,
52 InteractionTypeOption interactionType)
54
60
68 Eigen::VectorXd operator-(const FeatureVector &other) const {
69 Eigen::VectorXd result(featureSpaceDims);
70 result << cellSizeFactor - other.cellSizeFactor,
71 (container == other.container and traversal == other.traversal and loadEstimator == other.loadEstimator) ? 0.
72 : 1.,
73 dataLayout == other.dataLayout ? 0. : 1., newton3 == other.newton3 ? 0. : 1.;
74 return result;
75 }
76};
77
84inline std::ostream &operator<<(std::ostream &os, const FeatureVector &featureVector) {
85 return os << featureVector.toString();
86}
87
88} // namespace autopas
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
DataLayoutOption dataLayout
Data Layout option.
Definition: Configuration.h:130
InteractionTypeOption interactionType
Interaction type of the configuration.
Definition: Configuration.h:142
ContainerOption container
Container option.
Definition: Configuration.h:118
Newton3Option newton3
Newton 3 option.
Definition: Configuration.h:134
FeatureVector representation of a Configuration.
Definition: FeatureVector.h:21
FeatureVector()
Default constructor.
Definition: FeatureVector.h:38
std::tuple< ContainerOption, TraversalOption, LoadEstimatorOption > ContainerTraversalEstimatorOption
Consider Container, Traversal and LoadEstimator options as one dimension.
Definition: FeatureVector.h:33
FeatureVector(ContainerOption container, double cellSizeFactor, TraversalOption traversal, LoadEstimatorOption loadEstimator, DataLayoutOption dataLayout, Newton3Option newton3, InteractionTypeOption interactionType)
Constructor.
Definition: FeatureVector.h:50
static constexpr size_t featureSpaceDims
Number of tune-able dimensions.
Definition: FeatureVector.h:28
Eigen::VectorXd operator-(const FeatureVector &other) const
Distance between two FeatureVectors.
Definition: FeatureVector.h:68
FeatureVector(Configuration conf)
Construct from Configuration.
Definition: FeatureVector.h:59
Class representing the load estimator choices.
Definition: LoadEstimatorOption.h:18
This is the main namespace of AutoPas.
Definition: AutoPasDecl.h:32
static std::ostream & operator<<(std::ostream &os, const OwnershipState &ownershipState)
Insertion operator for OwnershipState.
Definition: OwnershipState.h:65