MCPcopy Create free account
hub / github.com/ai-techsystems/deepC / initializeData

Method initializeData

src/codegen/cppCodeGen.cpp:182–301  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

180}
181
182std::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 }

Callers

nothing calls this directly

Calls 4

getDNNC_IRTypeStrFunction · 0.85
typeMethod · 0.45
sizeMethod · 0.45
lengthMethod · 0.45

Tested by

no test coverage detected