• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /**
2  * Copyright 2024 Huawei Technologies Co., Ltd
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #include "mindir.h"
18 #include "utils.h"
19 #include "schema/model_generated.h"
20 #include "mindir_memory_manager.h"
21 
22 namespace mindspore {
23 namespace lite {
24 // ********** Depend **********
MindIR_Depend_CreatePrimitive()25 PrimitivePtr MindIR_Depend_CreatePrimitive() {
26   flatbuffers::FlatBufferBuilder fbb;
27   auto ops_offset = schema::CreateDepend(fbb);
28   auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_DEPEND), ops_offset.o);
29   fbb.Finish(prim_offset);
30   auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
31   auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
32   return ret_value;
33 }
34 
35 // ********** Dropout **********
MindIR_Dropout_CreatePrimitive(float keep_prob)36 PrimitivePtr MindIR_Dropout_CreatePrimitive(float keep_prob) {
37   flatbuffers::FlatBufferBuilder fbb;
38   auto ops_offset = schema::CreateDropout(fbb, keep_prob);
39   auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_DROPOUT), ops_offset.o);
40   fbb.Finish(prim_offset);
41   auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
42   auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
43   return ret_value;
44 }
45 
MindIR_Dropout_GetKeepProb(ConstPrimitivePtr primitive)46 float MindIR_Dropout_GetKeepProb(ConstPrimitivePtr primitive) {
47   if (primitive != nullptr) {
48     auto prim = static_cast<const schema::Primitive *>(primitive);
49     auto value = prim->value_as_Dropout();
50     if (prim != nullptr && value != nullptr) {
51       return value->keep_prob();
52     } else {
53       return .0;
54     }
55   } else {
56     return .0;
57   }
58 }
59 
MindIR_Dropout_SetKeepProb(PrimitivePtr * primitive,float keep_prob)60 void MindIR_Dropout_SetKeepProb(PrimitivePtr *primitive, float keep_prob) {
61   if (primitive != nullptr && *primitive != nullptr) {
62     auto prim = static_cast<schema::Primitive *>(*primitive);
63     auto value = prim->value_as_Dropout();
64     if (prim != nullptr && value != nullptr) {
65       flatbuffers::FlatBufferBuilder fbb;
66       auto ops_offset = schema::CreateDropout(fbb, keep_prob);
67       auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_DROPOUT), ops_offset.o);
68       fbb.Finish(prim_offset);
69       auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, prim);
70       auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
71       *primitive = ret_value;
72     }
73   }
74 }
75 
76 // ********** Elu **********
MindIR_Elu_CreatePrimitive(float alpha)77 PrimitivePtr MindIR_Elu_CreatePrimitive(float alpha) {
78   flatbuffers::FlatBufferBuilder fbb;
79   auto ops_offset = schema::CreateElu(fbb, alpha);
80   auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_ELU), ops_offset.o);
81   fbb.Finish(prim_offset);
82   auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
83   auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
84   return ret_value;
85 }
86 
MindIR_Elu_GetAlpha(ConstPrimitivePtr primitive)87 float MindIR_Elu_GetAlpha(ConstPrimitivePtr primitive) {
88   if (primitive != nullptr) {
89     auto prim = static_cast<const schema::Primitive *>(primitive);
90     auto value = prim->value_as_Elu();
91     if (prim != nullptr && value != nullptr) {
92       return value->alpha();
93     } else {
94       return .0;
95     }
96   } else {
97     return .0;
98   }
99 }
100 
MindIR_Elu_SetAlpha(PrimitivePtr * primitive,float alpha)101 void MindIR_Elu_SetAlpha(PrimitivePtr *primitive, float alpha) {
102   if (primitive != nullptr && *primitive != nullptr) {
103     auto prim = static_cast<schema::Primitive *>(*primitive);
104     auto value = prim->value_as_Elu();
105     if (prim != nullptr && value != nullptr) {
106       flatbuffers::FlatBufferBuilder fbb;
107       auto ops_offset = schema::CreateElu(fbb, alpha);
108       auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_ELU), ops_offset.o);
109       fbb.Finish(prim_offset);
110       auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, prim);
111       auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
112       *primitive = ret_value;
113     }
114   }
115 }
116 
117 // ********** EmbeddingLookupFusion **********
MindIR_EmbeddingLookupFusion_CreatePrimitive(float max_norm)118 PrimitivePtr MindIR_EmbeddingLookupFusion_CreatePrimitive(float max_norm) {
119   flatbuffers::FlatBufferBuilder fbb;
120   auto ops_offset = schema::CreateEmbeddingLookupFusion(fbb, max_norm);
121   auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_EMBEDDING_LOOKUP_FUSION), ops_offset.o);
122   fbb.Finish(prim_offset);
123   auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
124   auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
125   return ret_value;
126 }
127 
MindIR_EmbeddingLookupFusion_GetMaxNorm(ConstPrimitivePtr primitive)128 float MindIR_EmbeddingLookupFusion_GetMaxNorm(ConstPrimitivePtr primitive) {
129   if (primitive != nullptr) {
130     auto prim = static_cast<const schema::Primitive *>(primitive);
131     auto value = prim->value_as_EmbeddingLookupFusion();
132     if (prim != nullptr && value != nullptr) {
133       return value->max_norm();
134     } else {
135       return .0;
136     }
137   } else {
138     return .0;
139   }
140 }
141 
MindIR_EmbeddingLookupFusion_SetMaxNorm(PrimitivePtr * primitive,float max_norm)142 void MindIR_EmbeddingLookupFusion_SetMaxNorm(PrimitivePtr *primitive, float max_norm) {
143   if (primitive != nullptr && *primitive != nullptr) {
144     auto prim = static_cast<schema::Primitive *>(*primitive);
145     auto value = prim->value_as_EmbeddingLookupFusion();
146     if (prim != nullptr && value != nullptr) {
147       flatbuffers::FlatBufferBuilder fbb;
148       auto ops_offset = schema::CreateEmbeddingLookupFusion(fbb, max_norm);
149       auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_EMBEDDING_LOOKUP_FUSION), ops_offset.o);
150       fbb.Finish(prim_offset);
151       auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, prim);
152       auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
153       *primitive = ret_value;
154     }
155   }
156 }
157 
158 // ********** FakeQuantWithMinMaxVars **********
MindIR_FakeQuantWithMinMaxVars_CreatePrimitive(int64_t num_bits,bool narrow_range)159 PrimitivePtr MindIR_FakeQuantWithMinMaxVars_CreatePrimitive(int64_t num_bits, bool narrow_range) {
160   flatbuffers::FlatBufferBuilder fbb;
161   auto ops_offset = schema::CreateFakeQuantWithMinMaxVars(fbb, num_bits, narrow_range);
162   auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_FAKE_QUANT_WITH_MIN_MAX_VARS), ops_offset.o);
163   fbb.Finish(prim_offset);
164   auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
165   auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
166   return ret_value;
167 }
168 
MindIR_FakeQuantWithMinMaxVars_GetNumBits(ConstPrimitivePtr primitive)169 int64_t MindIR_FakeQuantWithMinMaxVars_GetNumBits(ConstPrimitivePtr primitive) {
170   if (primitive != nullptr) {
171     auto prim = static_cast<const schema::Primitive *>(primitive);
172     auto value = prim->value_as_FakeQuantWithMinMaxVars();
173     if (prim != nullptr && value != nullptr) {
174       return value->num_bits();
175     } else {
176       return 0;
177     }
178   } else {
179     return 0;
180   }
181 }
182 
MindIR_FakeQuantWithMinMaxVars_SetNumBits(PrimitivePtr * primitive,int64_t num_bits)183 void MindIR_FakeQuantWithMinMaxVars_SetNumBits(PrimitivePtr *primitive, int64_t num_bits) {
184   if (primitive != nullptr && *primitive != nullptr) {
185     auto prim = static_cast<schema::Primitive *>(*primitive);
186     auto value = prim->value_as_FakeQuantWithMinMaxVars();
187     if (prim != nullptr && value != nullptr) {
188       flatbuffers::FlatBufferBuilder fbb;
189       auto ops_offset = schema::CreateFakeQuantWithMinMaxVars(fbb, num_bits, value->narrow_range());
190       auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_FAKE_QUANT_WITH_MIN_MAX_VARS), ops_offset.o);
191       fbb.Finish(prim_offset);
192       auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
193       auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
194       free(*primitive);
195       *primitive = ret_value;
196     }
197   }
198 }
199 
MindIR_FakeQuantWithMinMaxVars_GetNarrowRange(ConstPrimitivePtr primitive)200 bool MindIR_FakeQuantWithMinMaxVars_GetNarrowRange(ConstPrimitivePtr primitive) {
201   if (primitive != nullptr) {
202     auto prim = static_cast<const schema::Primitive *>(primitive);
203     auto value = prim->value_as_FakeQuantWithMinMaxVars();
204     if (prim != nullptr && value != nullptr) {
205       return value->narrow_range();
206     } else {
207       return false;
208     }
209   } else {
210     return false;
211   }
212 }
213 
MindIR_FakeQuantWithMinMaxVars_SetNarrowRange(PrimitivePtr * primitive,bool narrow_range)214 void MindIR_FakeQuantWithMinMaxVars_SetNarrowRange(PrimitivePtr *primitive, bool narrow_range) {
215   if (primitive != nullptr && *primitive != nullptr) {
216     auto prim = static_cast<schema::Primitive *>(*primitive);
217     auto value = prim->value_as_FakeQuantWithMinMaxVars();
218     if (prim != nullptr && value != nullptr) {
219       flatbuffers::FlatBufferBuilder fbb;
220       auto ops_offset = schema::CreateFakeQuantWithMinMaxVars(fbb, value->num_bits(), narrow_range);
221       auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_FAKE_QUANT_WITH_MIN_MAX_VARS), ops_offset.o);
222       fbb.Finish(prim_offset);
223       auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
224       auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
225       free(*primitive);
226       *primitive = ret_value;
227     }
228   }
229 }
230 
231 // ********** FakeQuantWithMinMaxVarsPerChannel **********
MindIR_FakeQuantWithMinMaxVarsPerChannel_CreatePrimitive(int64_t num_bits,bool narrow_range)232 PrimitivePtr MindIR_FakeQuantWithMinMaxVarsPerChannel_CreatePrimitive(int64_t num_bits, bool narrow_range) {
233   flatbuffers::FlatBufferBuilder fbb;
234   auto ops_offset = schema::CreateFakeQuantWithMinMaxVarsPerChannel(fbb, num_bits, narrow_range);
235   auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_FAKE_QUANT_WITH_MIN_MAX_VARS_PER_CHANNEL), ops_offset.o);
236   fbb.Finish(prim_offset);
237   auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
238   auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
239   return ret_value;
240 }
241 
MindIR_FakeQuantWithMinMaxVarsPerChannel_GetNumBits(ConstPrimitivePtr primitive)242 int64_t MindIR_FakeQuantWithMinMaxVarsPerChannel_GetNumBits(ConstPrimitivePtr primitive) {
243   if (primitive != nullptr) {
244     auto prim = static_cast<const schema::Primitive *>(primitive);
245     auto value = prim->value_as_FakeQuantWithMinMaxVarsPerChannel();
246     if (prim != nullptr && value != nullptr) {
247       return value->num_bits();
248     } else {
249       return 0;
250     }
251   } else {
252     return 0;
253   }
254 }
255 
MindIR_FakeQuantWithMinMaxVarsPerChannel_SetNumBits(PrimitivePtr * primitive,int64_t num_bits)256 void MindIR_FakeQuantWithMinMaxVarsPerChannel_SetNumBits(PrimitivePtr *primitive, int64_t num_bits) {
257   if (primitive != nullptr && *primitive != nullptr) {
258     auto prim = static_cast<schema::Primitive *>(*primitive);
259     auto value = prim->value_as_FakeQuantWithMinMaxVarsPerChannel();
260     if (prim != nullptr && value != nullptr) {
261       flatbuffers::FlatBufferBuilder fbb;
262       auto ops_offset = schema::CreateFakeQuantWithMinMaxVarsPerChannel(fbb, num_bits, value->narrow_range());
263       auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_FAKE_QUANT_WITH_MIN_MAX_VARS_PER_CHANNEL), ops_offset.o);
264       fbb.Finish(prim_offset);
265       auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
266       auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
267       free(*primitive);
268       *primitive = ret_value;
269     }
270   }
271 }
272 
MindIR_FakeQuantWithMinMaxVarsPerChannel_GetNarrowRange(ConstPrimitivePtr primitive)273 bool MindIR_FakeQuantWithMinMaxVarsPerChannel_GetNarrowRange(ConstPrimitivePtr primitive) {
274   if (primitive != nullptr) {
275     auto prim = static_cast<const schema::Primitive *>(primitive);
276     auto value = prim->value_as_FakeQuantWithMinMaxVarsPerChannel();
277     if (prim != nullptr && value != nullptr) {
278       return value->narrow_range();
279     } else {
280       return false;
281     }
282   } else {
283     return false;
284   }
285 }
286 
MindIR_FakeQuantWithMinMaxVarsPerChannel_SetNarrowRange(PrimitivePtr * primitive,bool narrow_range)287 void MindIR_FakeQuantWithMinMaxVarsPerChannel_SetNarrowRange(PrimitivePtr *primitive, bool narrow_range) {
288   if (primitive != nullptr && *primitive != nullptr) {
289     auto prim = static_cast<schema::Primitive *>(*primitive);
290     auto value = prim->value_as_FakeQuantWithMinMaxVarsPerChannel();
291     if (prim != nullptr && value != nullptr) {
292       flatbuffers::FlatBufferBuilder fbb;
293       auto ops_offset = schema::CreateFakeQuantWithMinMaxVarsPerChannel(fbb, value->num_bits(), narrow_range);
294       auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_FAKE_QUANT_WITH_MIN_MAX_VARS_PER_CHANNEL), ops_offset.o);
295       fbb.Finish(prim_offset);
296       auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
297       auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
298       free(*primitive);
299       *primitive = ret_value;
300     }
301   }
302 }
303 
304 // ********** FftReal **********
MindIR_FftReal_CreatePrimitive()305 PrimitivePtr MindIR_FftReal_CreatePrimitive() {
306   flatbuffers::FlatBufferBuilder fbb;
307   auto ops_offset = schema::CreateFftReal(fbb);
308   auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_FFT_REAL), ops_offset.o);
309   fbb.Finish(prim_offset);
310   auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
311   auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
312   return ret_value;
313 }
314 
315 // ********** FftImag **********
MindIR_FftImag_CreatePrimitive()316 PrimitivePtr MindIR_FftImag_CreatePrimitive() {
317   flatbuffers::FlatBufferBuilder fbb;
318   auto ops_offset = schema::CreateFftImag(fbb);
319   auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_FFT_IMAG), ops_offset.o);
320   fbb.Finish(prim_offset);
321   auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
322   auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
323   return ret_value;
324 }
325 
326 // ********** FloorDiv **********
MindIR_FloorDiv_CreatePrimitive()327 PrimitivePtr MindIR_FloorDiv_CreatePrimitive() {
328   flatbuffers::FlatBufferBuilder fbb;
329   auto ops_offset = schema::CreateFloorDiv(fbb);
330   auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_FLOOR_DIV), ops_offset.o);
331   fbb.Finish(prim_offset);
332   auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
333   auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
334   return ret_value;
335 }
336 
337 // ********** FloorMod **********
MindIR_FloorMod_CreatePrimitive()338 PrimitivePtr MindIR_FloorMod_CreatePrimitive() {
339   flatbuffers::FlatBufferBuilder fbb;
340   auto ops_offset = schema::CreateFloorMod(fbb);
341   auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_FLOOR_MOD), ops_offset.o);
342   fbb.Finish(prim_offset);
343   auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
344   auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
345   return ret_value;
346 }
347 
348 // ********** HashtableLookup **********
MindIR_HashtableLookup_CreatePrimitive()349 PrimitivePtr MindIR_HashtableLookup_CreatePrimitive() {
350   flatbuffers::FlatBufferBuilder fbb;
351   auto ops_offset = schema::CreateHashtableLookup(fbb);
352   auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_HASHTABLE_LOOKUP), ops_offset.o);
353   fbb.Finish(prim_offset);
354   auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
355   auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
356   return ret_value;
357 }
358 
359 // ********** LpNormalization **********
MindIR_LpNormalization_CreatePrimitive(int64_t axis,int64_t p)360 PrimitivePtr MindIR_LpNormalization_CreatePrimitive(int64_t axis, int64_t p) {
361   flatbuffers::FlatBufferBuilder fbb;
362   auto ops_offset = schema::CreateLpNormalization(fbb, axis, p);
363   auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_LP_NORMALIZATION), ops_offset.o);
364   fbb.Finish(prim_offset);
365   auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
366   auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
367   return ret_value;
368 }
369 
MindIR_LpNormalization_GetAxis(ConstPrimitivePtr primitive)370 int64_t MindIR_LpNormalization_GetAxis(ConstPrimitivePtr primitive) {
371   if (primitive != nullptr) {
372     auto prim = static_cast<const schema::Primitive *>(primitive);
373     auto value = prim->value_as_LpNormalization();
374     if (prim != nullptr && value != nullptr) {
375       return value->axis();
376     } else {
377       return 0;
378     }
379   } else {
380     return 0;
381   }
382 }
383 
MindIR_LpNormalization_SetAxis(PrimitivePtr * primitive,int64_t axis)384 void MindIR_LpNormalization_SetAxis(PrimitivePtr *primitive, int64_t axis) {
385   if (primitive != nullptr && *primitive != nullptr) {
386     auto prim = static_cast<schema::Primitive *>(*primitive);
387     auto value = prim->value_as_LpNormalization();
388     if (prim != nullptr && value != nullptr) {
389       flatbuffers::FlatBufferBuilder fbb;
390       auto ops_offset = schema::CreateLpNormalization(fbb, axis, value->p());
391       auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_LP_NORMALIZATION), ops_offset.o);
392       fbb.Finish(prim_offset);
393       auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, prim);
394       auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
395       *primitive = ret_value;
396     }
397   }
398 }
399 
MindIR_LpNormalization_GetP(ConstPrimitivePtr primitive)400 int64_t MindIR_LpNormalization_GetP(ConstPrimitivePtr primitive) {
401   if (primitive != nullptr) {
402     auto prim = static_cast<const schema::Primitive *>(primitive);
403     auto value = prim->value_as_LpNormalization();
404     if (prim != nullptr && value != nullptr) {
405       return value->p();
406     } else {
407       return 0;
408     }
409   } else {
410     return 0;
411   }
412 }
413 
MindIR_LpNormalization_SetP(PrimitivePtr * primitive,int64_t p)414 void MindIR_LpNormalization_SetP(PrimitivePtr *primitive, int64_t p) {
415   if (primitive != nullptr && *primitive != nullptr) {
416     auto prim = static_cast<schema::Primitive *>(*primitive);
417     auto value = prim->value_as_LpNormalization();
418     if (prim != nullptr && value != nullptr) {
419       flatbuffers::FlatBufferBuilder fbb;
420       auto ops_offset = schema::CreateLpNormalization(fbb, value->axis(), p);
421       auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_LP_NORMALIZATION), ops_offset.o);
422       fbb.Finish(prim_offset);
423       auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, prim);
424       auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
425       *primitive = ret_value;
426     }
427   }
428 }
429 
430 // ********** LshProjection **********
MindIR_LshProjection_CreatePrimitive(LshProjectionType type)431 PrimitivePtr MindIR_LshProjection_CreatePrimitive(LshProjectionType type) {
432   flatbuffers::FlatBufferBuilder fbb;
433   auto ops_offset = schema::CreateLshProjection(fbb, static_cast<schema::LshProjectionType>(type));
434   auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_LSH_PROJECTION), ops_offset.o);
435   fbb.Finish(prim_offset);
436   auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
437   auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
438   return ret_value;
439 }
440 
MindIR_LshProjection_GetType(ConstPrimitivePtr primitive)441 LshProjectionType MindIR_LshProjection_GetType(ConstPrimitivePtr primitive) {
442   if (primitive != nullptr) {
443     auto prim = static_cast<const schema::Primitive *>(primitive);
444     auto value = prim->value_as_LshProjection();
445     if (prim != nullptr && value != nullptr) {
446       return static_cast<LshProjectionType>(value->type());
447     } else {
448       LshProjectionType en = static_cast<LshProjectionType>(0);
449       return en;
450     }
451   } else {
452     LshProjectionType en = static_cast<LshProjectionType>(0);
453     return en;
454   }
455 }
456 
MindIR_LshProjection_SetType(PrimitivePtr * primitive,LshProjectionType type)457 void MindIR_LshProjection_SetType(PrimitivePtr *primitive, LshProjectionType type) {
458   if (primitive != nullptr && *primitive != nullptr) {
459     auto prim = static_cast<schema::Primitive *>(*primitive);
460     auto value = prim->value_as_LshProjection();
461     if (prim != nullptr && value != nullptr) {
462       flatbuffers::FlatBufferBuilder fbb;
463       auto ops_offset = schema::CreateLshProjection(fbb, static_cast<schema::LshProjectionType>(type));
464       auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_LSH_PROJECTION), ops_offset.o);
465       fbb.Finish(prim_offset);
466       auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
467       auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
468       free(*primitive);
469       *primitive = ret_value;
470     }
471   }
472 }
473 
474 // ********** SwitchLayer **********
MindIR_SwitchLayer_CreatePrimitive()475 PrimitivePtr MindIR_SwitchLayer_CreatePrimitive() {
476   flatbuffers::FlatBufferBuilder fbb;
477   auto ops_offset = schema::CreateSwitchLayer(fbb);
478   auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_SWITCH_LAYER), ops_offset.o);
479   fbb.Finish(prim_offset);
480   auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
481   auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
482   return ret_value;
483 }
484 
485 // ********** Mfcc **********
MindIR_Mfcc_CreatePrimitive(float freq_upper_limit,float freq_lower_limit,int64_t filter_bank_channel_num,int64_t dct_coeff_num)486 PrimitivePtr MindIR_Mfcc_CreatePrimitive(float freq_upper_limit, float freq_lower_limit, int64_t filter_bank_channel_num, int64_t dct_coeff_num) {
487   flatbuffers::FlatBufferBuilder fbb;
488   auto ops_offset = schema::CreateMfcc(fbb, freq_upper_limit, freq_lower_limit, filter_bank_channel_num, dct_coeff_num);
489   auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_MFCC), ops_offset.o);
490   fbb.Finish(prim_offset);
491   auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
492   auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
493   return ret_value;
494 }
495 
MindIR_Mfcc_GetFreqUpperLimit(ConstPrimitivePtr primitive)496 float MindIR_Mfcc_GetFreqUpperLimit(ConstPrimitivePtr primitive) {
497   if (primitive != nullptr) {
498     auto prim = static_cast<const schema::Primitive *>(primitive);
499     auto value = prim->value_as_Mfcc();
500     if (prim != nullptr && value != nullptr) {
501       return value->freq_upper_limit();
502     } else {
503       return .0;
504     }
505   } else {
506     return .0;
507   }
508 }
509 
MindIR_Mfcc_SetFreqUpperLimit(PrimitivePtr * primitive,float freq_upper_limit)510 void MindIR_Mfcc_SetFreqUpperLimit(PrimitivePtr *primitive, float freq_upper_limit) {
511   if (primitive != nullptr && *primitive != nullptr) {
512     auto prim = static_cast<schema::Primitive *>(*primitive);
513     auto value = prim->value_as_Mfcc();
514     if (prim != nullptr && value != nullptr) {
515       flatbuffers::FlatBufferBuilder fbb;
516       auto ops_offset = schema::CreateMfcc(fbb, freq_upper_limit, value->freq_lower_limit(), value->filter_bank_channel_num(), value->dct_coeff_num());
517       auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_MFCC), ops_offset.o);
518       fbb.Finish(prim_offset);
519       auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
520       auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
521       free(*primitive);
522       *primitive = ret_value;
523     }
524   }
525 }
526 
MindIR_Mfcc_GetFreqLowerLimit(ConstPrimitivePtr primitive)527 float MindIR_Mfcc_GetFreqLowerLimit(ConstPrimitivePtr primitive) {
528   if (primitive != nullptr) {
529     auto prim = static_cast<const schema::Primitive *>(primitive);
530     auto value = prim->value_as_Mfcc();
531     if (prim != nullptr && value != nullptr) {
532       return value->freq_lower_limit();
533     } else {
534       return .0;
535     }
536   } else {
537     return .0;
538   }
539 }
540 
MindIR_Mfcc_SetFreqLowerLimit(PrimitivePtr * primitive,float freq_lower_limit)541 void MindIR_Mfcc_SetFreqLowerLimit(PrimitivePtr *primitive, float freq_lower_limit) {
542   if (primitive != nullptr && *primitive != nullptr) {
543     auto prim = static_cast<schema::Primitive *>(*primitive);
544     auto value = prim->value_as_Mfcc();
545     if (prim != nullptr && value != nullptr) {
546       flatbuffers::FlatBufferBuilder fbb;
547       auto ops_offset = schema::CreateMfcc(fbb, value->freq_upper_limit(), freq_lower_limit, value->filter_bank_channel_num(), value->dct_coeff_num());
548       auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_MFCC), ops_offset.o);
549       fbb.Finish(prim_offset);
550       auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
551       auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
552       free(*primitive);
553       *primitive = ret_value;
554     }
555   }
556 }
557 
MindIR_Mfcc_GetFilterBankChannelNum(ConstPrimitivePtr primitive)558 int64_t MindIR_Mfcc_GetFilterBankChannelNum(ConstPrimitivePtr primitive) {
559   if (primitive != nullptr) {
560     auto prim = static_cast<const schema::Primitive *>(primitive);
561     auto value = prim->value_as_Mfcc();
562     if (prim != nullptr && value != nullptr) {
563       return value->filter_bank_channel_num();
564     } else {
565       return 0;
566     }
567   } else {
568     return 0;
569   }
570 }
571 
MindIR_Mfcc_SetFilterBankChannelNum(PrimitivePtr * primitive,int64_t filter_bank_channel_num)572 void MindIR_Mfcc_SetFilterBankChannelNum(PrimitivePtr *primitive, int64_t filter_bank_channel_num) {
573   if (primitive != nullptr && *primitive != nullptr) {
574     auto prim = static_cast<schema::Primitive *>(*primitive);
575     auto value = prim->value_as_Mfcc();
576     if (prim != nullptr && value != nullptr) {
577       flatbuffers::FlatBufferBuilder fbb;
578       auto ops_offset = schema::CreateMfcc(fbb, value->freq_upper_limit(), value->freq_lower_limit(), filter_bank_channel_num, value->dct_coeff_num());
579       auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_MFCC), ops_offset.o);
580       fbb.Finish(prim_offset);
581       auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
582       auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
583       free(*primitive);
584       *primitive = ret_value;
585     }
586   }
587 }
588 
MindIR_Mfcc_GetDctCoeffNum(ConstPrimitivePtr primitive)589 int64_t MindIR_Mfcc_GetDctCoeffNum(ConstPrimitivePtr primitive) {
590   if (primitive != nullptr) {
591     auto prim = static_cast<const schema::Primitive *>(primitive);
592     auto value = prim->value_as_Mfcc();
593     if (prim != nullptr && value != nullptr) {
594       return value->dct_coeff_num();
595     } else {
596       return 0;
597     }
598   } else {
599     return 0;
600   }
601 }
602 
MindIR_Mfcc_SetDctCoeffNum(PrimitivePtr * primitive,int64_t dct_coeff_num)603 void MindIR_Mfcc_SetDctCoeffNum(PrimitivePtr *primitive, int64_t dct_coeff_num) {
604   if (primitive != nullptr && *primitive != nullptr) {
605     auto prim = static_cast<schema::Primitive *>(*primitive);
606     auto value = prim->value_as_Mfcc();
607     if (prim != nullptr && value != nullptr) {
608       flatbuffers::FlatBufferBuilder fbb;
609       auto ops_offset = schema::CreateMfcc(fbb, value->freq_upper_limit(), value->freq_lower_limit(), value->filter_bank_channel_num(), dct_coeff_num);
610       auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_MFCC), ops_offset.o);
611       fbb.Finish(prim_offset);
612       auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
613       auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
614       free(*primitive);
615       *primitive = ret_value;
616     }
617   }
618 }
619 
620 // ********** NonMaxSuppression **********
MindIR_NonMaxSuppression_CreatePrimitive(int64_t center_point_box)621 PrimitivePtr MindIR_NonMaxSuppression_CreatePrimitive(int64_t center_point_box) {
622   flatbuffers::FlatBufferBuilder fbb;
623   auto ops_offset = schema::CreateNonMaxSuppression(fbb, center_point_box);
624   auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_NON_MAX_SUPPRESSION), ops_offset.o);
625   fbb.Finish(prim_offset);
626   auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
627   auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
628   return ret_value;
629 }
630 
MindIR_NonMaxSuppression_GetCenterPointBox(ConstPrimitivePtr primitive)631 int64_t MindIR_NonMaxSuppression_GetCenterPointBox(ConstPrimitivePtr primitive) {
632   if (primitive != nullptr) {
633     auto prim = static_cast<const schema::Primitive *>(primitive);
634     auto value = prim->value_as_NonMaxSuppression();
635     if (prim != nullptr && value != nullptr) {
636       return value->center_point_box();
637     } else {
638       return 0;
639     }
640   } else {
641     return 0;
642   }
643 }
644 
MindIR_NonMaxSuppression_SetCenterPointBox(PrimitivePtr * primitive,int64_t center_point_box)645 void MindIR_NonMaxSuppression_SetCenterPointBox(PrimitivePtr *primitive, int64_t center_point_box) {
646   if (primitive != nullptr && *primitive != nullptr) {
647     auto prim = static_cast<schema::Primitive *>(*primitive);
648     auto value = prim->value_as_NonMaxSuppression();
649     if (prim != nullptr && value != nullptr) {
650       flatbuffers::FlatBufferBuilder fbb;
651       auto ops_offset = schema::CreateNonMaxSuppression(fbb, center_point_box);
652       auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_NON_MAX_SUPPRESSION), ops_offset.o);
653       fbb.Finish(prim_offset);
654       auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
655       auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
656       free(*primitive);
657       *primitive = ret_value;
658     }
659   }
660 }
661 
662 // ********** OnesLike **********
MindIR_OnesLike_CreatePrimitive()663 PrimitivePtr MindIR_OnesLike_CreatePrimitive() {
664   flatbuffers::FlatBufferBuilder fbb;
665   auto ops_offset = schema::CreateOnesLike(fbb);
666   auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_ONES_LIKE), ops_offset.o);
667   fbb.Finish(prim_offset);
668   auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
669   auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
670   return ret_value;
671 }
672 
673 // ********** PartialFusion **********
MindIR_PartialFusion_CreatePrimitive(int64_t sub_graph_index)674 PrimitivePtr MindIR_PartialFusion_CreatePrimitive(int64_t sub_graph_index) {
675   flatbuffers::FlatBufferBuilder fbb;
676   auto ops_offset = schema::CreatePartialFusion(fbb, sub_graph_index);
677   auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_PARTIAL_FUSION), ops_offset.o);
678   fbb.Finish(prim_offset);
679   auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
680   auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
681   return ret_value;
682 }
683 
MindIR_PartialFusion_GetSubGraphIndex(ConstPrimitivePtr primitive)684 int64_t MindIR_PartialFusion_GetSubGraphIndex(ConstPrimitivePtr primitive) {
685   if (primitive != nullptr) {
686     auto prim = static_cast<const schema::Primitive *>(primitive);
687     auto value = prim->value_as_PartialFusion();
688     if (prim != nullptr && value != nullptr) {
689       return value->sub_graph_index();
690     } else {
691       return 0;
692     }
693   } else {
694     return 0;
695   }
696 }
697 
MindIR_PartialFusion_SetSubGraphIndex(PrimitivePtr * primitive,int64_t sub_graph_index)698 void MindIR_PartialFusion_SetSubGraphIndex(PrimitivePtr *primitive, int64_t sub_graph_index) {
699   if (primitive != nullptr && *primitive != nullptr) {
700     auto prim = static_cast<schema::Primitive *>(*primitive);
701     auto value = prim->value_as_PartialFusion();
702     if (prim != nullptr && value != nullptr) {
703       flatbuffers::FlatBufferBuilder fbb;
704       auto ops_offset = schema::CreatePartialFusion(fbb, sub_graph_index);
705       auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_PARTIAL_FUSION), ops_offset.o);
706       fbb.Finish(prim_offset);
707       auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
708       auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
709       free(*primitive);
710       *primitive = ret_value;
711     }
712   }
713 }
714 
715 // ********** PriorBox **********
MindIR_PriorBox_CreatePrimitive(const std::vector<int64_t> & min_sizes,const std::vector<int64_t> & max_sizes,const std::vector<float> & aspect_ratios,const std::vector<float> & variances,int64_t image_size_w,int64_t image_size_h,float step_w,float step_h,bool clip,bool flip,float offset)716 PrimitivePtr MindIR_PriorBox_CreatePrimitive(const std::vector<int64_t> &min_sizes, const std::vector<int64_t> &max_sizes, const std::vector<float> &aspect_ratios, const std::vector<float> &variances, int64_t image_size_w, int64_t image_size_h, float step_w, float step_h, bool clip, bool flip, float offset) {
717   flatbuffers::FlatBufferBuilder fbb;
718   auto ops_offset = schema::CreatePriorBox(fbb, fbb.CreateVector(min_sizes.data(), min_sizes.size()), fbb.CreateVector(max_sizes.data(), max_sizes.size()), fbb.CreateVector(aspect_ratios.data(), aspect_ratios.size()), fbb.CreateVector(variances.data(), variances.size()), image_size_w, image_size_h, step_w, step_h, clip, flip, offset);
719   auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_PRIOR_BOX), ops_offset.o);
720   fbb.Finish(prim_offset);
721   auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
722   auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
723   return ret_value;
724 }
725 
MindIR_PriorBox_GetMinSizes(ConstPrimitivePtr primitive)726 std::vector<int64_t> MindIR_PriorBox_GetMinSizes(ConstPrimitivePtr primitive) {
727   if (primitive != nullptr) {
728     auto prim = static_cast<const schema::Primitive *>(primitive);
729     auto value = prim->value_as_PriorBox();
730     if (prim != nullptr && value != nullptr) {
731       std::vector<int64_t> result;
732       auto src = value->min_sizes();
733       if (src == nullptr) {
734         return {};
735       }
736       result.resize(src->size());
737       std::transform(src->begin(), src->end(), result.begin(), [](int64_t item) { return item; });
738       return result;
739     } else {
740       return {};
741     }
742   } else {
743     return {};
744   }
745 }
746 
MindIR_PriorBox_SetMinSizes(PrimitivePtr * primitive,const std::vector<int64_t> & min_sizes)747 void MindIR_PriorBox_SetMinSizes(PrimitivePtr *primitive, const std::vector<int64_t> &min_sizes) {
748   if (primitive != nullptr && *primitive != nullptr) {
749     auto prim = static_cast<schema::Primitive *>(*primitive);
750     auto value = prim->value_as_PriorBox();
751     if (prim != nullptr && value != nullptr) {
752       flatbuffers::FlatBufferBuilder fbb;
753       auto ops_offset = schema::CreatePriorBox(fbb, fbb.CreateVector(min_sizes.data(), min_sizes.size()), fbb.CreateVector(value->max_sizes()->data(), value->max_sizes()->size()), fbb.CreateVector(value->aspect_ratios()->data(), value->aspect_ratios()->size()), fbb.CreateVector(value->variances()->data(), value->variances()->size()), value->image_size_w(), value->image_size_h(), value->step_w(), value->step_h(), value->clip(), value->flip(), value->offset());
754       auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_PRIOR_BOX), ops_offset.o);
755       fbb.Finish(prim_offset);
756       auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
757       auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
758       free(*primitive);
759       *primitive = ret_value;
760     }
761   }
762 }
763 
MindIR_PriorBox_GetMaxSizes(ConstPrimitivePtr primitive)764 std::vector<int64_t> MindIR_PriorBox_GetMaxSizes(ConstPrimitivePtr primitive) {
765   if (primitive != nullptr) {
766     auto prim = static_cast<const schema::Primitive *>(primitive);
767     auto value = prim->value_as_PriorBox();
768     if (prim != nullptr && value != nullptr) {
769       std::vector<int64_t> result;
770       auto src = value->max_sizes();
771       if (src == nullptr) {
772         return {};
773       }
774       result.resize(src->size());
775       std::transform(src->begin(), src->end(), result.begin(), [](int64_t item) { return item; });
776       return result;
777     } else {
778       return {};
779     }
780   } else {
781     return {};
782   }
783 }
784 
MindIR_PriorBox_SetMaxSizes(PrimitivePtr * primitive,const std::vector<int64_t> & max_sizes)785 void MindIR_PriorBox_SetMaxSizes(PrimitivePtr *primitive, const std::vector<int64_t> &max_sizes) {
786   if (primitive != nullptr && *primitive != nullptr) {
787     auto prim = static_cast<schema::Primitive *>(*primitive);
788     auto value = prim->value_as_PriorBox();
789     if (prim != nullptr && value != nullptr) {
790       flatbuffers::FlatBufferBuilder fbb;
791       auto ops_offset = schema::CreatePriorBox(fbb, fbb.CreateVector(value->min_sizes()->data(), value->min_sizes()->size()), fbb.CreateVector(max_sizes.data(), max_sizes.size()), fbb.CreateVector(value->aspect_ratios()->data(), value->aspect_ratios()->size()), fbb.CreateVector(value->variances()->data(), value->variances()->size()), value->image_size_w(), value->image_size_h(), value->step_w(), value->step_h(), value->clip(), value->flip(), value->offset());
792       auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_PRIOR_BOX), ops_offset.o);
793       fbb.Finish(prim_offset);
794       auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
795       auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
796       free(*primitive);
797       *primitive = ret_value;
798     }
799   }
800 }
801 
MindIR_PriorBox_GetAspectRatios(ConstPrimitivePtr primitive)802 std::vector<float> MindIR_PriorBox_GetAspectRatios(ConstPrimitivePtr primitive) {
803   if (primitive != nullptr) {
804     auto prim = static_cast<const schema::Primitive *>(primitive);
805     auto value = prim->value_as_PriorBox();
806     if (prim != nullptr && value != nullptr) {
807       std::vector<float> result;
808       auto src = value->aspect_ratios();
809       if (src == nullptr) {
810         return {};
811       }
812       result.resize(src->size());
813       std::transform(src->begin(), src->end(), result.begin(), [](float item) { return item; });
814       return result;
815     } else {
816       return {};
817     }
818   } else {
819     return {};
820   }
821 }
822 
MindIR_PriorBox_SetAspectRatios(PrimitivePtr * primitive,const std::vector<float> & aspect_ratios)823 void MindIR_PriorBox_SetAspectRatios(PrimitivePtr *primitive, const std::vector<float> &aspect_ratios) {
824   if (primitive != nullptr && *primitive != nullptr) {
825     auto prim = static_cast<schema::Primitive *>(*primitive);
826     auto value = prim->value_as_PriorBox();
827     if (prim != nullptr && value != nullptr) {
828       flatbuffers::FlatBufferBuilder fbb;
829       auto ops_offset = schema::CreatePriorBox(fbb, fbb.CreateVector(value->min_sizes()->data(), value->min_sizes()->size()), fbb.CreateVector(value->max_sizes()->data(), value->max_sizes()->size()), fbb.CreateVector(aspect_ratios.data(), aspect_ratios.size()), fbb.CreateVector(value->variances()->data(), value->variances()->size()), value->image_size_w(), value->image_size_h(), value->step_w(), value->step_h(), value->clip(), value->flip(), value->offset());
830       auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_PRIOR_BOX), ops_offset.o);
831       fbb.Finish(prim_offset);
832       auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
833       auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
834       free(*primitive);
835       *primitive = ret_value;
836     }
837   }
838 }
839 
MindIR_PriorBox_GetVariances(ConstPrimitivePtr primitive)840 std::vector<float> MindIR_PriorBox_GetVariances(ConstPrimitivePtr primitive) {
841   if (primitive != nullptr) {
842     auto prim = static_cast<const schema::Primitive *>(primitive);
843     auto value = prim->value_as_PriorBox();
844     if (prim != nullptr && value != nullptr) {
845       std::vector<float> result;
846       auto src = value->variances();
847       if (src == nullptr) {
848         return {};
849       }
850       result.resize(src->size());
851       std::transform(src->begin(), src->end(), result.begin(), [](float item) { return item; });
852       return result;
853     } else {
854       return {};
855     }
856   } else {
857     return {};
858   }
859 }
860 
MindIR_PriorBox_SetVariances(PrimitivePtr * primitive,const std::vector<float> & variances)861 void MindIR_PriorBox_SetVariances(PrimitivePtr *primitive, const std::vector<float> &variances) {
862   if (primitive != nullptr && *primitive != nullptr) {
863     auto prim = static_cast<schema::Primitive *>(*primitive);
864     auto value = prim->value_as_PriorBox();
865     if (prim != nullptr && value != nullptr) {
866       flatbuffers::FlatBufferBuilder fbb;
867       auto ops_offset = schema::CreatePriorBox(fbb, fbb.CreateVector(value->min_sizes()->data(), value->min_sizes()->size()), fbb.CreateVector(value->max_sizes()->data(), value->max_sizes()->size()), fbb.CreateVector(value->aspect_ratios()->data(), value->aspect_ratios()->size()), fbb.CreateVector(variances.data(), variances.size()), value->image_size_w(), value->image_size_h(), value->step_w(), value->step_h(), value->clip(), value->flip(), value->offset());
868       auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_PRIOR_BOX), ops_offset.o);
869       fbb.Finish(prim_offset);
870       auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
871       auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
872       free(*primitive);
873       *primitive = ret_value;
874     }
875   }
876 }
877 
MindIR_PriorBox_GetImageSizeW(ConstPrimitivePtr primitive)878 int64_t MindIR_PriorBox_GetImageSizeW(ConstPrimitivePtr primitive) {
879   if (primitive != nullptr) {
880     auto prim = static_cast<const schema::Primitive *>(primitive);
881     auto value = prim->value_as_PriorBox();
882     if (prim != nullptr && value != nullptr) {
883       return value->image_size_w();
884     } else {
885       return 0;
886     }
887   } else {
888     return 0;
889   }
890 }
891 
MindIR_PriorBox_SetImageSizeW(PrimitivePtr * primitive,int64_t image_size_w)892 void MindIR_PriorBox_SetImageSizeW(PrimitivePtr *primitive, int64_t image_size_w) {
893   if (primitive != nullptr && *primitive != nullptr) {
894     auto prim = static_cast<schema::Primitive *>(*primitive);
895     auto value = prim->value_as_PriorBox();
896     if (prim != nullptr && value != nullptr) {
897       flatbuffers::FlatBufferBuilder fbb;
898       auto ops_offset = schema::CreatePriorBox(fbb, fbb.CreateVector(value->min_sizes()->data(), value->min_sizes()->size()), fbb.CreateVector(value->max_sizes()->data(), value->max_sizes()->size()), fbb.CreateVector(value->aspect_ratios()->data(), value->aspect_ratios()->size()), fbb.CreateVector(value->variances()->data(), value->variances()->size()), image_size_w, value->image_size_h(), value->step_w(), value->step_h(), value->clip(), value->flip(), value->offset());
899       auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_PRIOR_BOX), ops_offset.o);
900       fbb.Finish(prim_offset);
901       auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
902       auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
903       free(*primitive);
904       *primitive = ret_value;
905     }
906   }
907 }
908 
MindIR_PriorBox_GetImageSizeH(ConstPrimitivePtr primitive)909 int64_t MindIR_PriorBox_GetImageSizeH(ConstPrimitivePtr primitive) {
910   if (primitive != nullptr) {
911     auto prim = static_cast<const schema::Primitive *>(primitive);
912     auto value = prim->value_as_PriorBox();
913     if (prim != nullptr && value != nullptr) {
914       return value->image_size_h();
915     } else {
916       return 0;
917     }
918   } else {
919     return 0;
920   }
921 }
922 
MindIR_PriorBox_SetImageSizeH(PrimitivePtr * primitive,int64_t image_size_h)923 void MindIR_PriorBox_SetImageSizeH(PrimitivePtr *primitive, int64_t image_size_h) {
924   if (primitive != nullptr && *primitive != nullptr) {
925     auto prim = static_cast<schema::Primitive *>(*primitive);
926     auto value = prim->value_as_PriorBox();
927     if (prim != nullptr && value != nullptr) {
928       flatbuffers::FlatBufferBuilder fbb;
929       auto ops_offset = schema::CreatePriorBox(fbb, fbb.CreateVector(value->min_sizes()->data(), value->min_sizes()->size()), fbb.CreateVector(value->max_sizes()->data(), value->max_sizes()->size()), fbb.CreateVector(value->aspect_ratios()->data(), value->aspect_ratios()->size()), fbb.CreateVector(value->variances()->data(), value->variances()->size()), value->image_size_w(), image_size_h, value->step_w(), value->step_h(), value->clip(), value->flip(), value->offset());
930       auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_PRIOR_BOX), ops_offset.o);
931       fbb.Finish(prim_offset);
932       auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
933       auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
934       free(*primitive);
935       *primitive = ret_value;
936     }
937   }
938 }
939 
MindIR_PriorBox_GetStepW(ConstPrimitivePtr primitive)940 float MindIR_PriorBox_GetStepW(ConstPrimitivePtr primitive) {
941   if (primitive != nullptr) {
942     auto prim = static_cast<const schema::Primitive *>(primitive);
943     auto value = prim->value_as_PriorBox();
944     if (prim != nullptr && value != nullptr) {
945       return value->step_w();
946     } else {
947       return .0;
948     }
949   } else {
950     return .0;
951   }
952 }
953 
MindIR_PriorBox_SetStepW(PrimitivePtr * primitive,float step_w)954 void MindIR_PriorBox_SetStepW(PrimitivePtr *primitive, float step_w) {
955   if (primitive != nullptr && *primitive != nullptr) {
956     auto prim = static_cast<schema::Primitive *>(*primitive);
957     auto value = prim->value_as_PriorBox();
958     if (prim != nullptr && value != nullptr) {
959       flatbuffers::FlatBufferBuilder fbb;
960       auto ops_offset = schema::CreatePriorBox(fbb, fbb.CreateVector(value->min_sizes()->data(), value->min_sizes()->size()), fbb.CreateVector(value->max_sizes()->data(), value->max_sizes()->size()), fbb.CreateVector(value->aspect_ratios()->data(), value->aspect_ratios()->size()), fbb.CreateVector(value->variances()->data(), value->variances()->size()), value->image_size_w(), value->image_size_h(), step_w, value->step_h(), value->clip(), value->flip(), value->offset());
961       auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_PRIOR_BOX), ops_offset.o);
962       fbb.Finish(prim_offset);
963       auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
964       auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
965       free(*primitive);
966       *primitive = ret_value;
967     }
968   }
969 }
970 
MindIR_PriorBox_GetStepH(ConstPrimitivePtr primitive)971 float MindIR_PriorBox_GetStepH(ConstPrimitivePtr primitive) {
972   if (primitive != nullptr) {
973     auto prim = static_cast<const schema::Primitive *>(primitive);
974     auto value = prim->value_as_PriorBox();
975     if (prim != nullptr && value != nullptr) {
976       return value->step_h();
977     } else {
978       return .0;
979     }
980   } else {
981     return .0;
982   }
983 }
984 
MindIR_PriorBox_SetStepH(PrimitivePtr * primitive,float step_h)985 void MindIR_PriorBox_SetStepH(PrimitivePtr *primitive, float step_h) {
986   if (primitive != nullptr && *primitive != nullptr) {
987     auto prim = static_cast<schema::Primitive *>(*primitive);
988     auto value = prim->value_as_PriorBox();
989     if (prim != nullptr && value != nullptr) {
990       flatbuffers::FlatBufferBuilder fbb;
991       auto ops_offset = schema::CreatePriorBox(fbb, fbb.CreateVector(value->min_sizes()->data(), value->min_sizes()->size()), fbb.CreateVector(value->max_sizes()->data(), value->max_sizes()->size()), fbb.CreateVector(value->aspect_ratios()->data(), value->aspect_ratios()->size()), fbb.CreateVector(value->variances()->data(), value->variances()->size()), value->image_size_w(), value->image_size_h(), value->step_w(), step_h, value->clip(), value->flip(), value->offset());
992       auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_PRIOR_BOX), ops_offset.o);
993       fbb.Finish(prim_offset);
994       auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
995       auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
996       free(*primitive);
997       *primitive = ret_value;
998     }
999   }
1000 }
1001 
MindIR_PriorBox_GetClip(ConstPrimitivePtr primitive)1002 bool MindIR_PriorBox_GetClip(ConstPrimitivePtr primitive) {
1003   if (primitive != nullptr) {
1004     auto prim = static_cast<const schema::Primitive *>(primitive);
1005     auto value = prim->value_as_PriorBox();
1006     if (prim != nullptr && value != nullptr) {
1007       return value->clip();
1008     } else {
1009       return false;
1010     }
1011   } else {
1012     return false;
1013   }
1014 }
1015 
MindIR_PriorBox_SetClip(PrimitivePtr * primitive,bool clip)1016 void MindIR_PriorBox_SetClip(PrimitivePtr *primitive, bool clip) {
1017   if (primitive != nullptr && *primitive != nullptr) {
1018     auto prim = static_cast<schema::Primitive *>(*primitive);
1019     auto value = prim->value_as_PriorBox();
1020     if (prim != nullptr && value != nullptr) {
1021       flatbuffers::FlatBufferBuilder fbb;
1022       auto ops_offset = schema::CreatePriorBox(fbb, fbb.CreateVector(value->min_sizes()->data(), value->min_sizes()->size()), fbb.CreateVector(value->max_sizes()->data(), value->max_sizes()->size()), fbb.CreateVector(value->aspect_ratios()->data(), value->aspect_ratios()->size()), fbb.CreateVector(value->variances()->data(), value->variances()->size()), value->image_size_w(), value->image_size_h(), value->step_w(), value->step_h(), clip, value->flip(), value->offset());
1023       auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_PRIOR_BOX), ops_offset.o);
1024       fbb.Finish(prim_offset);
1025       auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
1026       auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
1027       free(*primitive);
1028       *primitive = ret_value;
1029     }
1030   }
1031 }
1032 
MindIR_PriorBox_GetFlip(ConstPrimitivePtr primitive)1033 bool MindIR_PriorBox_GetFlip(ConstPrimitivePtr primitive) {
1034   if (primitive != nullptr) {
1035     auto prim = static_cast<const schema::Primitive *>(primitive);
1036     auto value = prim->value_as_PriorBox();
1037     if (prim != nullptr && value != nullptr) {
1038       return value->flip();
1039     } else {
1040       return false;
1041     }
1042   } else {
1043     return false;
1044   }
1045 }
1046 
MindIR_PriorBox_SetFlip(PrimitivePtr * primitive,bool flip)1047 void MindIR_PriorBox_SetFlip(PrimitivePtr *primitive, bool flip) {
1048   if (primitive != nullptr && *primitive != nullptr) {
1049     auto prim = static_cast<schema::Primitive *>(*primitive);
1050     auto value = prim->value_as_PriorBox();
1051     if (prim != nullptr && value != nullptr) {
1052       flatbuffers::FlatBufferBuilder fbb;
1053       auto ops_offset = schema::CreatePriorBox(fbb, fbb.CreateVector(value->min_sizes()->data(), value->min_sizes()->size()), fbb.CreateVector(value->max_sizes()->data(), value->max_sizes()->size()), fbb.CreateVector(value->aspect_ratios()->data(), value->aspect_ratios()->size()), fbb.CreateVector(value->variances()->data(), value->variances()->size()), value->image_size_w(), value->image_size_h(), value->step_w(), value->step_h(), value->clip(), flip, value->offset());
1054       auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_PRIOR_BOX), ops_offset.o);
1055       fbb.Finish(prim_offset);
1056       auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
1057       auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
1058       free(*primitive);
1059       *primitive = ret_value;
1060     }
1061   }
1062 }
1063 
MindIR_PriorBox_GetOffset(ConstPrimitivePtr primitive)1064 float MindIR_PriorBox_GetOffset(ConstPrimitivePtr primitive) {
1065   if (primitive != nullptr) {
1066     auto prim = static_cast<const schema::Primitive *>(primitive);
1067     auto value = prim->value_as_PriorBox();
1068     if (prim != nullptr && value != nullptr) {
1069       return value->offset();
1070     } else {
1071       return .0;
1072     }
1073   } else {
1074     return .0;
1075   }
1076 }
1077 
MindIR_PriorBox_SetOffset(PrimitivePtr * primitive,float offset)1078 void MindIR_PriorBox_SetOffset(PrimitivePtr *primitive, float offset) {
1079   if (primitive != nullptr && *primitive != nullptr) {
1080     auto prim = static_cast<schema::Primitive *>(*primitive);
1081     auto value = prim->value_as_PriorBox();
1082     if (prim != nullptr && value != nullptr) {
1083       flatbuffers::FlatBufferBuilder fbb;
1084       auto ops_offset = schema::CreatePriorBox(fbb, fbb.CreateVector(value->min_sizes()->data(), value->min_sizes()->size()), fbb.CreateVector(value->max_sizes()->data(), value->max_sizes()->size()), fbb.CreateVector(value->aspect_ratios()->data(), value->aspect_ratios()->size()), fbb.CreateVector(value->variances()->data(), value->variances()->size()), value->image_size_w(), value->image_size_h(), value->step_w(), value->step_h(), value->clip(), value->flip(), offset);
1085       auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_PRIOR_BOX), ops_offset.o);
1086       fbb.Finish(prim_offset);
1087       auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
1088       auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
1089       free(*primitive);
1090       *primitive = ret_value;
1091     }
1092   }
1093 }
1094 
1095 // ********** ReverseSequence **********
MindIR_ReverseSequence_CreatePrimitive(int64_t seq_dim,int64_t batch_dim)1096 PrimitivePtr MindIR_ReverseSequence_CreatePrimitive(int64_t seq_dim, int64_t batch_dim) {
1097   flatbuffers::FlatBufferBuilder fbb;
1098   auto ops_offset = schema::CreateReverseSequence(fbb, seq_dim, batch_dim);
1099   auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_REVERSE_SEQUENCE), ops_offset.o);
1100   fbb.Finish(prim_offset);
1101   auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
1102   auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
1103   return ret_value;
1104 }
1105 
MindIR_ReverseSequence_GetSeqDim(ConstPrimitivePtr primitive)1106 int64_t MindIR_ReverseSequence_GetSeqDim(ConstPrimitivePtr primitive) {
1107   if (primitive != nullptr) {
1108     auto prim = static_cast<const schema::Primitive *>(primitive);
1109     auto value = prim->value_as_ReverseSequence();
1110     if (prim != nullptr && value != nullptr) {
1111       return value->seq_dim();
1112     } else {
1113       return 0;
1114     }
1115   } else {
1116     return 0;
1117   }
1118 }
1119 
MindIR_ReverseSequence_SetSeqDim(PrimitivePtr * primitive,int64_t seq_dim)1120 void MindIR_ReverseSequence_SetSeqDim(PrimitivePtr *primitive, int64_t seq_dim) {
1121   if (primitive != nullptr && *primitive != nullptr) {
1122     auto prim = static_cast<schema::Primitive *>(*primitive);
1123     auto value = prim->value_as_ReverseSequence();
1124     if (prim != nullptr && value != nullptr) {
1125       flatbuffers::FlatBufferBuilder fbb;
1126       auto ops_offset = schema::CreateReverseSequence(fbb, seq_dim, value->batch_dim());
1127       auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_REVERSE_SEQUENCE), ops_offset.o);
1128       fbb.Finish(prim_offset);
1129       auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
1130       auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
1131       free(*primitive);
1132       *primitive = ret_value;
1133     }
1134   }
1135 }
1136 
MindIR_ReverseSequence_GetBatchDim(ConstPrimitivePtr primitive)1137 int64_t MindIR_ReverseSequence_GetBatchDim(ConstPrimitivePtr primitive) {
1138   if (primitive != nullptr) {
1139     auto prim = static_cast<const schema::Primitive *>(primitive);
1140     auto value = prim->value_as_ReverseSequence();
1141     if (prim != nullptr && value != nullptr) {
1142       return value->batch_dim();
1143     } else {
1144       return 0;
1145     }
1146   } else {
1147     return 0;
1148   }
1149 }
1150 
MindIR_ReverseSequence_SetBatchDim(PrimitivePtr * primitive,int64_t batch_dim)1151 void MindIR_ReverseSequence_SetBatchDim(PrimitivePtr *primitive, int64_t batch_dim) {
1152   if (primitive != nullptr && *primitive != nullptr) {
1153     auto prim = static_cast<schema::Primitive *>(*primitive);
1154     auto value = prim->value_as_ReverseSequence();
1155     if (prim != nullptr && value != nullptr) {
1156       flatbuffers::FlatBufferBuilder fbb;
1157       auto ops_offset = schema::CreateReverseSequence(fbb, value->seq_dim(), batch_dim);
1158       auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_REVERSE_SEQUENCE), ops_offset.o);
1159       fbb.Finish(prim_offset);
1160       auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
1161       auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
1162       free(*primitive);
1163       *primitive = ret_value;
1164     }
1165   }
1166 }
1167 
1168 // ********** ReverseV2 **********
MindIR_ReverseV2_CreatePrimitive(const std::vector<int64_t> & axis)1169 PrimitivePtr MindIR_ReverseV2_CreatePrimitive(const std::vector<int64_t> &axis) {
1170   flatbuffers::FlatBufferBuilder fbb;
1171   auto ops_offset = schema::CreateReverseV2(fbb, fbb.CreateVector(axis.data(), axis.size()));
1172   auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_REVERSE_V2), ops_offset.o);
1173   fbb.Finish(prim_offset);
1174   auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
1175   auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
1176   return ret_value;
1177 }
1178 
MindIR_ReverseV2_GetAxis(ConstPrimitivePtr primitive)1179 std::vector<int64_t> MindIR_ReverseV2_GetAxis(ConstPrimitivePtr primitive) {
1180   if (primitive != nullptr) {
1181     auto prim = static_cast<const schema::Primitive *>(primitive);
1182     auto value = prim->value_as_ReverseV2();
1183     if (prim != nullptr && value != nullptr) {
1184       std::vector<int64_t> result;
1185       auto src = value->axis();
1186       if (src == nullptr) {
1187         return {};
1188       }
1189       result.resize(src->size());
1190       std::transform(src->begin(), src->end(), result.begin(), [](int64_t item) { return item; });
1191       return result;
1192     } else {
1193       return {};
1194     }
1195   } else {
1196     return {};
1197   }
1198 }
1199 
MindIR_ReverseV2_SetAxis(PrimitivePtr * primitive,const std::vector<int64_t> & axis)1200 void MindIR_ReverseV2_SetAxis(PrimitivePtr *primitive, const std::vector<int64_t> &axis) {
1201   if (primitive != nullptr && *primitive != nullptr) {
1202     auto prim = static_cast<schema::Primitive *>(*primitive);
1203     auto value = prim->value_as_ReverseV2();
1204     if (prim != nullptr && value != nullptr) {
1205       flatbuffers::FlatBufferBuilder fbb;
1206       auto ops_offset = schema::CreateReverseV2(fbb, fbb.CreateVector(axis.data(), axis.size()));
1207       auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_REVERSE_V2), ops_offset.o);
1208       fbb.Finish(prim_offset);
1209       auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
1210       auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
1211       free(*primitive);
1212       *primitive = ret_value;
1213     }
1214   }
1215 }
1216 
1217 // ********** Rfft **********
MindIR_Rfft_CreatePrimitive(int64_t fft_length)1218 PrimitivePtr MindIR_Rfft_CreatePrimitive(int64_t fft_length) {
1219   flatbuffers::FlatBufferBuilder fbb;
1220   auto ops_offset = schema::CreateRfft(fbb, fft_length);
1221   auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_RFFT), ops_offset.o);
1222   fbb.Finish(prim_offset);
1223   auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
1224   auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
1225   return ret_value;
1226 }
1227 
MindIR_Rfft_GetFftLength(ConstPrimitivePtr primitive)1228 int64_t MindIR_Rfft_GetFftLength(ConstPrimitivePtr primitive) {
1229   if (primitive != nullptr) {
1230     auto prim = static_cast<const schema::Primitive *>(primitive);
1231     auto value = prim->value_as_Rfft();
1232     if (prim != nullptr && value != nullptr) {
1233       return value->fft_length();
1234     } else {
1235       return 0;
1236     }
1237   } else {
1238     return 0;
1239   }
1240 }
1241 
MindIR_Rfft_SetFftLength(PrimitivePtr * primitive,int64_t fft_length)1242 void MindIR_Rfft_SetFftLength(PrimitivePtr *primitive, int64_t fft_length) {
1243   if (primitive != nullptr && *primitive != nullptr) {
1244     auto prim = static_cast<schema::Primitive *>(*primitive);
1245     auto value = prim->value_as_Rfft();
1246     if (prim != nullptr && value != nullptr) {
1247       flatbuffers::FlatBufferBuilder fbb;
1248       auto ops_offset = schema::CreateRfft(fbb, fft_length);
1249       auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_RFFT), ops_offset.o);
1250       fbb.Finish(prim_offset);
1251       auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
1252       auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
1253       free(*primitive);
1254       *primitive = ret_value;
1255     }
1256   }
1257 }
1258 
1259 // ********** ROIPooling **********
MindIR_ROIPooling_CreatePrimitive(int64_t pooled_h,int64_t pooled_w,float scale)1260 PrimitivePtr MindIR_ROIPooling_CreatePrimitive(int64_t pooled_h, int64_t pooled_w, float scale) {
1261   flatbuffers::FlatBufferBuilder fbb;
1262   auto ops_offset = schema::CreateROIPooling(fbb, pooled_h, pooled_w, scale);
1263   auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_R_O_I_POOLING), ops_offset.o);
1264   fbb.Finish(prim_offset);
1265   auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
1266   auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
1267   return ret_value;
1268 }
1269 
MindIR_ROIPooling_GetPooledH(ConstPrimitivePtr primitive)1270 int64_t MindIR_ROIPooling_GetPooledH(ConstPrimitivePtr primitive) {
1271   if (primitive != nullptr) {
1272     auto prim = static_cast<const schema::Primitive *>(primitive);
1273     auto value = prim->value_as_ROIPooling();
1274     if (prim != nullptr && value != nullptr) {
1275       return value->pooled_h();
1276     } else {
1277       return 0;
1278     }
1279   } else {
1280     return 0;
1281   }
1282 }
1283 
MindIR_ROIPooling_SetPooledH(PrimitivePtr * primitive,int64_t pooled_h)1284 void MindIR_ROIPooling_SetPooledH(PrimitivePtr *primitive, int64_t pooled_h) {
1285   if (primitive != nullptr && *primitive != nullptr) {
1286     auto prim = static_cast<schema::Primitive *>(*primitive);
1287     auto value = prim->value_as_ROIPooling();
1288     if (prim != nullptr && value != nullptr) {
1289       flatbuffers::FlatBufferBuilder fbb;
1290       auto ops_offset = schema::CreateROIPooling(fbb, pooled_h, value->pooled_w(), value->scale());
1291       auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_R_O_I_POOLING), ops_offset.o);
1292       fbb.Finish(prim_offset);
1293       auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
1294       auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
1295       free(*primitive);
1296       *primitive = ret_value;
1297     }
1298   }
1299 }
1300 
MindIR_ROIPooling_GetPooledW(ConstPrimitivePtr primitive)1301 int64_t MindIR_ROIPooling_GetPooledW(ConstPrimitivePtr primitive) {
1302   if (primitive != nullptr) {
1303     auto prim = static_cast<const schema::Primitive *>(primitive);
1304     auto value = prim->value_as_ROIPooling();
1305     if (prim != nullptr && value != nullptr) {
1306       return value->pooled_w();
1307     } else {
1308       return 0;
1309     }
1310   } else {
1311     return 0;
1312   }
1313 }
1314 
MindIR_ROIPooling_SetPooledW(PrimitivePtr * primitive,int64_t pooled_w)1315 void MindIR_ROIPooling_SetPooledW(PrimitivePtr *primitive, int64_t pooled_w) {
1316   if (primitive != nullptr && *primitive != nullptr) {
1317     auto prim = static_cast<schema::Primitive *>(*primitive);
1318     auto value = prim->value_as_ROIPooling();
1319     if (prim != nullptr && value != nullptr) {
1320       flatbuffers::FlatBufferBuilder fbb;
1321       auto ops_offset = schema::CreateROIPooling(fbb, value->pooled_h(), pooled_w, value->scale());
1322       auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_R_O_I_POOLING), ops_offset.o);
1323       fbb.Finish(prim_offset);
1324       auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
1325       auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
1326       free(*primitive);
1327       *primitive = ret_value;
1328     }
1329   }
1330 }
1331 
MindIR_ROIPooling_GetScale(ConstPrimitivePtr primitive)1332 float MindIR_ROIPooling_GetScale(ConstPrimitivePtr primitive) {
1333   if (primitive != nullptr) {
1334     auto prim = static_cast<const schema::Primitive *>(primitive);
1335     auto value = prim->value_as_ROIPooling();
1336     if (prim != nullptr && value != nullptr) {
1337       return value->scale();
1338     } else {
1339       return .0;
1340     }
1341   } else {
1342     return .0;
1343   }
1344 }
1345 
MindIR_ROIPooling_SetScale(PrimitivePtr * primitive,float scale)1346 void MindIR_ROIPooling_SetScale(PrimitivePtr *primitive, float scale) {
1347   if (primitive != nullptr && *primitive != nullptr) {
1348     auto prim = static_cast<schema::Primitive *>(*primitive);
1349     auto value = prim->value_as_ROIPooling();
1350     if (prim != nullptr && value != nullptr) {
1351       flatbuffers::FlatBufferBuilder fbb;
1352       auto ops_offset = schema::CreateROIPooling(fbb, value->pooled_h(), value->pooled_w(), scale);
1353       auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_R_O_I_POOLING), ops_offset.o);
1354       fbb.Finish(prim_offset);
1355       auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
1356       auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
1357       free(*primitive);
1358       *primitive = ret_value;
1359     }
1360   }
1361 }
1362 
1363 // ********** SkipGram **********
MindIR_SkipGram_CreatePrimitive(bool include_all_grams,int64_t max_skip_size,int64_t ngram_size)1364 PrimitivePtr MindIR_SkipGram_CreatePrimitive(bool include_all_grams, int64_t max_skip_size, int64_t ngram_size) {
1365   flatbuffers::FlatBufferBuilder fbb;
1366   auto ops_offset = schema::CreateSkipGram(fbb, include_all_grams, max_skip_size, ngram_size);
1367   auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_SKIP_GRAM), ops_offset.o);
1368   fbb.Finish(prim_offset);
1369   auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
1370   auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
1371   return ret_value;
1372 }
1373 
MindIR_SkipGram_GetIncludeAllGrams(ConstPrimitivePtr primitive)1374 bool MindIR_SkipGram_GetIncludeAllGrams(ConstPrimitivePtr primitive) {
1375   if (primitive != nullptr) {
1376     auto prim = static_cast<const schema::Primitive *>(primitive);
1377     auto value = prim->value_as_SkipGram();
1378     if (prim != nullptr && value != nullptr) {
1379       return value->include_all_grams();
1380     } else {
1381       return false;
1382     }
1383   } else {
1384     return false;
1385   }
1386 }
1387 
MindIR_SkipGram_SetIncludeAllGrams(PrimitivePtr * primitive,bool include_all_grams)1388 void MindIR_SkipGram_SetIncludeAllGrams(PrimitivePtr *primitive, bool include_all_grams) {
1389   if (primitive != nullptr && *primitive != nullptr) {
1390     auto prim = static_cast<schema::Primitive *>(*primitive);
1391     auto value = prim->value_as_SkipGram();
1392     if (prim != nullptr && value != nullptr) {
1393       flatbuffers::FlatBufferBuilder fbb;
1394       auto ops_offset = schema::CreateSkipGram(fbb, include_all_grams, value->max_skip_size(), value->ngram_size());
1395       auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_SKIP_GRAM), ops_offset.o);
1396       fbb.Finish(prim_offset);
1397       auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
1398       auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
1399       free(*primitive);
1400       *primitive = ret_value;
1401     }
1402   }
1403 }
1404 
MindIR_SkipGram_GetMaxSkipSize(ConstPrimitivePtr primitive)1405 int64_t MindIR_SkipGram_GetMaxSkipSize(ConstPrimitivePtr primitive) {
1406   if (primitive != nullptr) {
1407     auto prim = static_cast<const schema::Primitive *>(primitive);
1408     auto value = prim->value_as_SkipGram();
1409     if (prim != nullptr && value != nullptr) {
1410       return value->max_skip_size();
1411     } else {
1412       return 0;
1413     }
1414   } else {
1415     return 0;
1416   }
1417 }
1418 
MindIR_SkipGram_SetMaxSkipSize(PrimitivePtr * primitive,int64_t max_skip_size)1419 void MindIR_SkipGram_SetMaxSkipSize(PrimitivePtr *primitive, int64_t max_skip_size) {
1420   if (primitive != nullptr && *primitive != nullptr) {
1421     auto prim = static_cast<schema::Primitive *>(*primitive);
1422     auto value = prim->value_as_SkipGram();
1423     if (prim != nullptr && value != nullptr) {
1424       flatbuffers::FlatBufferBuilder fbb;
1425       auto ops_offset = schema::CreateSkipGram(fbb, value->include_all_grams(), max_skip_size, value->ngram_size());
1426       auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_SKIP_GRAM), ops_offset.o);
1427       fbb.Finish(prim_offset);
1428       auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
1429       auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
1430       free(*primitive);
1431       *primitive = ret_value;
1432     }
1433   }
1434 }
1435 
MindIR_SkipGram_GetNgramSize(ConstPrimitivePtr primitive)1436 int64_t MindIR_SkipGram_GetNgramSize(ConstPrimitivePtr primitive) {
1437   if (primitive != nullptr) {
1438     auto prim = static_cast<const schema::Primitive *>(primitive);
1439     auto value = prim->value_as_SkipGram();
1440     if (prim != nullptr && value != nullptr) {
1441       return value->ngram_size();
1442     } else {
1443       return 0;
1444     }
1445   } else {
1446     return 0;
1447   }
1448 }
1449 
MindIR_SkipGram_SetNgramSize(PrimitivePtr * primitive,int64_t ngram_size)1450 void MindIR_SkipGram_SetNgramSize(PrimitivePtr *primitive, int64_t ngram_size) {
1451   if (primitive != nullptr && *primitive != nullptr) {
1452     auto prim = static_cast<schema::Primitive *>(*primitive);
1453     auto value = prim->value_as_SkipGram();
1454     if (prim != nullptr && value != nullptr) {
1455       flatbuffers::FlatBufferBuilder fbb;
1456       auto ops_offset = schema::CreateSkipGram(fbb, value->include_all_grams(), value->max_skip_size(), ngram_size);
1457       auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_SKIP_GRAM), ops_offset.o);
1458       fbb.Finish(prim_offset);
1459       auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
1460       auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
1461       free(*primitive);
1462       *primitive = ret_value;
1463     }
1464   }
1465 }
1466 
1467 // ********** Switch **********
MindIR_Switch_CreatePrimitive()1468 PrimitivePtr MindIR_Switch_CreatePrimitive() {
1469   flatbuffers::FlatBufferBuilder fbb;
1470   auto ops_offset = schema::CreateSwitch(fbb);
1471   auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_SWITCH), ops_offset.o);
1472   fbb.Finish(prim_offset);
1473   auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
1474   auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
1475   return ret_value;
1476 }
1477 
1478 // ********** Unique **********
MindIR_Unique_CreatePrimitive()1479 PrimitivePtr MindIR_Unique_CreatePrimitive() {
1480   flatbuffers::FlatBufferBuilder fbb;
1481   auto ops_offset = schema::CreateUnique(fbb);
1482   auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_UNIQUE), ops_offset.o);
1483   fbb.Finish(prim_offset);
1484   auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
1485   auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
1486   return ret_value;
1487 }
1488 
1489 // ********** UnsortedSegmentSum **********
MindIR_UnsortedSegmentSum_CreatePrimitive()1490 PrimitivePtr MindIR_UnsortedSegmentSum_CreatePrimitive() {
1491   flatbuffers::FlatBufferBuilder fbb;
1492   auto ops_offset = schema::CreateUnsortedSegmentSum(fbb);
1493   auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_UNSORTED_SEGMENT_SUM), ops_offset.o);
1494   fbb.Finish(prim_offset);
1495   auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
1496   auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
1497   return ret_value;
1498 }
1499 
1500 // ********** ZerosLike **********
MindIR_ZerosLike_CreatePrimitive()1501 PrimitivePtr MindIR_ZerosLike_CreatePrimitive() {
1502   flatbuffers::FlatBufferBuilder fbb;
1503   auto ops_offset = schema::CreateZerosLike(fbb);
1504   auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_ZEROS_LIKE), ops_offset.o);
1505   fbb.Finish(prim_offset);
1506   auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
1507   auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
1508   return ret_value;
1509 }
1510 
1511 // ********** GRU **********
MindIR_GRU_CreatePrimitive(bool bidirectional)1512 PrimitivePtr MindIR_GRU_CreatePrimitive(bool bidirectional) {
1513   flatbuffers::FlatBufferBuilder fbb;
1514   auto ops_offset = schema::CreateGRU(fbb, bidirectional);
1515   auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_G_R_U), ops_offset.o);
1516   fbb.Finish(prim_offset);
1517   auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
1518   auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
1519   return ret_value;
1520 }
1521 
MindIR_GRU_GetBidirectional(ConstPrimitivePtr primitive)1522 bool MindIR_GRU_GetBidirectional(ConstPrimitivePtr primitive) {
1523   if (primitive != nullptr) {
1524     auto prim = static_cast<const schema::Primitive *>(primitive);
1525     auto value = prim->value_as_GRU();
1526     if (prim != nullptr && value != nullptr) {
1527       return value->bidirectional();
1528     } else {
1529       return false;
1530     }
1531   } else {
1532     return false;
1533   }
1534 }
1535 
MindIR_GRU_SetBidirectional(PrimitivePtr * primitive,bool bidirectional)1536 void MindIR_GRU_SetBidirectional(PrimitivePtr *primitive, bool bidirectional) {
1537   if (primitive != nullptr && *primitive != nullptr) {
1538     auto prim = static_cast<schema::Primitive *>(*primitive);
1539     auto value = prim->value_as_GRU();
1540     if (prim != nullptr && value != nullptr) {
1541       flatbuffers::FlatBufferBuilder fbb;
1542       auto ops_offset = schema::CreateGRU(fbb, bidirectional);
1543       auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_G_R_U), ops_offset.o);
1544       fbb.Finish(prim_offset);
1545       auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
1546       auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
1547       free(*primitive);
1548       *primitive = ret_value;
1549     }
1550   }
1551 }
1552 
1553 // ********** NonZero **********
MindIR_NonZero_CreatePrimitive()1554 PrimitivePtr MindIR_NonZero_CreatePrimitive() {
1555   flatbuffers::FlatBufferBuilder fbb;
1556   auto ops_offset = schema::CreateNonZero(fbb);
1557   auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_NON_ZERO), ops_offset.o);
1558   fbb.Finish(prim_offset);
1559   auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
1560   auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
1561   return ret_value;
1562 }
1563 
1564 // ********** InvertPermutation **********
MindIR_InvertPermutation_CreatePrimitive()1565 PrimitivePtr MindIR_InvertPermutation_CreatePrimitive() {
1566   flatbuffers::FlatBufferBuilder fbb;
1567   auto ops_offset = schema::CreateInvertPermutation(fbb);
1568   auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_INVERT_PERMUTATION), ops_offset.o);
1569   fbb.Finish(prim_offset);
1570   auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
1571   auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
1572   return ret_value;
1573 }
1574 
1575 // ********** Size **********
MindIR_Size_CreatePrimitive()1576 PrimitivePtr MindIR_Size_CreatePrimitive() {
1577   flatbuffers::FlatBufferBuilder fbb;
1578   auto ops_offset = schema::CreateSize(fbb);
1579   auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_SIZE), ops_offset.o);
1580   fbb.Finish(prim_offset);
1581   auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
1582   auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
1583   return ret_value;
1584 }
1585 
1586 // ********** RandomStandardNormal **********
MindIR_RandomStandardNormal_CreatePrimitive(int64_t seed,int64_t seed2)1587 PrimitivePtr MindIR_RandomStandardNormal_CreatePrimitive(int64_t seed, int64_t seed2) {
1588   flatbuffers::FlatBufferBuilder fbb;
1589   auto ops_offset = schema::CreateRandomStandardNormal(fbb, seed, seed2);
1590   auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_RANDOM_STANDARD_NORMAL), ops_offset.o);
1591   fbb.Finish(prim_offset);
1592   auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
1593   auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
1594   return ret_value;
1595 }
1596 
MindIR_RandomStandardNormal_GetSeed(ConstPrimitivePtr primitive)1597 int64_t MindIR_RandomStandardNormal_GetSeed(ConstPrimitivePtr primitive) {
1598   if (primitive != nullptr) {
1599     auto prim = static_cast<const schema::Primitive *>(primitive);
1600     auto value = prim->value_as_RandomStandardNormal();
1601     if (prim != nullptr && value != nullptr) {
1602       return value->seed();
1603     } else {
1604       return 0;
1605     }
1606   } else {
1607     return 0;
1608   }
1609 }
1610 
MindIR_RandomStandardNormal_SetSeed(PrimitivePtr * primitive,int64_t seed)1611 void MindIR_RandomStandardNormal_SetSeed(PrimitivePtr *primitive, int64_t seed) {
1612   if (primitive != nullptr && *primitive != nullptr) {
1613     auto prim = static_cast<schema::Primitive *>(*primitive);
1614     auto value = prim->value_as_RandomStandardNormal();
1615     if (prim != nullptr && value != nullptr) {
1616       flatbuffers::FlatBufferBuilder fbb;
1617       auto ops_offset = schema::CreateRandomStandardNormal(fbb, seed, value->seed2());
1618       auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_RANDOM_STANDARD_NORMAL), ops_offset.o);
1619       fbb.Finish(prim_offset);
1620       auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
1621       auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
1622       free(*primitive);
1623       *primitive = ret_value;
1624     }
1625   }
1626 }
MindIR_RandomStandardNormal_GetSeed2(ConstPrimitivePtr primitive)1627 int64_t MindIR_RandomStandardNormal_GetSeed2(ConstPrimitivePtr primitive) {
1628   if (primitive != nullptr) {
1629     auto prim = static_cast<const schema::Primitive *>(primitive);
1630     auto value = prim->value_as_RandomStandardNormal();
1631     if (prim != nullptr && value != nullptr) {
1632       return value->seed2();
1633     } else {
1634       return 0;
1635     }
1636   } else {
1637     return 0;
1638   }
1639 }
1640 
MindIR_RandomStandardNormal_SetSeed2(PrimitivePtr * primitive,int64_t seed2)1641 void MindIR_RandomStandardNormal_SetSeed2(PrimitivePtr *primitive, int64_t seed2) {
1642   if (primitive != nullptr && *primitive != nullptr) {
1643     auto prim = static_cast<schema::Primitive *>(*primitive);
1644     auto value = prim->value_as_RandomStandardNormal();
1645     if (prim != nullptr && value != nullptr) {
1646       flatbuffers::FlatBufferBuilder fbb;
1647       auto ops_offset = schema::CreateRandomStandardNormal(fbb, value->seed(), seed2);
1648       auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_RANDOM_STANDARD_NORMAL), ops_offset.o);
1649       fbb.Finish(prim_offset);
1650       auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
1651       auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
1652       free(*primitive);
1653       *primitive = ret_value;
1654     }
1655   }
1656 }
1657 
1658 // ********** CropAndResize **********
MindIR_CropAndResize_CreatePrimitive(ResizeMethod method,float extrapolation_value)1659 PrimitivePtr MindIR_CropAndResize_CreatePrimitive(ResizeMethod method, float extrapolation_value) {
1660   flatbuffers::FlatBufferBuilder fbb;
1661   auto ops_offset = schema::CreateCropAndResize(fbb, static_cast<schema::ResizeMethod>(method), extrapolation_value);
1662   auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_CROP_AND_RESIZE), ops_offset.o);
1663   fbb.Finish(prim_offset);
1664   auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
1665   auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
1666   return ret_value;
1667 }
1668 
MindIR_CropAndResize_GetMethod(ConstPrimitivePtr primitive)1669 ResizeMethod MindIR_CropAndResize_GetMethod(ConstPrimitivePtr primitive) {
1670   if (primitive != nullptr) {
1671     auto prim = static_cast<const schema::Primitive *>(primitive);
1672     auto value = prim->value_as_CropAndResize();
1673     if (prim != nullptr && value != nullptr) {
1674       return static_cast<ResizeMethod>(value->method());
1675     } else {
1676       ResizeMethod en = static_cast<ResizeMethod>(0);
1677       return en;
1678     }
1679   } else {
1680     ResizeMethod en = static_cast<ResizeMethod>(0);
1681     return en;
1682   }
1683 }
1684 
MindIR_CropAndResize_SetMethod(PrimitivePtr * primitive,ResizeMethod method)1685 void MindIR_CropAndResize_SetMethod(PrimitivePtr *primitive, ResizeMethod method) {
1686   if (primitive != nullptr && *primitive != nullptr) {
1687     auto prim = static_cast<schema::Primitive *>(*primitive);
1688     auto value = prim->value_as_CropAndResize();
1689     if (prim != nullptr && value != nullptr) {
1690       flatbuffers::FlatBufferBuilder fbb;
1691       auto ops_offset = schema::CreateCropAndResize(fbb, static_cast<schema::ResizeMethod>(method), value->extrapolation_value());
1692       auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_CROP_AND_RESIZE), ops_offset.o);
1693       fbb.Finish(prim_offset);
1694       auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
1695       auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
1696       free(*primitive);
1697       *primitive = ret_value;
1698     }
1699   }
1700 }
1701 
MindIR_CropAndResize_GetExtrapolationValue(ConstPrimitivePtr primitive)1702 float MindIR_CropAndResize_GetExtrapolationValue(ConstPrimitivePtr primitive) {
1703   if (primitive != nullptr) {
1704     auto prim = static_cast<const schema::Primitive *>(primitive);
1705     auto value = prim->value_as_CropAndResize();
1706     if (prim != nullptr && value != nullptr) {
1707       return value->extrapolation_value();
1708     } else {
1709       return .0;
1710     }
1711   } else {
1712     return .0;
1713   }
1714 }
1715 
MindIR_CropAndResize_SetExtrapolationValue(PrimitivePtr * primitive,float extrapolation_value)1716 void MindIR_CropAndResize_SetExtrapolationValue(PrimitivePtr *primitive, float extrapolation_value) {
1717   if (primitive != nullptr && *primitive != nullptr) {
1718     auto prim = static_cast<schema::Primitive *>(*primitive);
1719     auto value = prim->value_as_CropAndResize();
1720     if (prim != nullptr && value != nullptr) {
1721       flatbuffers::FlatBufferBuilder fbb;
1722       auto ops_offset = schema::CreateCropAndResize(fbb, static_cast<schema::ResizeMethod>(value->method()), extrapolation_value);
1723       auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_CROP_AND_RESIZE), ops_offset.o);
1724       fbb.Finish(prim_offset);
1725       auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
1726       auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
1727       free(*primitive);
1728       *primitive = ret_value;
1729     }
1730   }
1731 }
1732 
1733 // ********** IsFinite **********
MindIR_IsFinite_CreatePrimitive()1734 PrimitivePtr MindIR_IsFinite_CreatePrimitive() {
1735   flatbuffers::FlatBufferBuilder fbb;
1736   auto ops_offset = schema::CreateIsFinite(fbb);
1737   auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_IS_FINITE), ops_offset.o);
1738   fbb.Finish(prim_offset);
1739   auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
1740   auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
1741   return ret_value;
1742 }
1743 
1744 // ********** LinSpace **********
MindIR_LinSpace_CreatePrimitive()1745 PrimitivePtr MindIR_LinSpace_CreatePrimitive() {
1746   flatbuffers::FlatBufferBuilder fbb;
1747   auto ops_offset = schema::CreateLinSpace(fbb);
1748   auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_LIN_SPACE), ops_offset.o);
1749   fbb.Finish(prim_offset);
1750   auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
1751   auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
1752   return ret_value;
1753 }
1754 
1755 // ********** UniformReal **********
MindIR_UniformReal_CreatePrimitive(int64_t seed,int64_t seed2)1756 PrimitivePtr MindIR_UniformReal_CreatePrimitive(int64_t seed, int64_t seed2) {
1757   flatbuffers::FlatBufferBuilder fbb;
1758   auto ops_offset = schema::CreateUniformReal(fbb, seed, seed2);
1759   auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_UNIFORM_REAL), ops_offset.o);
1760   fbb.Finish(prim_offset);
1761   auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
1762   auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
1763   return ret_value;
1764 }
1765 
MindIR_UniformReal_GetSeed(ConstPrimitivePtr primitive)1766 int64_t MindIR_UniformReal_GetSeed(ConstPrimitivePtr primitive) {
1767   if (primitive != nullptr) {
1768     auto prim = static_cast<const schema::Primitive *>(primitive);
1769     auto value = prim->value_as_UniformReal();
1770     if (prim != nullptr && value != nullptr) {
1771       return value->seed();
1772     } else {
1773       return 0;
1774     }
1775   } else {
1776     return 0;
1777   }
1778 }
1779 
MindIR_UniformReal_SetSeed(PrimitivePtr * primitive,int64_t seed)1780 void MindIR_UniformReal_SetSeed(PrimitivePtr *primitive, int64_t seed) {
1781   if (primitive != nullptr && *primitive != nullptr) {
1782     auto prim = static_cast<schema::Primitive *>(*primitive);
1783     auto value = prim->value_as_UniformReal();
1784     if (prim != nullptr && value != nullptr) {
1785       flatbuffers::FlatBufferBuilder fbb;
1786       auto ops_offset = schema::CreateUniformReal(fbb, seed, value->seed2());
1787       auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_UNIFORM_REAL), ops_offset.o);
1788       fbb.Finish(prim_offset);
1789       auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
1790       auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
1791       free(*primitive);
1792       *primitive = ret_value;
1793     }
1794   }
1795 }
1796 
MindIR_UniformReal_GetSeed2(ConstPrimitivePtr primitive)1797 int64_t MindIR_UniformReal_GetSeed2(ConstPrimitivePtr primitive) {
1798   if (primitive != nullptr) {
1799     auto prim = static_cast<const schema::Primitive *>(primitive);
1800     auto value = prim->value_as_UniformReal();
1801     if (prim != nullptr && value != nullptr) {
1802       return value->seed2();
1803     } else {
1804       return 0;
1805     }
1806   } else {
1807     return 0;
1808   }
1809 }
1810 
MindIR_UniformReal_SetSeed2(PrimitivePtr * primitive,int64_t seed2)1811 void MindIR_UniformReal_SetSeed2(PrimitivePtr *primitive, int64_t seed2) {
1812   if (primitive != nullptr && *primitive != nullptr) {
1813     auto prim = static_cast<schema::Primitive *>(*primitive);
1814     auto value = prim->value_as_UniformReal();
1815     if (prim != nullptr && value != nullptr) {
1816       flatbuffers::FlatBufferBuilder fbb;
1817       auto ops_offset = schema::CreateUniformReal(fbb, value->seed(), seed2);
1818       auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_UNIFORM_REAL), ops_offset.o);
1819       fbb.Finish(prim_offset);
1820       auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
1821       auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
1822       free(*primitive);
1823       *primitive = ret_value;
1824     }
1825   }
1826 }
1827 
1828 // ********** Splice **********
MindIR_Splice_CreatePrimitive(const std::vector<int64_t> & context,const std::vector<int64_t> & forward_indexes,int64_t output_dim)1829 PrimitivePtr MindIR_Splice_CreatePrimitive(const std::vector<int64_t> &context, const std::vector<int64_t> &forward_indexes, int64_t output_dim) {
1830   flatbuffers::FlatBufferBuilder fbb;
1831   auto ops_offset = schema::CreateSplice(fbb, fbb.CreateVector(context.data(), context.size()), fbb.CreateVector(forward_indexes.data(), forward_indexes.size()), output_dim);
1832   auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_SPLICE), ops_offset.o);
1833   fbb.Finish(prim_offset);
1834   auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
1835   auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
1836   return ret_value;
1837 }
1838 
MindIR_Splice_GetContext(ConstPrimitivePtr primitive)1839 std::vector<int64_t> MindIR_Splice_GetContext(ConstPrimitivePtr primitive) {
1840   if (primitive != nullptr) {
1841     auto prim = static_cast<const schema::Primitive *>(primitive);
1842     auto value = prim->value_as_Splice();
1843     if (prim != nullptr && value != nullptr) {
1844       std::vector<int64_t> result;
1845       auto src = value->context();
1846       if (src == nullptr) {
1847         return {};
1848       }
1849       result.resize(src->size());
1850       std::transform(src->begin(), src->end(), result.begin(), [](int64_t item) { return item; });
1851       return result;
1852     } else {
1853       return {};
1854     }
1855   } else {
1856     return {};
1857   }
1858 }
1859 
MindIR_Splice_SetContext(PrimitivePtr * primitive,const std::vector<int64_t> & context)1860 void MindIR_Splice_SetContext(PrimitivePtr *primitive, const std::vector<int64_t> &context) {
1861   if (primitive != nullptr && *primitive != nullptr) {
1862     auto prim = static_cast<schema::Primitive *>(*primitive);
1863     auto value = prim->value_as_Splice();
1864     if (prim != nullptr && value != nullptr) {
1865       flatbuffers::FlatBufferBuilder fbb;
1866       auto ops_offset = schema::CreateSplice(fbb, fbb.CreateVector(context.data(), context.size()), fbb.CreateVector(value->forward_indexes()->data(), value->forward_indexes()->size()), value->output_dim());
1867       auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_SPLICE), ops_offset.o);
1868       fbb.Finish(prim_offset);
1869       auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
1870       auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
1871       free(*primitive);
1872       *primitive = ret_value;
1873     }
1874   }
1875 }
1876 
MindIR_Splice_GetForwardIndexes(ConstPrimitivePtr primitive)1877 std::vector<int64_t> MindIR_Splice_GetForwardIndexes(ConstPrimitivePtr primitive) {
1878   if (primitive != nullptr) {
1879     auto prim = static_cast<const schema::Primitive *>(primitive);
1880     auto value = prim->value_as_Splice();
1881     if (prim != nullptr && value != nullptr) {
1882       std::vector<int64_t> result;
1883       auto src = value->forward_indexes();
1884       if (src == nullptr) {
1885         return {};
1886       }
1887       result.resize(src->size());
1888       std::transform(src->begin(), src->end(), result.begin(), [](int64_t item) { return item; });
1889       return result;
1890     } else {
1891       return {};
1892     }
1893   } else {
1894     return {};
1895   }
1896 }
1897 
MindIR_Splice_SetForwardIndexes(PrimitivePtr * primitive,const std::vector<int64_t> & forward_indexes)1898 void MindIR_Splice_SetForwardIndexes(PrimitivePtr *primitive, const std::vector<int64_t> &forward_indexes) {
1899   if (primitive != nullptr && *primitive != nullptr) {
1900     auto prim = static_cast<schema::Primitive *>(*primitive);
1901     auto value = prim->value_as_Splice();
1902     if (prim != nullptr && value != nullptr) {
1903       flatbuffers::FlatBufferBuilder fbb;
1904       auto ops_offset = schema::CreateSplice(fbb, fbb.CreateVector(value->context()->data(), value->context()->size()), fbb.CreateVector(forward_indexes.data(), forward_indexes.size()), value->output_dim());
1905       auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_SPLICE), ops_offset.o);
1906       fbb.Finish(prim_offset);
1907       auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
1908       auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
1909       free(*primitive);
1910       *primitive = ret_value;
1911     }
1912   }
1913 }
1914 
MindIR_Splice_GetOutputDim(ConstPrimitivePtr primitive)1915 int64_t MindIR_Splice_GetOutputDim(ConstPrimitivePtr primitive) {
1916   if (primitive != nullptr) {
1917     auto prim = static_cast<const schema::Primitive *>(primitive);
1918     auto value = prim->value_as_Splice();
1919     if (prim != nullptr && value != nullptr) {
1920       return value->output_dim();
1921     } else {
1922       return 0;
1923     }
1924   } else {
1925     return 0;
1926   }
1927 }
1928 
MindIR_Splice_SetOutputDim(PrimitivePtr * primitive,int64_t output_dim)1929 void MindIR_Splice_SetOutputDim(PrimitivePtr *primitive, int64_t output_dim) {
1930   if (primitive != nullptr && *primitive != nullptr) {
1931     auto prim = static_cast<schema::Primitive *>(*primitive);
1932     auto value = prim->value_as_Splice();
1933     if (prim != nullptr && value != nullptr) {
1934       flatbuffers::FlatBufferBuilder fbb;
1935       auto ops_offset = schema::CreateSplice(fbb, fbb.CreateVector(value->context()->data(), value->context()->size()), fbb.CreateVector(value->forward_indexes()->data(), value->forward_indexes()->size()), output_dim);
1936       auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_SPLICE), ops_offset.o);
1937       fbb.Finish(prim_offset);
1938       auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
1939       auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
1940       free(*primitive);
1941       *primitive = ret_value;
1942     }
1943   }
1944 }
1945 
1946 // ********** Call **********
MindIR_Call_CreatePrimitive(bool is_tail_call)1947 PrimitivePtr MindIR_Call_CreatePrimitive(bool is_tail_call) {
1948   flatbuffers::FlatBufferBuilder fbb;
1949   auto ops_offset = schema::CreateCall(fbb, is_tail_call);
1950   auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_CALL), ops_offset.o);
1951   fbb.Finish(prim_offset);
1952   auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
1953   auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
1954   return ret_value;
1955 }
1956 
MindIR_Call_GetIsTailCall(ConstPrimitivePtr primitive)1957 bool MindIR_Call_GetIsTailCall(ConstPrimitivePtr primitive) {
1958   if (primitive != nullptr) {
1959     auto prim = static_cast<const schema::Primitive *>(primitive);
1960     auto value = prim->value_as_Call();
1961     if (prim != nullptr && value != nullptr) {
1962       return value->is_tail_call();
1963     } else {
1964       return false;
1965     }
1966   } else {
1967     return false;
1968   }
1969 }
1970 
MindIR_Call_SetIsTailCall(PrimitivePtr * primitive,bool is_tail_call)1971 void MindIR_Call_SetIsTailCall(PrimitivePtr *primitive, bool is_tail_call) {
1972   if (primitive != nullptr && *primitive != nullptr) {
1973     auto prim = static_cast<schema::Primitive *>(*primitive);
1974     auto value = prim->value_as_Call();
1975     if (prim != nullptr && value != nullptr) {
1976       flatbuffers::FlatBufferBuilder fbb;
1977       auto ops_offset = schema::CreateCall(fbb, is_tail_call);
1978       auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_CALL), ops_offset.o);
1979       fbb.Finish(prim_offset);
1980       auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
1981       auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
1982       free(*primitive);
1983       *primitive = ret_value;
1984     }
1985   }
1986 }
1987 
1988 // ********** CumSum **********
MindIR_CumSum_CreatePrimitive(bool exclusive,bool reverse)1989 PrimitivePtr MindIR_CumSum_CreatePrimitive(bool exclusive, bool reverse) {
1990   flatbuffers::FlatBufferBuilder fbb;
1991   auto ops_offset = schema::CreateCumSum(fbb, exclusive, reverse);
1992   auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_CUM_SUM), ops_offset.o);
1993   fbb.Finish(prim_offset);
1994   auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
1995   auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
1996   return ret_value;
1997 }
1998 
MindIR_CumSum_GetExclusive(ConstPrimitivePtr primitive)1999 bool MindIR_CumSum_GetExclusive(ConstPrimitivePtr primitive) {
2000   if (primitive != nullptr) {
2001     auto prim = static_cast<const schema::Primitive *>(primitive);
2002     auto value = prim->value_as_CumSum();
2003     if (prim != nullptr && value != nullptr) {
2004       return value->exclusive();
2005     } else {
2006       return false;
2007     }
2008   } else {
2009     return false;
2010   }
2011 }
2012 
MindIR_CumSum_SetExclusive(PrimitivePtr * primitive,bool exclusive)2013 void MindIR_CumSum_SetExclusive(PrimitivePtr *primitive, bool exclusive) {
2014   if (primitive != nullptr && *primitive != nullptr) {
2015     auto prim = static_cast<schema::Primitive *>(*primitive);
2016     auto value = prim->value_as_CumSum();
2017     if (prim != nullptr && value != nullptr) {
2018       flatbuffers::FlatBufferBuilder fbb;
2019       auto ops_offset = schema::CreateCumSum(fbb, exclusive, value->reverse());
2020       auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_CUM_SUM), ops_offset.o);
2021       fbb.Finish(prim_offset);
2022       auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
2023       auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
2024       free(*primitive);
2025       *primitive = ret_value;
2026     }
2027   }
2028 }
2029 
MindIR_CumSum_GetReverse(ConstPrimitivePtr primitive)2030 bool MindIR_CumSum_GetReverse(ConstPrimitivePtr primitive) {
2031   if (primitive != nullptr) {
2032     auto prim = static_cast<const schema::Primitive *>(primitive);
2033     auto value = prim->value_as_CumSum();
2034     if (prim != nullptr && value != nullptr) {
2035       return value->reverse();
2036     } else {
2037       return false;
2038     }
2039   } else {
2040     return false;
2041   }
2042 }
2043 
MindIR_CumSum_SetReverse(PrimitivePtr * primitive,bool reverse)2044 void MindIR_CumSum_SetReverse(PrimitivePtr *primitive, bool reverse) {
2045   if (primitive != nullptr && *primitive != nullptr) {
2046     auto prim = static_cast<schema::Primitive *>(*primitive);
2047     auto value = prim->value_as_CumSum();
2048     if (prim != nullptr && value != nullptr) {
2049       flatbuffers::FlatBufferBuilder fbb;
2050       auto ops_offset = schema::CreateCumSum(fbb, value->exclusive(), reverse);
2051       auto prim_offset = schema::CreatePrimitive(fbb, static_cast<schema::PrimitiveType>(NODE_TYPE_CUM_SUM), ops_offset.o);
2052       fbb.Finish(prim_offset);
2053       auto new_addr = MindIRMemoryManager::GetInstance()->CreatePrimitiveFromBuilder(fbb, nullptr);
2054       auto ret_value = flatbuffers::GetMutableRoot<schema::Primitive>(new_addr);
2055       free(*primitive);
2056       *primitive = ret_value;
2057     }
2058   }
2059 }
2060 }  // namespace lite
2061 }  // namespace mindspore
2062