| 180 | } |
| 181 | |
| 182 | std::string dnnc::cppCodeGen::initializeData(irTypeData dtype, std::string name, |
| 183 | std::string fname) { |
| 184 | std::string varType; // int, float, std::vector<float> etc |
| 185 | std::string initData; // = {1.3, 1.5} etc |
| 186 | std::string code; // vector<int> value = {1, 4, 6}; |
| 187 | switch (dtype.type()) { |
| 188 | case IR_DataType::INT8: |
| 189 | case IR_DataType::INT16: |
| 190 | case IR_DataType::INT32: |
| 191 | case IR_DataType::INT64: { |
| 192 | varType = getDNNC_IRTypeStr(dtype.type()); |
| 193 | std::vector<int> values = std::vector<int>(dtype); |
| 194 | if (values.size() == 0) |
| 195 | return code; |
| 196 | if (values.size() == 1) { |
| 197 | initData = std::to_string(values[0]); |
| 198 | } else { |
| 199 | for (auto el : values) |
| 200 | initData += (initData.size() ? "," : "{") + std::to_string(el); |
| 201 | initData += values.size() ? "}" : ""; |
| 202 | varType = "std::vector<" + varType + ">"; |
| 203 | } |
| 204 | code = _tab + varType + " " + name + " = " + initData + " ;\n"; |
| 205 | break; |
| 206 | } |
| 207 | case IR_DataType::UINT8: |
| 208 | case IR_DataType::UINT16: |
| 209 | case IR_DataType::UINT32: |
| 210 | case IR_DataType::UINT64: { |
| 211 | varType = getDNNC_IRTypeStr(dtype.type()); |
| 212 | std::vector<unsigned int> values = std::vector<unsigned int>(dtype); |
| 213 | if (values.size() == 0) |
| 214 | return code; |
| 215 | if (values.size() == 1) { |
| 216 | initData = std::to_string(values[0]); |
| 217 | } else { |
| 218 | for (auto el : values) { |
| 219 | initData += (initData.size() ? "," : "{") + std::to_string(el); |
| 220 | } |
| 221 | initData += values.size() ? "}" : ""; |
| 222 | varType = "std::vector<" + varType + ">"; |
| 223 | } |
| 224 | code = _tab + varType + " " + name + " = " + initData + " ;\n"; |
| 225 | break; |
| 226 | } |
| 227 | case IR_DataType::FLOAT: |
| 228 | case IR_DataType::FLOAT16: |
| 229 | case IR_DataType::DOUBLE: { |
| 230 | varType = getDNNC_IRTypeStr(dtype.type()); |
| 231 | std::vector<float> values = std::vector<float>(dtype); |
| 232 | if (values.size() == 0) |
| 233 | return code; |
| 234 | if (values.size() == 1) { |
| 235 | initData = std::to_string(values[0]); |
| 236 | } else { |
| 237 | for (auto el : values) { |
| 238 | initData += (initData.size() ? "," : "{") + std::to_string(el); |
| 239 | } |
nothing calls this directly
no test coverage detected