26 enum class DiscreteIndices { containerTraversalEstimator, dataLayout, newton3, vecPattern, TOTALNUMBER };
31 enum class ContinuousIndices { cellSizeFactor, TOTALNUMBER };
49 using DiscreteDimensionType = std::array<int, tunableDiscreteDims>;
54 using ContinuousDimensionType = std::array<double, tunableContinuousDims>;
72 const std::vector<FeatureVector::ContainerTraversalEstimatorOption> &containerTraversalEstimatorOptions,
73 const std::vector<DataLayoutOption> &dataLayoutOptions,
const std::vector<Newton3Option> &newton3Options,
74 const NumberSet<double> &cellSizeFactors,
const InteractionTypeOption &interactionType,
75 const std::vector<VectorizationPatternOption> &vecPatternOptions);
88 const std::vector<FeatureVector::ContainerTraversalEstimatorOption> &containerTraversalEstimatorOptions,
89 const std::vector<DataLayoutOption> &dataLayoutOptions,
const std::vector<Newton3Option> &newton3Options,
90 const NumberSet<double> &cellSizeFactors,
const std::vector<VectorizationPatternOption> &vecPatternOptions);
127 double iteration)
const;
144 const Eigen::VectorXi &target);
153 const Eigen::VectorXi &target);
182 [[nodiscard]] std::pair<DiscreteDimensionType, ContinuousDimensionType> convertToTunable(
192 [[nodiscard]]
FeatureVector convertFromTunable(
const DiscreteDimensionType &discreteValues,
193 const ContinuousDimensionType &continuousValues)
const;
201 template <
typename T>
202 static size_t getIndex(
const std::vector<T> &list,
const T &value) {
203 for (
size_t i = 0; i < list.size(); ++i) {
204 if (list[i] == value)
return i;
211 std::vector<FeatureVector::ContainerTraversalEstimatorOption> _containerTraversalEstimatorOptions{};
212 std::vector<DataLayoutOption> _dataLayoutOptions{};
213 std::vector<Newton3Option> _newton3Options{};
214 std::vector<VectorizationPatternOption> _vecPatternOptions{};
215 InteractionTypeOption _interactionType;
219 std::array<int, tunableDiscreteDims> _discreteRestrictions{};
229 size_t _oneHotDims{0};
Encoder to convert FeatureVector from and to Eigen::Vector.
Definition: FeatureVectorEncoder.h:22
static constexpr size_t tunableContinuousDims
Number of tunable continuous dimensions.
Definition: FeatureVectorEncoder.h:42
FeatureVector oneHotDecode(const Eigen::VectorXd &vec)
Decode one-hot-encoded VectorXd to FeatureVector.
Definition: FeatureVectorEncoder.cpp:73
std::vector< Eigen::VectorXd > lhsSampleFeatureCluster(size_t n, Random &rng, double iteration) const
Create n latin-hypercube-samples from the continuous featureSpace and append a value representing the...
Definition: FeatureVectorEncoder.cpp:245
Eigen::VectorXd oneHotEncode(const FeatureVector &vec) const
Encode FeatureVector to Eigen::VectorXd using one-hot-encoding.
Definition: FeatureVectorEncoder.cpp:52
std::pair< Eigen::VectorXi, Eigen::VectorXd > convertToCluster(const FeatureVector &vec, double iteration) const
Convert Feature vector to cluster representation for GaussianCluster.
Definition: FeatureVectorEncoder.cpp:115
std::vector< std::pair< Eigen::VectorXi, double > > clusterNeighboursManhattan1Container(const Eigen::VectorXi &target)
Get cluster-encoded neighbours of given target.
Definition: FeatureVectorEncoder.cpp:173
size_t getOneHotDims() const
Get the dimensions of a one-hot encoded vector.
Definition: FeatureVectorEncoder.cpp:45
FeatureVector convertFromCluster(const std::pair< Eigen::VectorXi, Eigen::VectorXd > &vec)
Inverse of convertToCluster.
Definition: FeatureVectorEncoder.cpp:130
std::vector< std::pair< Eigen::VectorXi, double > > clusterNeighboursManhattan1(const Eigen::VectorXi &target)
Get cluster-encoded neighbours of given target with fixed weight.
Definition: FeatureVectorEncoder.cpp:147
static constexpr size_t tunableDiscreteDims
Number of tunable discrete dimensions.
Definition: FeatureVectorEncoder.h:37
const std::array< int, tunableDiscreteDims > & getDiscreteRestrictions() const
Get the number of allowed options of each discrete dimension.
Definition: FeatureVectorEncoder.cpp:48
FeatureVectorEncoder()
Default Constructor.
void setAllowedOptions(const std::vector< FeatureVector::ContainerTraversalEstimatorOption > &containerTraversalEstimatorOptions, const std::vector< DataLayoutOption > &dataLayoutOptions, const std::vector< Newton3Option > &newton3Options, const NumberSet< double > &cellSizeFactors, const std::vector< VectorizationPatternOption > &vecPatternOptions)
Set allowed options.
Definition: FeatureVectorEncoder.cpp:23
std::vector< FeatureVector > lhsSampleFeatures(size_t n, Random &rng) const
Create n latin-hypercube-samples from given featureSpace.
Definition: FeatureVectorEncoder.cpp:212
FeatureVector representation of a Configuration.
Definition: FeatureVector.h:21
Virtual class describing a finite or infinite set of numbers.
Definition: NumberSet.h:22
Class for random algorithms.
Definition: Random.h:22
static void exception(const Exception e)
Handle an exception derived by std::exception.
Definition: ExceptionHandler.h:64
This is the main namespace of AutoPas.
Definition: AutoPasDecl.h:34