AutoPas  3.0.0
Loading...
Searching...
No Matches
VectorizationPatternOption.h
Go to the documentation of this file.
1
7#pragma once
8
9#include <set>
10
12
13namespace autopas {
14inline namespace options {
15
26class VectorizationPatternOption : public Option<VectorizationPatternOption> {
27 public:
31 enum Value {
71 pVecx1
72 };
73
78
83 constexpr VectorizationPatternOption(Value option) : _value(option) {}
84
89 constexpr operator Value() const { return _value; }
90
95 static std::set<VectorizationPatternOption> getDiscouragedOptions() { return {}; }
96
101 static std::map<VectorizationPatternOption, std::string> getOptionNames() {
102 return {
103 {p1xVec, "1xVectorLength"},
104 {p2xVecDiv2, "2xVectorLengthDiv2"},
105 {pVecDiv2x2, "VectorLengthDiv2x2"},
106 {pVecx1, "VectorLengthx1"},
107 };
108 }
109
110 private:
111 Value _value{Value(-1)};
112};
113
114} // namespace options
115} // namespace autopas
Base class for autopas options.
Definition: Option.h:26
Class representing the choices of possible vectorization patterns for the Pairwise Functors.
Definition: VectorizationPatternOption.h:26
Value
Possible choices for the vector patterns.
Definition: VectorizationPatternOption.h:31
@ pVecDiv2x2
Interact half the vector length from the first list with two particles from the second list.
Definition: VectorizationPatternOption.h:61
@ p1xVec
Interact one particle from the first list with the full vector length from the second list.
Definition: VectorizationPatternOption.h:41
@ pVecx1
Interact the full vector length from the first list with one particle from the second list.
Definition: VectorizationPatternOption.h:71
@ p2xVecDiv2
Interact two particles from the first list with half the vector length from the second list.
Definition: VectorizationPatternOption.h:51
static std::set< VectorizationPatternOption > getDiscouragedOptions()
Set of options that are very unlikely to be interesting.
Definition: VectorizationPatternOption.h:95
static std::map< VectorizationPatternOption, std::string > getOptionNames()
Provides a way to iterate over the possible choices of Vectorization Patterns.
Definition: VectorizationPatternOption.h:101
constexpr VectorizationPatternOption(Value option)
Constructor from value.
Definition: VectorizationPatternOption.h:83
VectorizationPatternOption()=default
Constructor.
This is the main namespace of AutoPas.
Definition: AutoPasDecl.h:34