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
51 FeatureVector(ContainerOption container, double cellSizeFactor, TraversalOption traversal,
52 LoadEstimatorOption loadEstimator, DataLayoutOption dataLayout, Newton3Option newton3,
53 InteractionTypeOption interactionType, VectorizationPatternOption vecPattern)
55 vecPattern) {}
56
62
70 Eigen::VectorXd operator-(const FeatureVector &other) const {
71 Eigen::VectorXd result(featureSpaceDims);
72 result << cellSizeFactor - other.cellSizeFactor,
73 (container == other.container and traversal == other.traversal and loadEstimator == other.loadEstimator) ? 0.
74 : 1.,
75 dataLayout == other.dataLayout ? 0. : 1., newton3 == other.newton3 ? 0. : 1.;
76 return result;
77 }
78};
79
86inline std::ostream &operator<<(std::ostream &os, const FeatureVector &featureVector) {
87 return os << featureVector.toString();
88}
89
90} // namespace autopas
Class containing multiple options that form an algorithm configuration for the pairwise iteration.
Definition: Configuration.h:26
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:135
TraversalOption traversal
Traversal option.
Definition: Configuration.h:127
double cellSizeFactor
CellSizeFactor.
Definition: Configuration.h:147
DataLayoutOption dataLayout
Data Layout option.
Definition: Configuration.h:139
InteractionTypeOption interactionType
Interaction type of the configuration.
Definition: Configuration.h:151
ContainerOption container
Container option.
Definition: Configuration.h:123
Newton3Option newton3
Newton 3 option.
Definition: Configuration.h:143
VectorizationPatternOption vecPattern
Vectorization Pattern option.
Definition: Configuration.h:131
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
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:70
FeatureVector(Configuration conf)
Construct from Configuration.
Definition: FeatureVector.h:61
FeatureVector(ContainerOption container, double cellSizeFactor, TraversalOption traversal, LoadEstimatorOption loadEstimator, DataLayoutOption dataLayout, Newton3Option newton3, InteractionTypeOption interactionType, VectorizationPatternOption vecPattern)
Constructor.
Definition: FeatureVector.h:51
Class representing the load estimator choices.
Definition: LoadEstimatorOption.h:18
This is the main namespace of AutoPas.
Definition: AutoPasDecl.h:34
std::ostream & operator<<(std::ostream &os, const OwnershipState &ownershipState)
Insertion operator for OwnershipState.
Definition: OwnershipState.h:84