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