Timetabler
utils.h
Go to the documentation of this file.
1 
3 #ifndef UTILS_H
4 #define UTILS_H
5 
6 #include "data.h"
7 #include "global.h"
8 #include "mtl/Vec.h"
9 #include <string>
10 #include <vector>
11 
12 using namespace Minisat;
13 
14 namespace Utils {
15 
25 template <typename T> vec<T> convertVectorToVec(std::vector<T> inputs) {
26  vec<T> result(inputs.size());
27  for (int i = 0; i < inputs.size(); i++) {
28  result[i] = inputs[i];
29  }
30  return result;
31 }
32 
42 template <typename T> std::vector<T> convertVecToVector(vec<T> inputs) {
43  std::vector<T> result(inputs.size());
44  for (int i = 0; i < inputs.size(); i++) {
45  result[i] = inputs[i];
46  }
47  return result;
48 }
49 
60 template <typename T> std::vector<T> convertVecDataToVector(T *data, int size) {
61  std::vector<T> result(size);
62  for (int i = 0; i < size; i++) {
63  result[i] = data[i];
64  }
65  return result;
66 }
67 
79 template <typename T>
80 std::vector<T> flattenVector(std::vector<std::vector<T>> inputs) {
81  std::vector<T> result;
82  result.clear();
83  for (int i = 0; i < inputs.size(); i++) {
84  result.insert(result.end(), inputs[i].begin(), inputs[i].end());
85  }
86  return result;
87 }
88 
100 template <typename T>
101 std::vector<T> flattenVector(std::vector<std::vector<std::vector<T>>> inputs) {
102  std::vector<T> result;
103  result.clear();
104  for (int i = 0; i < inputs.size(); i++) {
105  std::vector<T> nextInsert = flattenVector<T>(inputs[i]);
106  result.insert(result.end(), nextInsert.begin(), nextInsert.end());
107  }
108  return result;
109 }
110 
111 std::string getFieldTypeName(FieldType fieldType);
112 
113 std::string getFieldName(FieldType fieldType, int index, Data &data);
114 
115 } // namespace Utils
116 
117 #endif
std::vector< T > convertVecDataToVector(T *data, int size)
Converts given data and size, a Minisat::vec to a std::vector.
Definition: utils.h:60
std::string getFieldName(FieldType fieldType, int index, Data &data)
Gets the field name in the Data of a given FieldType at a given index.
Definition: utils.cpp:43
FieldType
Enum that represents all the field types.
Definition: global.h:9
std::vector< T > convertVecToVector(vec< T > inputs)
Converts a Minisat::vec to a std::vector.
Definition: utils.h:42
vec< T > convertVectorToVec(std::vector< T > inputs)
Converts a std::vector to a Minisat::vec.
Definition: utils.h:25
Class for data.
Definition: data.h:30
Definition: utils.h:14
std::vector< T > flattenVector(std::vector< std::vector< T >> inputs)
Converts a two dimensional vector to a one dimensional vector.
Definition: utils.h:80
std::string getFieldTypeName(FieldType fieldType)
Gets the field type name as a string.
Definition: utils.cpp:16