AutoPas  3.0.0
Loading...
Searching...
No Matches
CompatibleVectorizationPattern.h
Go to the documentation of this file.
1
8#pragma once
9
10#include <array>
11#include <set>
12#include <vector>
13
17
18namespace autopas::compatibleVectorizationPattern {
19
27static std::set<VectorizationPatternOption> allCompatibleVectorizationPattern(const ContainerOption container,
28 const DataLayoutOption dataLayout) {
29 switch (dataLayout) {
30 case DataLayoutOption::aos:
31 // For AoS, Vectorization Patterns are not applicable.
32 return std::set<VectorizationPatternOption>{VectorizationPatternOption::NA};
33 case DataLayoutOption::soa:
34 switch (container) {
35 case ContainerOption::verletLists:
36 case ContainerOption::verletListsCells:
37 case ContainerOption::pairwiseVerletLists:
38 case ContainerOption::varVerletListsAsBuild:
39 case ContainerOption::directSum: {
40 return std::set<VectorizationPatternOption>{VectorizationPatternOption::p1xVec};
41 }
42 default: {
43 return std::set<VectorizationPatternOption>{VectorizationPatternOption::getAllApplicablePatterns()};
44 }
45 }
46 default:
47 utils::ExceptionHandler::exception("Unknown data layout {}.", dataLayout.to_string());
48 return {};
49 }
50}
51
52} // namespace autopas::compatibleVectorizationPattern
static std::set< VectorizationPatternOption > allCompatibleVectorizationPattern(const ContainerOption container, const DataLayoutOption dataLayout)
Returns a set of vectorization patterns compatible with the container.
Definition: CompatibleVectorizationPattern.h:27
static void exception(const Exception e)
Handle an exception derived by std::exception.
Definition: ExceptionHandler.h:64