1 // automatically generated by the FlatBuffers compiler, do not modify
2 
3 
4 #ifndef FLATBUFFERS_GENERATED_CAFFEOP_MNN_H_
5 #define FLATBUFFERS_GENERATED_CAFFEOP_MNN_H_
6 
7 
8 #include "Tensor_generated.h"
9 #include "Type_generated.h"
10 
11 namespace MNN {
12 
13 struct Convolution2DCommon;
14 struct Convolution2DCommonT;
15 
16 struct Convolution3DCommon;
17 struct Convolution3DCommonT;
18 
19 struct SparseCommon;
20 struct SparseCommonT;
21 
22 struct IDSTQuan;
23 struct IDSTQuanT;
24 
25 struct QuantizedFloatParam;
26 struct QuantizedFloatParamT;
27 
28 struct Convolution2D;
29 struct Convolution2DT;
30 
31 struct Convolution3D;
32 struct Convolution3DT;
33 
34 struct InnerProduct;
35 struct InnerProductT;
36 
37 struct Pool;
38 struct PoolT;
39 
40 struct Pool3D;
41 struct Pool3DT;
42 
43 struct Relu;
44 struct ReluT;
45 
46 struct Relu6;
47 struct Relu6T;
48 
49 struct PRelu;
50 struct PReluT;
51 
52 struct ELU;
53 struct ELUT;
54 
55 struct LRN;
56 struct LRNT;
57 
58 struct ArgMax;
59 struct ArgMaxT;
60 
61 struct Axis;
62 struct AxisT;
63 
64 struct Input;
65 struct InputT;
66 
67 struct LSTM;
68 struct LSTMT;
69 
70 struct Slice;
71 struct SliceT;
72 
73 struct BatchNorm;
74 struct BatchNormT;
75 
76 struct Scale;
77 struct ScaleT;
78 
79 struct Eltwise;
80 struct EltwiseT;
81 
82 struct Flatten;
83 struct FlattenT;
84 
85 struct Permute;
86 struct PermuteT;
87 
88 struct Reshape;
89 struct ReshapeT;
90 
91 struct DetectionOutput;
92 struct DetectionOutputT;
93 
94 struct RoiPooling;
95 struct RoiPoolingT;
96 
97 struct Proposal;
98 struct ProposalT;
99 
100 struct Interp;
101 struct InterpT;
102 
103 struct Resize;
104 struct ResizeT;
105 
106 struct PriorBox;
107 struct PriorBoxT;
108 
109 struct Normalize;
110 struct NormalizeT;
111 
112 struct EltwiseInt8;
113 struct EltwiseInt8T;
114 
115 inline const flatbuffers::TypeTable *Convolution2DCommonTypeTable();
116 
117 inline const flatbuffers::TypeTable *Convolution3DCommonTypeTable();
118 
119 inline const flatbuffers::TypeTable *SparseCommonTypeTable();
120 
121 inline const flatbuffers::TypeTable *IDSTQuanTypeTable();
122 
123 inline const flatbuffers::TypeTable *QuantizedFloatParamTypeTable();
124 
125 inline const flatbuffers::TypeTable *Convolution2DTypeTable();
126 
127 inline const flatbuffers::TypeTable *Convolution3DTypeTable();
128 
129 inline const flatbuffers::TypeTable *InnerProductTypeTable();
130 
131 inline const flatbuffers::TypeTable *PoolTypeTable();
132 
133 inline const flatbuffers::TypeTable *Pool3DTypeTable();
134 
135 inline const flatbuffers::TypeTable *ReluTypeTable();
136 
137 inline const flatbuffers::TypeTable *Relu6TypeTable();
138 
139 inline const flatbuffers::TypeTable *PReluTypeTable();
140 
141 inline const flatbuffers::TypeTable *ELUTypeTable();
142 
143 inline const flatbuffers::TypeTable *LRNTypeTable();
144 
145 inline const flatbuffers::TypeTable *ArgMaxTypeTable();
146 
147 inline const flatbuffers::TypeTable *AxisTypeTable();
148 
149 inline const flatbuffers::TypeTable *InputTypeTable();
150 
151 inline const flatbuffers::TypeTable *LSTMTypeTable();
152 
153 inline const flatbuffers::TypeTable *SliceTypeTable();
154 
155 inline const flatbuffers::TypeTable *BatchNormTypeTable();
156 
157 inline const flatbuffers::TypeTable *ScaleTypeTable();
158 
159 inline const flatbuffers::TypeTable *EltwiseTypeTable();
160 
161 inline const flatbuffers::TypeTable *FlattenTypeTable();
162 
163 inline const flatbuffers::TypeTable *PermuteTypeTable();
164 
165 inline const flatbuffers::TypeTable *ReshapeTypeTable();
166 
167 inline const flatbuffers::TypeTable *DetectionOutputTypeTable();
168 
169 inline const flatbuffers::TypeTable *RoiPoolingTypeTable();
170 
171 inline const flatbuffers::TypeTable *ProposalTypeTable();
172 
173 inline const flatbuffers::TypeTable *InterpTypeTable();
174 
175 inline const flatbuffers::TypeTable *ResizeTypeTable();
176 
177 inline const flatbuffers::TypeTable *PriorBoxTypeTable();
178 
179 inline const flatbuffers::TypeTable *NormalizeTypeTable();
180 
181 inline const flatbuffers::TypeTable *EltwiseInt8TypeTable();
182 
183 enum PadMode {
184   PadMode_CAFFE = 0,
185   PadMode_VALID = 1,
186   PadMode_SAME = 2,
187   PadMode_MIN = PadMode_CAFFE,
188   PadMode_MAX = PadMode_SAME
189 };
190 
EnumValuesPadMode()191 inline const PadMode (&EnumValuesPadMode())[3] {
192   static const PadMode values[] = {
193     PadMode_CAFFE,
194     PadMode_VALID,
195     PadMode_SAME
196   };
197   return values;
198 }
199 
EnumNamesPadMode()200 inline const char * const *EnumNamesPadMode() {
201   static const char * const names[] = {
202     "CAFFE",
203     "VALID",
204     "SAME",
205     nullptr
206   };
207   return names;
208 }
209 
EnumNamePadMode(PadMode e)210 inline const char *EnumNamePadMode(PadMode e) {
211   if (e < PadMode_CAFFE || e > PadMode_SAME) return "";
212   const size_t index = static_cast<int>(e);
213   return EnumNamesPadMode()[index];
214 }
215 
216 enum SparseAlgo {
217   SparseAlgo_RANDOM = 0,
218   SparseAlgo_SIMD_OC = 1,
219   SparseAlgo_MIN = SparseAlgo_RANDOM,
220   SparseAlgo_MAX = SparseAlgo_SIMD_OC
221 };
222 
EnumValuesSparseAlgo()223 inline const SparseAlgo (&EnumValuesSparseAlgo())[2] {
224   static const SparseAlgo values[] = {
225     SparseAlgo_RANDOM,
226     SparseAlgo_SIMD_OC
227   };
228   return values;
229 }
230 
EnumNamesSparseAlgo()231 inline const char * const *EnumNamesSparseAlgo() {
232   static const char * const names[] = {
233     "RANDOM",
234     "SIMD_OC",
235     nullptr
236   };
237   return names;
238 }
239 
EnumNameSparseAlgo(SparseAlgo e)240 inline const char *EnumNameSparseAlgo(SparseAlgo e) {
241   if (e < SparseAlgo_RANDOM || e > SparseAlgo_SIMD_OC) return "";
242   const size_t index = static_cast<int>(e);
243   return EnumNamesSparseAlgo()[index];
244 }
245 
246 enum QuantizeAlgo {
247   QuantizeAlgo_DEFAULT = 0,
248   QuantizeAlgo_OVERFLOW_AWARE = 1,
249   QuantizeAlgo_WINOGRAD_AWARE = 2,
250   QuantizeAlgo_MIN = QuantizeAlgo_DEFAULT,
251   QuantizeAlgo_MAX = QuantizeAlgo_WINOGRAD_AWARE
252 };
253 
EnumValuesQuantizeAlgo()254 inline const QuantizeAlgo (&EnumValuesQuantizeAlgo())[3] {
255   static const QuantizeAlgo values[] = {
256     QuantizeAlgo_DEFAULT,
257     QuantizeAlgo_OVERFLOW_AWARE,
258     QuantizeAlgo_WINOGRAD_AWARE
259   };
260   return values;
261 }
262 
EnumNamesQuantizeAlgo()263 inline const char * const *EnumNamesQuantizeAlgo() {
264   static const char * const names[] = {
265     "DEFAULT",
266     "OVERFLOW_AWARE",
267     "WINOGRAD_AWARE",
268     nullptr
269   };
270   return names;
271 }
272 
EnumNameQuantizeAlgo(QuantizeAlgo e)273 inline const char *EnumNameQuantizeAlgo(QuantizeAlgo e) {
274   if (e < QuantizeAlgo_DEFAULT || e > QuantizeAlgo_WINOGRAD_AWARE) return "";
275   const size_t index = static_cast<int>(e);
276   return EnumNamesQuantizeAlgo()[index];
277 }
278 
279 enum PoolType {
280   PoolType_MAXPOOL = 0,
281   PoolType_AVEPOOL = 1,
282   PoolType_MIN = PoolType_MAXPOOL,
283   PoolType_MAX = PoolType_AVEPOOL
284 };
285 
EnumValuesPoolType()286 inline const PoolType (&EnumValuesPoolType())[2] {
287   static const PoolType values[] = {
288     PoolType_MAXPOOL,
289     PoolType_AVEPOOL
290   };
291   return values;
292 }
293 
EnumNamesPoolType()294 inline const char * const *EnumNamesPoolType() {
295   static const char * const names[] = {
296     "MAXPOOL",
297     "AVEPOOL",
298     nullptr
299   };
300   return names;
301 }
302 
EnumNamePoolType(PoolType e)303 inline const char *EnumNamePoolType(PoolType e) {
304   if (e < PoolType_MAXPOOL || e > PoolType_AVEPOOL) return "";
305   const size_t index = static_cast<int>(e);
306   return EnumNamesPoolType()[index];
307 }
308 
309 enum PoolPadType {
310   PoolPadType_CAFFE = 0,
311   PoolPadType_VALID = 1,
312   PoolPadType_SAME = 2,
313   PoolPadType_MIN = PoolPadType_CAFFE,
314   PoolPadType_MAX = PoolPadType_SAME
315 };
316 
EnumValuesPoolPadType()317 inline const PoolPadType (&EnumValuesPoolPadType())[3] {
318   static const PoolPadType values[] = {
319     PoolPadType_CAFFE,
320     PoolPadType_VALID,
321     PoolPadType_SAME
322   };
323   return values;
324 }
325 
EnumNamesPoolPadType()326 inline const char * const *EnumNamesPoolPadType() {
327   static const char * const names[] = {
328     "CAFFE",
329     "VALID",
330     "SAME",
331     nullptr
332   };
333   return names;
334 }
335 
EnumNamePoolPadType(PoolPadType e)336 inline const char *EnumNamePoolPadType(PoolPadType e) {
337   if (e < PoolPadType_CAFFE || e > PoolPadType_SAME) return "";
338   const size_t index = static_cast<int>(e);
339   return EnumNamesPoolPadType()[index];
340 }
341 
342 enum AvgPoolCountType {
343   AvgPoolCountType_DEFAULT = 0,
344   AvgPoolCountType_INCLUDE_PADDING = 1,
345   AvgPoolCountType_EXCLUDE_PADDING = 2,
346   AvgPoolCountType_MIN = AvgPoolCountType_DEFAULT,
347   AvgPoolCountType_MAX = AvgPoolCountType_EXCLUDE_PADDING
348 };
349 
EnumValuesAvgPoolCountType()350 inline const AvgPoolCountType (&EnumValuesAvgPoolCountType())[3] {
351   static const AvgPoolCountType values[] = {
352     AvgPoolCountType_DEFAULT,
353     AvgPoolCountType_INCLUDE_PADDING,
354     AvgPoolCountType_EXCLUDE_PADDING
355   };
356   return values;
357 }
358 
EnumNamesAvgPoolCountType()359 inline const char * const *EnumNamesAvgPoolCountType() {
360   static const char * const names[] = {
361     "DEFAULT",
362     "INCLUDE_PADDING",
363     "EXCLUDE_PADDING",
364     nullptr
365   };
366   return names;
367 }
368 
EnumNameAvgPoolCountType(AvgPoolCountType e)369 inline const char *EnumNameAvgPoolCountType(AvgPoolCountType e) {
370   if (e < AvgPoolCountType_DEFAULT || e > AvgPoolCountType_EXCLUDE_PADDING) return "";
371   const size_t index = static_cast<int>(e);
372   return EnumNamesAvgPoolCountType()[index];
373 }
374 
375 enum EltwiseType {
376   EltwiseType_PROD = 0,
377   EltwiseType_SUM = 1,
378   EltwiseType_MAXIMUM = 2,
379   EltwiseType_SUB = 3,
380   EltwiseType_MIN = EltwiseType_PROD,
381   EltwiseType_MAX = EltwiseType_SUB
382 };
383 
EnumValuesEltwiseType()384 inline const EltwiseType (&EnumValuesEltwiseType())[4] {
385   static const EltwiseType values[] = {
386     EltwiseType_PROD,
387     EltwiseType_SUM,
388     EltwiseType_MAXIMUM,
389     EltwiseType_SUB
390   };
391   return values;
392 }
393 
EnumNamesEltwiseType()394 inline const char * const *EnumNamesEltwiseType() {
395   static const char * const names[] = {
396     "PROD",
397     "SUM",
398     "MAXIMUM",
399     "SUB",
400     nullptr
401   };
402   return names;
403 }
404 
EnumNameEltwiseType(EltwiseType e)405 inline const char *EnumNameEltwiseType(EltwiseType e) {
406   if (e < EltwiseType_PROD || e > EltwiseType_SUB) return "";
407   const size_t index = static_cast<int>(e);
408   return EnumNamesEltwiseType()[index];
409 }
410 
411 enum CoordinateTransformationMode {
412   CoordinateTransformationMode_NotSet = 0,
413   CoordinateTransformationMode_AlignCorners = 1,
414   CoordinateTransformationMode_HalfPixels = 2,
415   CoordinateTransformationMode_PytorchHalfPixels = 3,
416   CoordinateTransformationMode_Asymmetric = 4,
417   CoordinateTransformationMode_TensorflowHalfPixels = 5,
418   CoordinateTransformationMode_TensorflowCropAndResize = 6,
419   CoordinateTransformationMode_MIN = CoordinateTransformationMode_NotSet,
420   CoordinateTransformationMode_MAX = CoordinateTransformationMode_TensorflowCropAndResize
421 };
422 
EnumValuesCoordinateTransformationMode()423 inline const CoordinateTransformationMode (&EnumValuesCoordinateTransformationMode())[7] {
424   static const CoordinateTransformationMode values[] = {
425     CoordinateTransformationMode_NotSet,
426     CoordinateTransformationMode_AlignCorners,
427     CoordinateTransformationMode_HalfPixels,
428     CoordinateTransformationMode_PytorchHalfPixels,
429     CoordinateTransformationMode_Asymmetric,
430     CoordinateTransformationMode_TensorflowHalfPixels,
431     CoordinateTransformationMode_TensorflowCropAndResize
432   };
433   return values;
434 }
435 
EnumNamesCoordinateTransformationMode()436 inline const char * const *EnumNamesCoordinateTransformationMode() {
437   static const char * const names[] = {
438     "NotSet",
439     "AlignCorners",
440     "HalfPixels",
441     "PytorchHalfPixels",
442     "Asymmetric",
443     "TensorflowHalfPixels",
444     "TensorflowCropAndResize",
445     nullptr
446   };
447   return names;
448 }
449 
EnumNameCoordinateTransformationMode(CoordinateTransformationMode e)450 inline const char *EnumNameCoordinateTransformationMode(CoordinateTransformationMode e) {
451   if (e < CoordinateTransformationMode_NotSet || e > CoordinateTransformationMode_TensorflowCropAndResize) return "";
452   const size_t index = static_cast<int>(e);
453   return EnumNamesCoordinateTransformationMode()[index];
454 }
455 
456 struct Convolution2DCommonT : public flatbuffers::NativeTable {
457   typedef Convolution2DCommon TableType;
458   int32_t padX;
459   int32_t padY;
460   int32_t kernelX;
461   int32_t kernelY;
462   int32_t strideX;
463   int32_t strideY;
464   int32_t dilateX;
465   int32_t dilateY;
466   PadMode padMode;
467   int32_t group;
468   int32_t outputCount;
469   int32_t inputCount;
470   bool relu;
471   bool relu6;
472   std::vector<int32_t> pads;
473   std::vector<int32_t> outPads;
474   bool hasOutputShape;
Convolution2DCommonTConvolution2DCommonT475   Convolution2DCommonT()
476       : padX(0),
477         padY(0),
478         kernelX(1),
479         kernelY(1),
480         strideX(1),
481         strideY(1),
482         dilateX(1),
483         dilateY(1),
484         padMode(PadMode_CAFFE),
485         group(1),
486         outputCount(0),
487         inputCount(0),
488         relu(false),
489         relu6(false),
490         hasOutputShape(false) {
491   }
492 };
493 
494 struct Convolution2DCommon FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
495   typedef Convolution2DCommonT NativeTableType;
MiniReflectTypeTableFLATBUFFERS_FINAL_CLASS496   static const flatbuffers::TypeTable *MiniReflectTypeTable() {
497     return Convolution2DCommonTypeTable();
498   }
padXFLATBUFFERS_FINAL_CLASS499   int32_t padX() const {
500     return GetField<int32_t>(4, 0);
501   }
padYFLATBUFFERS_FINAL_CLASS502   int32_t padY() const {
503     return GetField<int32_t>(6, 0);
504   }
kernelXFLATBUFFERS_FINAL_CLASS505   int32_t kernelX() const {
506     return GetField<int32_t>(8, 1);
507   }
kernelYFLATBUFFERS_FINAL_CLASS508   int32_t kernelY() const {
509     return GetField<int32_t>(10, 1);
510   }
strideXFLATBUFFERS_FINAL_CLASS511   int32_t strideX() const {
512     return GetField<int32_t>(12, 1);
513   }
strideYFLATBUFFERS_FINAL_CLASS514   int32_t strideY() const {
515     return GetField<int32_t>(14, 1);
516   }
dilateXFLATBUFFERS_FINAL_CLASS517   int32_t dilateX() const {
518     return GetField<int32_t>(16, 1);
519   }
dilateYFLATBUFFERS_FINAL_CLASS520   int32_t dilateY() const {
521     return GetField<int32_t>(18, 1);
522   }
padModeFLATBUFFERS_FINAL_CLASS523   PadMode padMode() const {
524     return static_cast<PadMode>(GetField<int8_t>(20, 0));
525   }
groupFLATBUFFERS_FINAL_CLASS526   int32_t group() const {
527     return GetField<int32_t>(22, 1);
528   }
outputCountFLATBUFFERS_FINAL_CLASS529   int32_t outputCount() const {
530     return GetField<int32_t>(24, 0);
531   }
inputCountFLATBUFFERS_FINAL_CLASS532   int32_t inputCount() const {
533     return GetField<int32_t>(26, 0);
534   }
reluFLATBUFFERS_FINAL_CLASS535   bool relu() const {
536     return GetField<uint8_t>(28, 0) != 0;
537   }
relu6FLATBUFFERS_FINAL_CLASS538   bool relu6() const {
539     return GetField<uint8_t>(30, 0) != 0;
540   }
padsFLATBUFFERS_FINAL_CLASS541   const flatbuffers::Vector<int32_t> *pads() const {
542     return GetPointer<const flatbuffers::Vector<int32_t> *>(32);
543   }
outPadsFLATBUFFERS_FINAL_CLASS544   const flatbuffers::Vector<int32_t> *outPads() const {
545     return GetPointer<const flatbuffers::Vector<int32_t> *>(34);
546   }
hasOutputShapeFLATBUFFERS_FINAL_CLASS547   bool hasOutputShape() const {
548     return GetField<uint8_t>(36, 0) != 0;
549   }
VerifyFLATBUFFERS_FINAL_CLASS550   bool Verify(flatbuffers::Verifier &verifier) const {
551     return VerifyTableStart(verifier) &&
552            VerifyField<int32_t>(verifier, 4) &&
553            VerifyField<int32_t>(verifier, 6) &&
554            VerifyField<int32_t>(verifier, 8) &&
555            VerifyField<int32_t>(verifier, 10) &&
556            VerifyField<int32_t>(verifier, 12) &&
557            VerifyField<int32_t>(verifier, 14) &&
558            VerifyField<int32_t>(verifier, 16) &&
559            VerifyField<int32_t>(verifier, 18) &&
560            VerifyField<int8_t>(verifier, 20) &&
561            VerifyField<int32_t>(verifier, 22) &&
562            VerifyField<int32_t>(verifier, 24) &&
563            VerifyField<int32_t>(verifier, 26) &&
564            VerifyField<uint8_t>(verifier, 28) &&
565            VerifyField<uint8_t>(verifier, 30) &&
566            VerifyOffset(verifier, 32) &&
567            verifier.VerifyVector(pads()) &&
568            VerifyOffset(verifier, 34) &&
569            verifier.VerifyVector(outPads()) &&
570            VerifyField<uint8_t>(verifier, 36) &&
571            verifier.EndTable();
572   }
573   Convolution2DCommonT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
574   void UnPackTo(Convolution2DCommonT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
575   static flatbuffers::Offset<Convolution2DCommon> Pack(flatbuffers::FlatBufferBuilder &_fbb, const Convolution2DCommonT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
576 };
577 
578 struct Convolution2DCommonBuilder {
579   flatbuffers::FlatBufferBuilder &fbb_;
580   flatbuffers::uoffset_t start_;
add_padXConvolution2DCommonBuilder581   void add_padX(int32_t padX) {
582     fbb_.AddElement<int32_t>(4, padX, 0);
583   }
add_padYConvolution2DCommonBuilder584   void add_padY(int32_t padY) {
585     fbb_.AddElement<int32_t>(6, padY, 0);
586   }
add_kernelXConvolution2DCommonBuilder587   void add_kernelX(int32_t kernelX) {
588     fbb_.AddElement<int32_t>(8, kernelX, 1);
589   }
add_kernelYConvolution2DCommonBuilder590   void add_kernelY(int32_t kernelY) {
591     fbb_.AddElement<int32_t>(10, kernelY, 1);
592   }
add_strideXConvolution2DCommonBuilder593   void add_strideX(int32_t strideX) {
594     fbb_.AddElement<int32_t>(12, strideX, 1);
595   }
add_strideYConvolution2DCommonBuilder596   void add_strideY(int32_t strideY) {
597     fbb_.AddElement<int32_t>(14, strideY, 1);
598   }
add_dilateXConvolution2DCommonBuilder599   void add_dilateX(int32_t dilateX) {
600     fbb_.AddElement<int32_t>(16, dilateX, 1);
601   }
add_dilateYConvolution2DCommonBuilder602   void add_dilateY(int32_t dilateY) {
603     fbb_.AddElement<int32_t>(18, dilateY, 1);
604   }
add_padModeConvolution2DCommonBuilder605   void add_padMode(PadMode padMode) {
606     fbb_.AddElement<int8_t>(20, static_cast<int8_t>(padMode), 0);
607   }
add_groupConvolution2DCommonBuilder608   void add_group(int32_t group) {
609     fbb_.AddElement<int32_t>(22, group, 1);
610   }
add_outputCountConvolution2DCommonBuilder611   void add_outputCount(int32_t outputCount) {
612     fbb_.AddElement<int32_t>(24, outputCount, 0);
613   }
add_inputCountConvolution2DCommonBuilder614   void add_inputCount(int32_t inputCount) {
615     fbb_.AddElement<int32_t>(26, inputCount, 0);
616   }
add_reluConvolution2DCommonBuilder617   void add_relu(bool relu) {
618     fbb_.AddElement<uint8_t>(28, static_cast<uint8_t>(relu), 0);
619   }
add_relu6Convolution2DCommonBuilder620   void add_relu6(bool relu6) {
621     fbb_.AddElement<uint8_t>(30, static_cast<uint8_t>(relu6), 0);
622   }
add_padsConvolution2DCommonBuilder623   void add_pads(flatbuffers::Offset<flatbuffers::Vector<int32_t>> pads) {
624     fbb_.AddOffset(32, pads);
625   }
add_outPadsConvolution2DCommonBuilder626   void add_outPads(flatbuffers::Offset<flatbuffers::Vector<int32_t>> outPads) {
627     fbb_.AddOffset(34, outPads);
628   }
add_hasOutputShapeConvolution2DCommonBuilder629   void add_hasOutputShape(bool hasOutputShape) {
630     fbb_.AddElement<uint8_t>(36, static_cast<uint8_t>(hasOutputShape), 0);
631   }
Convolution2DCommonBuilderConvolution2DCommonBuilder632   explicit Convolution2DCommonBuilder(flatbuffers::FlatBufferBuilder &_fbb)
633         : fbb_(_fbb) {
634     start_ = fbb_.StartTable();
635   }
636   Convolution2DCommonBuilder &operator=(const Convolution2DCommonBuilder &);
FinishConvolution2DCommonBuilder637   flatbuffers::Offset<Convolution2DCommon> Finish() {
638     const auto end = fbb_.EndTable(start_);
639     auto o = flatbuffers::Offset<Convolution2DCommon>(end);
640     return o;
641   }
642 };
643 
644 inline flatbuffers::Offset<Convolution2DCommon> CreateConvolution2DCommon(
645     flatbuffers::FlatBufferBuilder &_fbb,
646     int32_t padX = 0,
647     int32_t padY = 0,
648     int32_t kernelX = 1,
649     int32_t kernelY = 1,
650     int32_t strideX = 1,
651     int32_t strideY = 1,
652     int32_t dilateX = 1,
653     int32_t dilateY = 1,
654     PadMode padMode = PadMode_CAFFE,
655     int32_t group = 1,
656     int32_t outputCount = 0,
657     int32_t inputCount = 0,
658     bool relu = false,
659     bool relu6 = false,
660     flatbuffers::Offset<flatbuffers::Vector<int32_t>> pads = 0,
661     flatbuffers::Offset<flatbuffers::Vector<int32_t>> outPads = 0,
662     bool hasOutputShape = false) {
663   Convolution2DCommonBuilder builder_(_fbb);
664   builder_.add_outPads(outPads);
665   builder_.add_pads(pads);
666   builder_.add_inputCount(inputCount);
667   builder_.add_outputCount(outputCount);
668   builder_.add_group(group);
669   builder_.add_dilateY(dilateY);
670   builder_.add_dilateX(dilateX);
671   builder_.add_strideY(strideY);
672   builder_.add_strideX(strideX);
673   builder_.add_kernelY(kernelY);
674   builder_.add_kernelX(kernelX);
675   builder_.add_padY(padY);
676   builder_.add_padX(padX);
677   builder_.add_hasOutputShape(hasOutputShape);
678   builder_.add_relu6(relu6);
679   builder_.add_relu(relu);
680   builder_.add_padMode(padMode);
681   return builder_.Finish();
682 }
683 
684 flatbuffers::Offset<Convolution2DCommon> CreateConvolution2DCommon(flatbuffers::FlatBufferBuilder &_fbb, const Convolution2DCommonT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
685 
686 struct Convolution3DCommonT : public flatbuffers::NativeTable {
687   typedef Convolution3DCommon TableType;
688   std::vector<int32_t> dilates;
689   std::vector<int32_t> strides;
690   std::vector<int32_t> kernels;
691   std::vector<int32_t> pads;
692   PadMode padMode;
693   int32_t inputCount;
694   int32_t outputCount;
695   bool relu;
696   bool relu6;
Convolution3DCommonTConvolution3DCommonT697   Convolution3DCommonT()
698       : padMode(PadMode_CAFFE),
699         inputCount(0),
700         outputCount(0),
701         relu(false),
702         relu6(false) {
703   }
704 };
705 
706 struct Convolution3DCommon FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
707   typedef Convolution3DCommonT NativeTableType;
MiniReflectTypeTableFLATBUFFERS_FINAL_CLASS708   static const flatbuffers::TypeTable *MiniReflectTypeTable() {
709     return Convolution3DCommonTypeTable();
710   }
dilatesFLATBUFFERS_FINAL_CLASS711   const flatbuffers::Vector<int32_t> *dilates() const {
712     return GetPointer<const flatbuffers::Vector<int32_t> *>(4);
713   }
stridesFLATBUFFERS_FINAL_CLASS714   const flatbuffers::Vector<int32_t> *strides() const {
715     return GetPointer<const flatbuffers::Vector<int32_t> *>(6);
716   }
kernelsFLATBUFFERS_FINAL_CLASS717   const flatbuffers::Vector<int32_t> *kernels() const {
718     return GetPointer<const flatbuffers::Vector<int32_t> *>(8);
719   }
padsFLATBUFFERS_FINAL_CLASS720   const flatbuffers::Vector<int32_t> *pads() const {
721     return GetPointer<const flatbuffers::Vector<int32_t> *>(10);
722   }
padModeFLATBUFFERS_FINAL_CLASS723   PadMode padMode() const {
724     return static_cast<PadMode>(GetField<int8_t>(12, 0));
725   }
inputCountFLATBUFFERS_FINAL_CLASS726   int32_t inputCount() const {
727     return GetField<int32_t>(14, 0);
728   }
outputCountFLATBUFFERS_FINAL_CLASS729   int32_t outputCount() const {
730     return GetField<int32_t>(16, 0);
731   }
reluFLATBUFFERS_FINAL_CLASS732   bool relu() const {
733     return GetField<uint8_t>(18, 0) != 0;
734   }
relu6FLATBUFFERS_FINAL_CLASS735   bool relu6() const {
736     return GetField<uint8_t>(20, 0) != 0;
737   }
VerifyFLATBUFFERS_FINAL_CLASS738   bool Verify(flatbuffers::Verifier &verifier) const {
739     return VerifyTableStart(verifier) &&
740            VerifyOffset(verifier, 4) &&
741            verifier.VerifyVector(dilates()) &&
742            VerifyOffset(verifier, 6) &&
743            verifier.VerifyVector(strides()) &&
744            VerifyOffset(verifier, 8) &&
745            verifier.VerifyVector(kernels()) &&
746            VerifyOffset(verifier, 10) &&
747            verifier.VerifyVector(pads()) &&
748            VerifyField<int8_t>(verifier, 12) &&
749            VerifyField<int32_t>(verifier, 14) &&
750            VerifyField<int32_t>(verifier, 16) &&
751            VerifyField<uint8_t>(verifier, 18) &&
752            VerifyField<uint8_t>(verifier, 20) &&
753            verifier.EndTable();
754   }
755   Convolution3DCommonT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
756   void UnPackTo(Convolution3DCommonT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
757   static flatbuffers::Offset<Convolution3DCommon> Pack(flatbuffers::FlatBufferBuilder &_fbb, const Convolution3DCommonT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
758 };
759 
760 struct Convolution3DCommonBuilder {
761   flatbuffers::FlatBufferBuilder &fbb_;
762   flatbuffers::uoffset_t start_;
add_dilatesConvolution3DCommonBuilder763   void add_dilates(flatbuffers::Offset<flatbuffers::Vector<int32_t>> dilates) {
764     fbb_.AddOffset(4, dilates);
765   }
add_stridesConvolution3DCommonBuilder766   void add_strides(flatbuffers::Offset<flatbuffers::Vector<int32_t>> strides) {
767     fbb_.AddOffset(6, strides);
768   }
add_kernelsConvolution3DCommonBuilder769   void add_kernels(flatbuffers::Offset<flatbuffers::Vector<int32_t>> kernels) {
770     fbb_.AddOffset(8, kernels);
771   }
add_padsConvolution3DCommonBuilder772   void add_pads(flatbuffers::Offset<flatbuffers::Vector<int32_t>> pads) {
773     fbb_.AddOffset(10, pads);
774   }
add_padModeConvolution3DCommonBuilder775   void add_padMode(PadMode padMode) {
776     fbb_.AddElement<int8_t>(12, static_cast<int8_t>(padMode), 0);
777   }
add_inputCountConvolution3DCommonBuilder778   void add_inputCount(int32_t inputCount) {
779     fbb_.AddElement<int32_t>(14, inputCount, 0);
780   }
add_outputCountConvolution3DCommonBuilder781   void add_outputCount(int32_t outputCount) {
782     fbb_.AddElement<int32_t>(16, outputCount, 0);
783   }
add_reluConvolution3DCommonBuilder784   void add_relu(bool relu) {
785     fbb_.AddElement<uint8_t>(18, static_cast<uint8_t>(relu), 0);
786   }
add_relu6Convolution3DCommonBuilder787   void add_relu6(bool relu6) {
788     fbb_.AddElement<uint8_t>(20, static_cast<uint8_t>(relu6), 0);
789   }
Convolution3DCommonBuilderConvolution3DCommonBuilder790   explicit Convolution3DCommonBuilder(flatbuffers::FlatBufferBuilder &_fbb)
791         : fbb_(_fbb) {
792     start_ = fbb_.StartTable();
793   }
794   Convolution3DCommonBuilder &operator=(const Convolution3DCommonBuilder &);
FinishConvolution3DCommonBuilder795   flatbuffers::Offset<Convolution3DCommon> Finish() {
796     const auto end = fbb_.EndTable(start_);
797     auto o = flatbuffers::Offset<Convolution3DCommon>(end);
798     return o;
799   }
800 };
801 
802 inline flatbuffers::Offset<Convolution3DCommon> CreateConvolution3DCommon(
803     flatbuffers::FlatBufferBuilder &_fbb,
804     flatbuffers::Offset<flatbuffers::Vector<int32_t>> dilates = 0,
805     flatbuffers::Offset<flatbuffers::Vector<int32_t>> strides = 0,
806     flatbuffers::Offset<flatbuffers::Vector<int32_t>> kernels = 0,
807     flatbuffers::Offset<flatbuffers::Vector<int32_t>> pads = 0,
808     PadMode padMode = PadMode_CAFFE,
809     int32_t inputCount = 0,
810     int32_t outputCount = 0,
811     bool relu = false,
812     bool relu6 = false) {
813   Convolution3DCommonBuilder builder_(_fbb);
814   builder_.add_outputCount(outputCount);
815   builder_.add_inputCount(inputCount);
816   builder_.add_pads(pads);
817   builder_.add_kernels(kernels);
818   builder_.add_strides(strides);
819   builder_.add_dilates(dilates);
820   builder_.add_relu6(relu6);
821   builder_.add_relu(relu);
822   builder_.add_padMode(padMode);
823   return builder_.Finish();
824 }
825 
826 flatbuffers::Offset<Convolution3DCommon> CreateConvolution3DCommon(flatbuffers::FlatBufferBuilder &_fbb, const Convolution3DCommonT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
827 
828 struct SparseCommonT : public flatbuffers::NativeTable {
829   typedef SparseCommon TableType;
830   SparseAlgo method;
831   std::vector<std::unique_ptr<AttributeT>> args;
SparseCommonTSparseCommonT832   SparseCommonT()
833       : method(SparseAlgo_RANDOM) {
834   }
835 };
836 
837 struct SparseCommon FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
838   typedef SparseCommonT NativeTableType;
MiniReflectTypeTableFLATBUFFERS_FINAL_CLASS839   static const flatbuffers::TypeTable *MiniReflectTypeTable() {
840     return SparseCommonTypeTable();
841   }
methodFLATBUFFERS_FINAL_CLASS842   SparseAlgo method() const {
843     return static_cast<SparseAlgo>(GetField<int8_t>(4, 0));
844   }
argsFLATBUFFERS_FINAL_CLASS845   const flatbuffers::Vector<flatbuffers::Offset<Attribute>> *args() const {
846     return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<Attribute>> *>(6);
847   }
VerifyFLATBUFFERS_FINAL_CLASS848   bool Verify(flatbuffers::Verifier &verifier) const {
849     return VerifyTableStart(verifier) &&
850            VerifyField<int8_t>(verifier, 4) &&
851            VerifyOffset(verifier, 6) &&
852            verifier.VerifyVector(args()) &&
853            verifier.VerifyVectorOfTables(args()) &&
854            verifier.EndTable();
855   }
856   SparseCommonT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
857   void UnPackTo(SparseCommonT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
858   static flatbuffers::Offset<SparseCommon> Pack(flatbuffers::FlatBufferBuilder &_fbb, const SparseCommonT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
859 };
860 
861 struct SparseCommonBuilder {
862   flatbuffers::FlatBufferBuilder &fbb_;
863   flatbuffers::uoffset_t start_;
add_methodSparseCommonBuilder864   void add_method(SparseAlgo method) {
865     fbb_.AddElement<int8_t>(4, static_cast<int8_t>(method), 0);
866   }
add_argsSparseCommonBuilder867   void add_args(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<Attribute>>> args) {
868     fbb_.AddOffset(6, args);
869   }
SparseCommonBuilderSparseCommonBuilder870   explicit SparseCommonBuilder(flatbuffers::FlatBufferBuilder &_fbb)
871         : fbb_(_fbb) {
872     start_ = fbb_.StartTable();
873   }
874   SparseCommonBuilder &operator=(const SparseCommonBuilder &);
FinishSparseCommonBuilder875   flatbuffers::Offset<SparseCommon> Finish() {
876     const auto end = fbb_.EndTable(start_);
877     auto o = flatbuffers::Offset<SparseCommon>(end);
878     return o;
879   }
880 };
881 
882 inline flatbuffers::Offset<SparseCommon> CreateSparseCommon(
883     flatbuffers::FlatBufferBuilder &_fbb,
884     SparseAlgo method = SparseAlgo_RANDOM,
885     flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<Attribute>>> args = 0) {
886   SparseCommonBuilder builder_(_fbb);
887   builder_.add_args(args);
888   builder_.add_method(method);
889   return builder_.Finish();
890 }
891 
892 flatbuffers::Offset<SparseCommon> CreateSparseCommon(flatbuffers::FlatBufferBuilder &_fbb, const SparseCommonT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
893 
894 struct IDSTQuanT : public flatbuffers::NativeTable {
895   typedef IDSTQuan TableType;
896   std::vector<int8_t> buffer;
897   std::vector<float> alpha;
898   int32_t type;
899   bool useInt32;
900   float quantScale;
901   float scaleIn;
902   float scaleOut;
903   int32_t aMax;
904   int32_t aMin;
905   int32_t readType;
906   bool has_scaleInt;
IDSTQuanTIDSTQuanT907   IDSTQuanT()
908       : type(0),
909         useInt32(false),
910         quantScale(0.0f),
911         scaleIn(0.0f),
912         scaleOut(0.0f),
913         aMax(0),
914         aMin(0),
915         readType(0),
916         has_scaleInt(false) {
917   }
918 };
919 
920 struct IDSTQuan FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
921   typedef IDSTQuanT NativeTableType;
MiniReflectTypeTableFLATBUFFERS_FINAL_CLASS922   static const flatbuffers::TypeTable *MiniReflectTypeTable() {
923     return IDSTQuanTypeTable();
924   }
bufferFLATBUFFERS_FINAL_CLASS925   const flatbuffers::Vector<int8_t> *buffer() const {
926     return GetPointer<const flatbuffers::Vector<int8_t> *>(4);
927   }
alphaFLATBUFFERS_FINAL_CLASS928   const flatbuffers::Vector<float> *alpha() const {
929     return GetPointer<const flatbuffers::Vector<float> *>(6);
930   }
typeFLATBUFFERS_FINAL_CLASS931   int32_t type() const {
932     return GetField<int32_t>(8, 0);
933   }
useInt32FLATBUFFERS_FINAL_CLASS934   bool useInt32() const {
935     return GetField<uint8_t>(10, 0) != 0;
936   }
quantScaleFLATBUFFERS_FINAL_CLASS937   float quantScale() const {
938     return GetField<float>(12, 0.0f);
939   }
scaleInFLATBUFFERS_FINAL_CLASS940   float scaleIn() const {
941     return GetField<float>(14, 0.0f);
942   }
scaleOutFLATBUFFERS_FINAL_CLASS943   float scaleOut() const {
944     return GetField<float>(16, 0.0f);
945   }
aMaxFLATBUFFERS_FINAL_CLASS946   int32_t aMax() const {
947     return GetField<int32_t>(18, 0);
948   }
aMinFLATBUFFERS_FINAL_CLASS949   int32_t aMin() const {
950     return GetField<int32_t>(20, 0);
951   }
readTypeFLATBUFFERS_FINAL_CLASS952   int32_t readType() const {
953     return GetField<int32_t>(22, 0);
954   }
has_scaleIntFLATBUFFERS_FINAL_CLASS955   bool has_scaleInt() const {
956     return GetField<uint8_t>(24, 0) != 0;
957   }
VerifyFLATBUFFERS_FINAL_CLASS958   bool Verify(flatbuffers::Verifier &verifier) const {
959     return VerifyTableStart(verifier) &&
960            VerifyOffset(verifier, 4) &&
961            verifier.VerifyVector(buffer()) &&
962            VerifyOffset(verifier, 6) &&
963            verifier.VerifyVector(alpha()) &&
964            VerifyField<int32_t>(verifier, 8) &&
965            VerifyField<uint8_t>(verifier, 10) &&
966            VerifyField<float>(verifier, 12) &&
967            VerifyField<float>(verifier, 14) &&
968            VerifyField<float>(verifier, 16) &&
969            VerifyField<int32_t>(verifier, 18) &&
970            VerifyField<int32_t>(verifier, 20) &&
971            VerifyField<int32_t>(verifier, 22) &&
972            VerifyField<uint8_t>(verifier, 24) &&
973            verifier.EndTable();
974   }
975   IDSTQuanT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
976   void UnPackTo(IDSTQuanT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
977   static flatbuffers::Offset<IDSTQuan> Pack(flatbuffers::FlatBufferBuilder &_fbb, const IDSTQuanT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
978 };
979 
980 struct IDSTQuanBuilder {
981   flatbuffers::FlatBufferBuilder &fbb_;
982   flatbuffers::uoffset_t start_;
add_bufferIDSTQuanBuilder983   void add_buffer(flatbuffers::Offset<flatbuffers::Vector<int8_t>> buffer) {
984     fbb_.AddOffset(4, buffer);
985   }
add_alphaIDSTQuanBuilder986   void add_alpha(flatbuffers::Offset<flatbuffers::Vector<float>> alpha) {
987     fbb_.AddOffset(6, alpha);
988   }
add_typeIDSTQuanBuilder989   void add_type(int32_t type) {
990     fbb_.AddElement<int32_t>(8, type, 0);
991   }
add_useInt32IDSTQuanBuilder992   void add_useInt32(bool useInt32) {
993     fbb_.AddElement<uint8_t>(10, static_cast<uint8_t>(useInt32), 0);
994   }
add_quantScaleIDSTQuanBuilder995   void add_quantScale(float quantScale) {
996     fbb_.AddElement<float>(12, quantScale, 0.0f);
997   }
add_scaleInIDSTQuanBuilder998   void add_scaleIn(float scaleIn) {
999     fbb_.AddElement<float>(14, scaleIn, 0.0f);
1000   }
add_scaleOutIDSTQuanBuilder1001   void add_scaleOut(float scaleOut) {
1002     fbb_.AddElement<float>(16, scaleOut, 0.0f);
1003   }
add_aMaxIDSTQuanBuilder1004   void add_aMax(int32_t aMax) {
1005     fbb_.AddElement<int32_t>(18, aMax, 0);
1006   }
add_aMinIDSTQuanBuilder1007   void add_aMin(int32_t aMin) {
1008     fbb_.AddElement<int32_t>(20, aMin, 0);
1009   }
add_readTypeIDSTQuanBuilder1010   void add_readType(int32_t readType) {
1011     fbb_.AddElement<int32_t>(22, readType, 0);
1012   }
add_has_scaleIntIDSTQuanBuilder1013   void add_has_scaleInt(bool has_scaleInt) {
1014     fbb_.AddElement<uint8_t>(24, static_cast<uint8_t>(has_scaleInt), 0);
1015   }
IDSTQuanBuilderIDSTQuanBuilder1016   explicit IDSTQuanBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1017         : fbb_(_fbb) {
1018     start_ = fbb_.StartTable();
1019   }
1020   IDSTQuanBuilder &operator=(const IDSTQuanBuilder &);
FinishIDSTQuanBuilder1021   flatbuffers::Offset<IDSTQuan> Finish() {
1022     const auto end = fbb_.EndTable(start_);
1023     auto o = flatbuffers::Offset<IDSTQuan>(end);
1024     return o;
1025   }
1026 };
1027 
1028 inline flatbuffers::Offset<IDSTQuan> CreateIDSTQuan(
1029     flatbuffers::FlatBufferBuilder &_fbb,
1030     flatbuffers::Offset<flatbuffers::Vector<int8_t>> buffer = 0,
1031     flatbuffers::Offset<flatbuffers::Vector<float>> alpha = 0,
1032     int32_t type = 0,
1033     bool useInt32 = false,
1034     float quantScale = 0.0f,
1035     float scaleIn = 0.0f,
1036     float scaleOut = 0.0f,
1037     int32_t aMax = 0,
1038     int32_t aMin = 0,
1039     int32_t readType = 0,
1040     bool has_scaleInt = false) {
1041   IDSTQuanBuilder builder_(_fbb);
1042   builder_.add_readType(readType);
1043   builder_.add_aMin(aMin);
1044   builder_.add_aMax(aMax);
1045   builder_.add_scaleOut(scaleOut);
1046   builder_.add_scaleIn(scaleIn);
1047   builder_.add_quantScale(quantScale);
1048   builder_.add_type(type);
1049   builder_.add_alpha(alpha);
1050   builder_.add_buffer(buffer);
1051   builder_.add_has_scaleInt(has_scaleInt);
1052   builder_.add_useInt32(useInt32);
1053   return builder_.Finish();
1054 }
1055 
1056 flatbuffers::Offset<IDSTQuan> CreateIDSTQuan(flatbuffers::FlatBufferBuilder &_fbb, const IDSTQuanT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
1057 
1058 struct QuantizedFloatParamT : public flatbuffers::NativeTable {
1059   typedef QuantizedFloatParam TableType;
1060   std::vector<int8_t> weight;
1061   std::vector<int32_t> bias;
1062   std::vector<float> scale;
1063   std::vector<float> tensorScale;
1064   QuantizeAlgo method;
1065   int32_t nbits;
1066   int8_t zeroPoint;
1067   int8_t outputZeroPoint;
1068   int8_t clampMin;
1069   int8_t clampMax;
QuantizedFloatParamTQuantizedFloatParamT1070   QuantizedFloatParamT()
1071       : method(QuantizeAlgo_DEFAULT),
1072         nbits(8),
1073         zeroPoint(0),
1074         outputZeroPoint(0),
1075         clampMin(-128),
1076         clampMax(127) {
1077   }
1078 };
1079 
1080 struct QuantizedFloatParam FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1081   typedef QuantizedFloatParamT NativeTableType;
MiniReflectTypeTableFLATBUFFERS_FINAL_CLASS1082   static const flatbuffers::TypeTable *MiniReflectTypeTable() {
1083     return QuantizedFloatParamTypeTable();
1084   }
weightFLATBUFFERS_FINAL_CLASS1085   const flatbuffers::Vector<int8_t> *weight() const {
1086     return GetPointer<const flatbuffers::Vector<int8_t> *>(4);
1087   }
biasFLATBUFFERS_FINAL_CLASS1088   const flatbuffers::Vector<int32_t> *bias() const {
1089     return GetPointer<const flatbuffers::Vector<int32_t> *>(6);
1090   }
scaleFLATBUFFERS_FINAL_CLASS1091   const flatbuffers::Vector<float> *scale() const {
1092     return GetPointer<const flatbuffers::Vector<float> *>(8);
1093   }
tensorScaleFLATBUFFERS_FINAL_CLASS1094   const flatbuffers::Vector<float> *tensorScale() const {
1095     return GetPointer<const flatbuffers::Vector<float> *>(10);
1096   }
methodFLATBUFFERS_FINAL_CLASS1097   QuantizeAlgo method() const {
1098     return static_cast<QuantizeAlgo>(GetField<int8_t>(12, 0));
1099   }
nbitsFLATBUFFERS_FINAL_CLASS1100   int32_t nbits() const {
1101     return GetField<int32_t>(14, 8);
1102   }
zeroPointFLATBUFFERS_FINAL_CLASS1103   int8_t zeroPoint() const {
1104     return GetField<int8_t>(16, 0);
1105   }
outputZeroPointFLATBUFFERS_FINAL_CLASS1106   int8_t outputZeroPoint() const {
1107     return GetField<int8_t>(18, 0);
1108   }
clampMinFLATBUFFERS_FINAL_CLASS1109   int8_t clampMin() const {
1110     return GetField<int8_t>(20, -128);
1111   }
clampMaxFLATBUFFERS_FINAL_CLASS1112   int8_t clampMax() const {
1113     return GetField<int8_t>(22, 127);
1114   }
VerifyFLATBUFFERS_FINAL_CLASS1115   bool Verify(flatbuffers::Verifier &verifier) const {
1116     return VerifyTableStart(verifier) &&
1117            VerifyOffset(verifier, 4) &&
1118            verifier.VerifyVector(weight()) &&
1119            VerifyOffset(verifier, 6) &&
1120            verifier.VerifyVector(bias()) &&
1121            VerifyOffset(verifier, 8) &&
1122            verifier.VerifyVector(scale()) &&
1123            VerifyOffset(verifier, 10) &&
1124            verifier.VerifyVector(tensorScale()) &&
1125            VerifyField<int8_t>(verifier, 12) &&
1126            VerifyField<int32_t>(verifier, 14) &&
1127            VerifyField<int8_t>(verifier, 16) &&
1128            VerifyField<int8_t>(verifier, 18) &&
1129            VerifyField<int8_t>(verifier, 20) &&
1130            VerifyField<int8_t>(verifier, 22) &&
1131            verifier.EndTable();
1132   }
1133   QuantizedFloatParamT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
1134   void UnPackTo(QuantizedFloatParamT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
1135   static flatbuffers::Offset<QuantizedFloatParam> Pack(flatbuffers::FlatBufferBuilder &_fbb, const QuantizedFloatParamT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
1136 };
1137 
1138 struct QuantizedFloatParamBuilder {
1139   flatbuffers::FlatBufferBuilder &fbb_;
1140   flatbuffers::uoffset_t start_;
add_weightQuantizedFloatParamBuilder1141   void add_weight(flatbuffers::Offset<flatbuffers::Vector<int8_t>> weight) {
1142     fbb_.AddOffset(4, weight);
1143   }
add_biasQuantizedFloatParamBuilder1144   void add_bias(flatbuffers::Offset<flatbuffers::Vector<int32_t>> bias) {
1145     fbb_.AddOffset(6, bias);
1146   }
add_scaleQuantizedFloatParamBuilder1147   void add_scale(flatbuffers::Offset<flatbuffers::Vector<float>> scale) {
1148     fbb_.AddOffset(8, scale);
1149   }
add_tensorScaleQuantizedFloatParamBuilder1150   void add_tensorScale(flatbuffers::Offset<flatbuffers::Vector<float>> tensorScale) {
1151     fbb_.AddOffset(10, tensorScale);
1152   }
add_methodQuantizedFloatParamBuilder1153   void add_method(QuantizeAlgo method) {
1154     fbb_.AddElement<int8_t>(12, static_cast<int8_t>(method), 0);
1155   }
add_nbitsQuantizedFloatParamBuilder1156   void add_nbits(int32_t nbits) {
1157     fbb_.AddElement<int32_t>(14, nbits, 8);
1158   }
add_zeroPointQuantizedFloatParamBuilder1159   void add_zeroPoint(int8_t zeroPoint) {
1160     fbb_.AddElement<int8_t>(16, zeroPoint, 0);
1161   }
add_outputZeroPointQuantizedFloatParamBuilder1162   void add_outputZeroPoint(int8_t outputZeroPoint) {
1163     fbb_.AddElement<int8_t>(18, outputZeroPoint, 0);
1164   }
add_clampMinQuantizedFloatParamBuilder1165   void add_clampMin(int8_t clampMin) {
1166     fbb_.AddElement<int8_t>(20, clampMin, -128);
1167   }
add_clampMaxQuantizedFloatParamBuilder1168   void add_clampMax(int8_t clampMax) {
1169     fbb_.AddElement<int8_t>(22, clampMax, 127);
1170   }
QuantizedFloatParamBuilderQuantizedFloatParamBuilder1171   explicit QuantizedFloatParamBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1172         : fbb_(_fbb) {
1173     start_ = fbb_.StartTable();
1174   }
1175   QuantizedFloatParamBuilder &operator=(const QuantizedFloatParamBuilder &);
FinishQuantizedFloatParamBuilder1176   flatbuffers::Offset<QuantizedFloatParam> Finish() {
1177     const auto end = fbb_.EndTable(start_);
1178     auto o = flatbuffers::Offset<QuantizedFloatParam>(end);
1179     return o;
1180   }
1181 };
1182 
1183 inline flatbuffers::Offset<QuantizedFloatParam> CreateQuantizedFloatParam(
1184     flatbuffers::FlatBufferBuilder &_fbb,
1185     flatbuffers::Offset<flatbuffers::Vector<int8_t>> weight = 0,
1186     flatbuffers::Offset<flatbuffers::Vector<int32_t>> bias = 0,
1187     flatbuffers::Offset<flatbuffers::Vector<float>> scale = 0,
1188     flatbuffers::Offset<flatbuffers::Vector<float>> tensorScale = 0,
1189     QuantizeAlgo method = QuantizeAlgo_DEFAULT,
1190     int32_t nbits = 8,
1191     int8_t zeroPoint = 0,
1192     int8_t outputZeroPoint = 0,
1193     int8_t clampMin = -128,
1194     int8_t clampMax = 127) {
1195   QuantizedFloatParamBuilder builder_(_fbb);
1196   builder_.add_nbits(nbits);
1197   builder_.add_tensorScale(tensorScale);
1198   builder_.add_scale(scale);
1199   builder_.add_bias(bias);
1200   builder_.add_weight(weight);
1201   builder_.add_clampMax(clampMax);
1202   builder_.add_clampMin(clampMin);
1203   builder_.add_outputZeroPoint(outputZeroPoint);
1204   builder_.add_zeroPoint(zeroPoint);
1205   builder_.add_method(method);
1206   return builder_.Finish();
1207 }
1208 
1209 flatbuffers::Offset<QuantizedFloatParam> CreateQuantizedFloatParam(flatbuffers::FlatBufferBuilder &_fbb, const QuantizedFloatParamT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
1210 
1211 struct Convolution2DT : public flatbuffers::NativeTable {
1212   typedef Convolution2D TableType;
1213   std::unique_ptr<Convolution2DCommonT> common;
1214   std::vector<float> weight;
1215   std::vector<float> bias;
1216   std::unique_ptr<IDSTQuanT> quanParameter;
1217   std::unique_ptr<QuantizedFloatParamT> symmetricQuan;
1218   std::unique_ptr<SparseCommonT> sparseParameter;
Convolution2DTConvolution2DT1219   Convolution2DT() {
1220   }
1221 };
1222 
1223 struct Convolution2D FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1224   typedef Convolution2DT NativeTableType;
MiniReflectTypeTableFLATBUFFERS_FINAL_CLASS1225   static const flatbuffers::TypeTable *MiniReflectTypeTable() {
1226     return Convolution2DTypeTable();
1227   }
commonFLATBUFFERS_FINAL_CLASS1228   const Convolution2DCommon *common() const {
1229     return GetPointer<const Convolution2DCommon *>(4);
1230   }
weightFLATBUFFERS_FINAL_CLASS1231   const flatbuffers::Vector<float> *weight() const {
1232     return GetPointer<const flatbuffers::Vector<float> *>(6);
1233   }
biasFLATBUFFERS_FINAL_CLASS1234   const flatbuffers::Vector<float> *bias() const {
1235     return GetPointer<const flatbuffers::Vector<float> *>(8);
1236   }
quanParameterFLATBUFFERS_FINAL_CLASS1237   const IDSTQuan *quanParameter() const {
1238     return GetPointer<const IDSTQuan *>(10);
1239   }
symmetricQuanFLATBUFFERS_FINAL_CLASS1240   const QuantizedFloatParam *symmetricQuan() const {
1241     return GetPointer<const QuantizedFloatParam *>(12);
1242   }
sparseParameterFLATBUFFERS_FINAL_CLASS1243   const SparseCommon *sparseParameter() const {
1244     return GetPointer<const SparseCommon *>(14);
1245   }
VerifyFLATBUFFERS_FINAL_CLASS1246   bool Verify(flatbuffers::Verifier &verifier) const {
1247     return VerifyTableStart(verifier) &&
1248            VerifyOffset(verifier, 4) &&
1249            verifier.VerifyTable(common()) &&
1250            VerifyOffset(verifier, 6) &&
1251            verifier.VerifyVector(weight()) &&
1252            VerifyOffset(verifier, 8) &&
1253            verifier.VerifyVector(bias()) &&
1254            VerifyOffset(verifier, 10) &&
1255            verifier.VerifyTable(quanParameter()) &&
1256            VerifyOffset(verifier, 12) &&
1257            verifier.VerifyTable(symmetricQuan()) &&
1258            VerifyOffset(verifier, 14) &&
1259            verifier.VerifyTable(sparseParameter()) &&
1260            verifier.EndTable();
1261   }
1262   Convolution2DT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
1263   void UnPackTo(Convolution2DT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
1264   static flatbuffers::Offset<Convolution2D> Pack(flatbuffers::FlatBufferBuilder &_fbb, const Convolution2DT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
1265 };
1266 
1267 struct Convolution2DBuilder {
1268   flatbuffers::FlatBufferBuilder &fbb_;
1269   flatbuffers::uoffset_t start_;
add_commonConvolution2DBuilder1270   void add_common(flatbuffers::Offset<Convolution2DCommon> common) {
1271     fbb_.AddOffset(4, common);
1272   }
add_weightConvolution2DBuilder1273   void add_weight(flatbuffers::Offset<flatbuffers::Vector<float>> weight) {
1274     fbb_.AddOffset(6, weight);
1275   }
add_biasConvolution2DBuilder1276   void add_bias(flatbuffers::Offset<flatbuffers::Vector<float>> bias) {
1277     fbb_.AddOffset(8, bias);
1278   }
add_quanParameterConvolution2DBuilder1279   void add_quanParameter(flatbuffers::Offset<IDSTQuan> quanParameter) {
1280     fbb_.AddOffset(10, quanParameter);
1281   }
add_symmetricQuanConvolution2DBuilder1282   void add_symmetricQuan(flatbuffers::Offset<QuantizedFloatParam> symmetricQuan) {
1283     fbb_.AddOffset(12, symmetricQuan);
1284   }
add_sparseParameterConvolution2DBuilder1285   void add_sparseParameter(flatbuffers::Offset<SparseCommon> sparseParameter) {
1286     fbb_.AddOffset(14, sparseParameter);
1287   }
Convolution2DBuilderConvolution2DBuilder1288   explicit Convolution2DBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1289         : fbb_(_fbb) {
1290     start_ = fbb_.StartTable();
1291   }
1292   Convolution2DBuilder &operator=(const Convolution2DBuilder &);
FinishConvolution2DBuilder1293   flatbuffers::Offset<Convolution2D> Finish() {
1294     const auto end = fbb_.EndTable(start_);
1295     auto o = flatbuffers::Offset<Convolution2D>(end);
1296     return o;
1297   }
1298 };
1299 
1300 inline flatbuffers::Offset<Convolution2D> CreateConvolution2D(
1301     flatbuffers::FlatBufferBuilder &_fbb,
1302     flatbuffers::Offset<Convolution2DCommon> common = 0,
1303     flatbuffers::Offset<flatbuffers::Vector<float>> weight = 0,
1304     flatbuffers::Offset<flatbuffers::Vector<float>> bias = 0,
1305     flatbuffers::Offset<IDSTQuan> quanParameter = 0,
1306     flatbuffers::Offset<QuantizedFloatParam> symmetricQuan = 0,
1307     flatbuffers::Offset<SparseCommon> sparseParameter = 0) {
1308   Convolution2DBuilder builder_(_fbb);
1309   builder_.add_sparseParameter(sparseParameter);
1310   builder_.add_symmetricQuan(symmetricQuan);
1311   builder_.add_quanParameter(quanParameter);
1312   builder_.add_bias(bias);
1313   builder_.add_weight(weight);
1314   builder_.add_common(common);
1315   return builder_.Finish();
1316 }
1317 
1318 flatbuffers::Offset<Convolution2D> CreateConvolution2D(flatbuffers::FlatBufferBuilder &_fbb, const Convolution2DT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
1319 
1320 struct Convolution3DT : public flatbuffers::NativeTable {
1321   typedef Convolution3D TableType;
1322   std::unique_ptr<Convolution3DCommonT> common;
1323   std::vector<float> weight;
1324   std::vector<float> bias;
Convolution3DTConvolution3DT1325   Convolution3DT() {
1326   }
1327 };
1328 
1329 struct Convolution3D FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1330   typedef Convolution3DT NativeTableType;
MiniReflectTypeTableFLATBUFFERS_FINAL_CLASS1331   static const flatbuffers::TypeTable *MiniReflectTypeTable() {
1332     return Convolution3DTypeTable();
1333   }
commonFLATBUFFERS_FINAL_CLASS1334   const Convolution3DCommon *common() const {
1335     return GetPointer<const Convolution3DCommon *>(4);
1336   }
weightFLATBUFFERS_FINAL_CLASS1337   const flatbuffers::Vector<float> *weight() const {
1338     return GetPointer<const flatbuffers::Vector<float> *>(6);
1339   }
biasFLATBUFFERS_FINAL_CLASS1340   const flatbuffers::Vector<float> *bias() const {
1341     return GetPointer<const flatbuffers::Vector<float> *>(8);
1342   }
VerifyFLATBUFFERS_FINAL_CLASS1343   bool Verify(flatbuffers::Verifier &verifier) const {
1344     return VerifyTableStart(verifier) &&
1345            VerifyOffset(verifier, 4) &&
1346            verifier.VerifyTable(common()) &&
1347            VerifyOffset(verifier, 6) &&
1348            verifier.VerifyVector(weight()) &&
1349            VerifyOffset(verifier, 8) &&
1350            verifier.VerifyVector(bias()) &&
1351            verifier.EndTable();
1352   }
1353   Convolution3DT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
1354   void UnPackTo(Convolution3DT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
1355   static flatbuffers::Offset<Convolution3D> Pack(flatbuffers::FlatBufferBuilder &_fbb, const Convolution3DT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
1356 };
1357 
1358 struct Convolution3DBuilder {
1359   flatbuffers::FlatBufferBuilder &fbb_;
1360   flatbuffers::uoffset_t start_;
add_commonConvolution3DBuilder1361   void add_common(flatbuffers::Offset<Convolution3DCommon> common) {
1362     fbb_.AddOffset(4, common);
1363   }
add_weightConvolution3DBuilder1364   void add_weight(flatbuffers::Offset<flatbuffers::Vector<float>> weight) {
1365     fbb_.AddOffset(6, weight);
1366   }
add_biasConvolution3DBuilder1367   void add_bias(flatbuffers::Offset<flatbuffers::Vector<float>> bias) {
1368     fbb_.AddOffset(8, bias);
1369   }
Convolution3DBuilderConvolution3DBuilder1370   explicit Convolution3DBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1371         : fbb_(_fbb) {
1372     start_ = fbb_.StartTable();
1373   }
1374   Convolution3DBuilder &operator=(const Convolution3DBuilder &);
FinishConvolution3DBuilder1375   flatbuffers::Offset<Convolution3D> Finish() {
1376     const auto end = fbb_.EndTable(start_);
1377     auto o = flatbuffers::Offset<Convolution3D>(end);
1378     return o;
1379   }
1380 };
1381 
1382 inline flatbuffers::Offset<Convolution3D> CreateConvolution3D(
1383     flatbuffers::FlatBufferBuilder &_fbb,
1384     flatbuffers::Offset<Convolution3DCommon> common = 0,
1385     flatbuffers::Offset<flatbuffers::Vector<float>> weight = 0,
1386     flatbuffers::Offset<flatbuffers::Vector<float>> bias = 0) {
1387   Convolution3DBuilder builder_(_fbb);
1388   builder_.add_bias(bias);
1389   builder_.add_weight(weight);
1390   builder_.add_common(common);
1391   return builder_.Finish();
1392 }
1393 
1394 flatbuffers::Offset<Convolution3D> CreateConvolution3D(flatbuffers::FlatBufferBuilder &_fbb, const Convolution3DT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
1395 
1396 struct InnerProductT : public flatbuffers::NativeTable {
1397   typedef InnerProduct TableType;
1398   int32_t outputCount;
1399   int32_t biasTerm;
1400   int32_t weightSize;
1401   std::vector<float> weight;
1402   std::vector<float> bias;
1403   int32_t axis;
1404   bool transpose;
1405   std::unique_ptr<IDSTQuanT> quanParameter;
InnerProductTInnerProductT1406   InnerProductT()
1407       : outputCount(0),
1408         biasTerm(0),
1409         weightSize(0),
1410         axis(0),
1411         transpose(false) {
1412   }
1413 };
1414 
1415 struct InnerProduct FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1416   typedef InnerProductT NativeTableType;
MiniReflectTypeTableFLATBUFFERS_FINAL_CLASS1417   static const flatbuffers::TypeTable *MiniReflectTypeTable() {
1418     return InnerProductTypeTable();
1419   }
outputCountFLATBUFFERS_FINAL_CLASS1420   int32_t outputCount() const {
1421     return GetField<int32_t>(4, 0);
1422   }
biasTermFLATBUFFERS_FINAL_CLASS1423   int32_t biasTerm() const {
1424     return GetField<int32_t>(6, 0);
1425   }
weightSizeFLATBUFFERS_FINAL_CLASS1426   int32_t weightSize() const {
1427     return GetField<int32_t>(8, 0);
1428   }
weightFLATBUFFERS_FINAL_CLASS1429   const flatbuffers::Vector<float> *weight() const {
1430     return GetPointer<const flatbuffers::Vector<float> *>(10);
1431   }
biasFLATBUFFERS_FINAL_CLASS1432   const flatbuffers::Vector<float> *bias() const {
1433     return GetPointer<const flatbuffers::Vector<float> *>(12);
1434   }
axisFLATBUFFERS_FINAL_CLASS1435   int32_t axis() const {
1436     return GetField<int32_t>(14, 0);
1437   }
transposeFLATBUFFERS_FINAL_CLASS1438   bool transpose() const {
1439     return GetField<uint8_t>(16, 0) != 0;
1440   }
quanParameterFLATBUFFERS_FINAL_CLASS1441   const IDSTQuan *quanParameter() const {
1442     return GetPointer<const IDSTQuan *>(18);
1443   }
VerifyFLATBUFFERS_FINAL_CLASS1444   bool Verify(flatbuffers::Verifier &verifier) const {
1445     return VerifyTableStart(verifier) &&
1446            VerifyField<int32_t>(verifier, 4) &&
1447            VerifyField<int32_t>(verifier, 6) &&
1448            VerifyField<int32_t>(verifier, 8) &&
1449            VerifyOffset(verifier, 10) &&
1450            verifier.VerifyVector(weight()) &&
1451            VerifyOffset(verifier, 12) &&
1452            verifier.VerifyVector(bias()) &&
1453            VerifyField<int32_t>(verifier, 14) &&
1454            VerifyField<uint8_t>(verifier, 16) &&
1455            VerifyOffset(verifier, 18) &&
1456            verifier.VerifyTable(quanParameter()) &&
1457            verifier.EndTable();
1458   }
1459   InnerProductT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
1460   void UnPackTo(InnerProductT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
1461   static flatbuffers::Offset<InnerProduct> Pack(flatbuffers::FlatBufferBuilder &_fbb, const InnerProductT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
1462 };
1463 
1464 struct InnerProductBuilder {
1465   flatbuffers::FlatBufferBuilder &fbb_;
1466   flatbuffers::uoffset_t start_;
add_outputCountInnerProductBuilder1467   void add_outputCount(int32_t outputCount) {
1468     fbb_.AddElement<int32_t>(4, outputCount, 0);
1469   }
add_biasTermInnerProductBuilder1470   void add_biasTerm(int32_t biasTerm) {
1471     fbb_.AddElement<int32_t>(6, biasTerm, 0);
1472   }
add_weightSizeInnerProductBuilder1473   void add_weightSize(int32_t weightSize) {
1474     fbb_.AddElement<int32_t>(8, weightSize, 0);
1475   }
add_weightInnerProductBuilder1476   void add_weight(flatbuffers::Offset<flatbuffers::Vector<float>> weight) {
1477     fbb_.AddOffset(10, weight);
1478   }
add_biasInnerProductBuilder1479   void add_bias(flatbuffers::Offset<flatbuffers::Vector<float>> bias) {
1480     fbb_.AddOffset(12, bias);
1481   }
add_axisInnerProductBuilder1482   void add_axis(int32_t axis) {
1483     fbb_.AddElement<int32_t>(14, axis, 0);
1484   }
add_transposeInnerProductBuilder1485   void add_transpose(bool transpose) {
1486     fbb_.AddElement<uint8_t>(16, static_cast<uint8_t>(transpose), 0);
1487   }
add_quanParameterInnerProductBuilder1488   void add_quanParameter(flatbuffers::Offset<IDSTQuan> quanParameter) {
1489     fbb_.AddOffset(18, quanParameter);
1490   }
InnerProductBuilderInnerProductBuilder1491   explicit InnerProductBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1492         : fbb_(_fbb) {
1493     start_ = fbb_.StartTable();
1494   }
1495   InnerProductBuilder &operator=(const InnerProductBuilder &);
FinishInnerProductBuilder1496   flatbuffers::Offset<InnerProduct> Finish() {
1497     const auto end = fbb_.EndTable(start_);
1498     auto o = flatbuffers::Offset<InnerProduct>(end);
1499     return o;
1500   }
1501 };
1502 
1503 inline flatbuffers::Offset<InnerProduct> CreateInnerProduct(
1504     flatbuffers::FlatBufferBuilder &_fbb,
1505     int32_t outputCount = 0,
1506     int32_t biasTerm = 0,
1507     int32_t weightSize = 0,
1508     flatbuffers::Offset<flatbuffers::Vector<float>> weight = 0,
1509     flatbuffers::Offset<flatbuffers::Vector<float>> bias = 0,
1510     int32_t axis = 0,
1511     bool transpose = false,
1512     flatbuffers::Offset<IDSTQuan> quanParameter = 0) {
1513   InnerProductBuilder builder_(_fbb);
1514   builder_.add_quanParameter(quanParameter);
1515   builder_.add_axis(axis);
1516   builder_.add_bias(bias);
1517   builder_.add_weight(weight);
1518   builder_.add_weightSize(weightSize);
1519   builder_.add_biasTerm(biasTerm);
1520   builder_.add_outputCount(outputCount);
1521   builder_.add_transpose(transpose);
1522   return builder_.Finish();
1523 }
1524 
1525 flatbuffers::Offset<InnerProduct> CreateInnerProduct(flatbuffers::FlatBufferBuilder &_fbb, const InnerProductT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
1526 
1527 struct PoolT : public flatbuffers::NativeTable {
1528   typedef Pool TableType;
1529   int32_t padX;
1530   int32_t padY;
1531   bool isGlobal;
1532   int32_t kernelX;
1533   int32_t kernelY;
1534   int32_t strideX;
1535   int32_t strideY;
1536   PoolType type;
1537   PoolPadType padType;
1538   DataType dataType;
1539   bool ceilModel;
1540   std::vector<int32_t> pads;
1541   AvgPoolCountType countType;
PoolTPoolT1542   PoolT()
1543       : padX(0),
1544         padY(0),
1545         isGlobal(false),
1546         kernelX(0),
1547         kernelY(0),
1548         strideX(0),
1549         strideY(0),
1550         type(PoolType_MAXPOOL),
1551         padType(PoolPadType_CAFFE),
1552         dataType(DataType_DT_FLOAT),
1553         ceilModel(true),
1554         countType(AvgPoolCountType_DEFAULT) {
1555   }
1556 };
1557 
1558 struct Pool FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1559   typedef PoolT NativeTableType;
MiniReflectTypeTableFLATBUFFERS_FINAL_CLASS1560   static const flatbuffers::TypeTable *MiniReflectTypeTable() {
1561     return PoolTypeTable();
1562   }
padXFLATBUFFERS_FINAL_CLASS1563   int32_t padX() const {
1564     return GetField<int32_t>(4, 0);
1565   }
padYFLATBUFFERS_FINAL_CLASS1566   int32_t padY() const {
1567     return GetField<int32_t>(6, 0);
1568   }
isGlobalFLATBUFFERS_FINAL_CLASS1569   bool isGlobal() const {
1570     return GetField<uint8_t>(8, 0) != 0;
1571   }
kernelXFLATBUFFERS_FINAL_CLASS1572   int32_t kernelX() const {
1573     return GetField<int32_t>(10, 0);
1574   }
kernelYFLATBUFFERS_FINAL_CLASS1575   int32_t kernelY() const {
1576     return GetField<int32_t>(12, 0);
1577   }
strideXFLATBUFFERS_FINAL_CLASS1578   int32_t strideX() const {
1579     return GetField<int32_t>(14, 0);
1580   }
strideYFLATBUFFERS_FINAL_CLASS1581   int32_t strideY() const {
1582     return GetField<int32_t>(16, 0);
1583   }
typeFLATBUFFERS_FINAL_CLASS1584   PoolType type() const {
1585     return static_cast<PoolType>(GetField<int8_t>(18, 0));
1586   }
padTypeFLATBUFFERS_FINAL_CLASS1587   PoolPadType padType() const {
1588     return static_cast<PoolPadType>(GetField<int8_t>(20, 0));
1589   }
dataTypeFLATBUFFERS_FINAL_CLASS1590   DataType dataType() const {
1591     return static_cast<DataType>(GetField<int32_t>(22, 1));
1592   }
ceilModelFLATBUFFERS_FINAL_CLASS1593   bool ceilModel() const {
1594     return GetField<uint8_t>(24, 1) != 0;
1595   }
padsFLATBUFFERS_FINAL_CLASS1596   const flatbuffers::Vector<int32_t> *pads() const {
1597     return GetPointer<const flatbuffers::Vector<int32_t> *>(26);
1598   }
countTypeFLATBUFFERS_FINAL_CLASS1599   AvgPoolCountType countType() const {
1600     return static_cast<AvgPoolCountType>(GetField<int8_t>(28, 0));
1601   }
VerifyFLATBUFFERS_FINAL_CLASS1602   bool Verify(flatbuffers::Verifier &verifier) const {
1603     return VerifyTableStart(verifier) &&
1604            VerifyField<int32_t>(verifier, 4) &&
1605            VerifyField<int32_t>(verifier, 6) &&
1606            VerifyField<uint8_t>(verifier, 8) &&
1607            VerifyField<int32_t>(verifier, 10) &&
1608            VerifyField<int32_t>(verifier, 12) &&
1609            VerifyField<int32_t>(verifier, 14) &&
1610            VerifyField<int32_t>(verifier, 16) &&
1611            VerifyField<int8_t>(verifier, 18) &&
1612            VerifyField<int8_t>(verifier, 20) &&
1613            VerifyField<int32_t>(verifier, 22) &&
1614            VerifyField<uint8_t>(verifier, 24) &&
1615            VerifyOffset(verifier, 26) &&
1616            verifier.VerifyVector(pads()) &&
1617            VerifyField<int8_t>(verifier, 28) &&
1618            verifier.EndTable();
1619   }
1620   PoolT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
1621   void UnPackTo(PoolT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
1622   static flatbuffers::Offset<Pool> Pack(flatbuffers::FlatBufferBuilder &_fbb, const PoolT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
1623 };
1624 
1625 struct PoolBuilder {
1626   flatbuffers::FlatBufferBuilder &fbb_;
1627   flatbuffers::uoffset_t start_;
add_padXPoolBuilder1628   void add_padX(int32_t padX) {
1629     fbb_.AddElement<int32_t>(4, padX, 0);
1630   }
add_padYPoolBuilder1631   void add_padY(int32_t padY) {
1632     fbb_.AddElement<int32_t>(6, padY, 0);
1633   }
add_isGlobalPoolBuilder1634   void add_isGlobal(bool isGlobal) {
1635     fbb_.AddElement<uint8_t>(8, static_cast<uint8_t>(isGlobal), 0);
1636   }
add_kernelXPoolBuilder1637   void add_kernelX(int32_t kernelX) {
1638     fbb_.AddElement<int32_t>(10, kernelX, 0);
1639   }
add_kernelYPoolBuilder1640   void add_kernelY(int32_t kernelY) {
1641     fbb_.AddElement<int32_t>(12, kernelY, 0);
1642   }
add_strideXPoolBuilder1643   void add_strideX(int32_t strideX) {
1644     fbb_.AddElement<int32_t>(14, strideX, 0);
1645   }
add_strideYPoolBuilder1646   void add_strideY(int32_t strideY) {
1647     fbb_.AddElement<int32_t>(16, strideY, 0);
1648   }
add_typePoolBuilder1649   void add_type(PoolType type) {
1650     fbb_.AddElement<int8_t>(18, static_cast<int8_t>(type), 0);
1651   }
add_padTypePoolBuilder1652   void add_padType(PoolPadType padType) {
1653     fbb_.AddElement<int8_t>(20, static_cast<int8_t>(padType), 0);
1654   }
add_dataTypePoolBuilder1655   void add_dataType(DataType dataType) {
1656     fbb_.AddElement<int32_t>(22, static_cast<int32_t>(dataType), 1);
1657   }
add_ceilModelPoolBuilder1658   void add_ceilModel(bool ceilModel) {
1659     fbb_.AddElement<uint8_t>(24, static_cast<uint8_t>(ceilModel), 1);
1660   }
add_padsPoolBuilder1661   void add_pads(flatbuffers::Offset<flatbuffers::Vector<int32_t>> pads) {
1662     fbb_.AddOffset(26, pads);
1663   }
add_countTypePoolBuilder1664   void add_countType(AvgPoolCountType countType) {
1665     fbb_.AddElement<int8_t>(28, static_cast<int8_t>(countType), 0);
1666   }
PoolBuilderPoolBuilder1667   explicit PoolBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1668         : fbb_(_fbb) {
1669     start_ = fbb_.StartTable();
1670   }
1671   PoolBuilder &operator=(const PoolBuilder &);
FinishPoolBuilder1672   flatbuffers::Offset<Pool> Finish() {
1673     const auto end = fbb_.EndTable(start_);
1674     auto o = flatbuffers::Offset<Pool>(end);
1675     return o;
1676   }
1677 };
1678 
1679 inline flatbuffers::Offset<Pool> CreatePool(
1680     flatbuffers::FlatBufferBuilder &_fbb,
1681     int32_t padX = 0,
1682     int32_t padY = 0,
1683     bool isGlobal = false,
1684     int32_t kernelX = 0,
1685     int32_t kernelY = 0,
1686     int32_t strideX = 0,
1687     int32_t strideY = 0,
1688     PoolType type = PoolType_MAXPOOL,
1689     PoolPadType padType = PoolPadType_CAFFE,
1690     DataType dataType = DataType_DT_FLOAT,
1691     bool ceilModel = true,
1692     flatbuffers::Offset<flatbuffers::Vector<int32_t>> pads = 0,
1693     AvgPoolCountType countType = AvgPoolCountType_DEFAULT) {
1694   PoolBuilder builder_(_fbb);
1695   builder_.add_pads(pads);
1696   builder_.add_dataType(dataType);
1697   builder_.add_strideY(strideY);
1698   builder_.add_strideX(strideX);
1699   builder_.add_kernelY(kernelY);
1700   builder_.add_kernelX(kernelX);
1701   builder_.add_padY(padY);
1702   builder_.add_padX(padX);
1703   builder_.add_countType(countType);
1704   builder_.add_ceilModel(ceilModel);
1705   builder_.add_padType(padType);
1706   builder_.add_type(type);
1707   builder_.add_isGlobal(isGlobal);
1708   return builder_.Finish();
1709 }
1710 
1711 flatbuffers::Offset<Pool> CreatePool(flatbuffers::FlatBufferBuilder &_fbb, const PoolT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
1712 
1713 struct Pool3DT : public flatbuffers::NativeTable {
1714   typedef Pool3D TableType;
1715   std::vector<int32_t> strides;
1716   std::vector<int32_t> kernels;
1717   std::vector<int32_t> pads;
1718   PoolType type;
1719   PoolPadType padType;
1720   bool isGlobal;
Pool3DTPool3DT1721   Pool3DT()
1722       : type(PoolType_MAXPOOL),
1723         padType(PoolPadType_CAFFE),
1724         isGlobal(false) {
1725   }
1726 };
1727 
1728 struct Pool3D FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1729   typedef Pool3DT NativeTableType;
MiniReflectTypeTableFLATBUFFERS_FINAL_CLASS1730   static const flatbuffers::TypeTable *MiniReflectTypeTable() {
1731     return Pool3DTypeTable();
1732   }
stridesFLATBUFFERS_FINAL_CLASS1733   const flatbuffers::Vector<int32_t> *strides() const {
1734     return GetPointer<const flatbuffers::Vector<int32_t> *>(4);
1735   }
kernelsFLATBUFFERS_FINAL_CLASS1736   const flatbuffers::Vector<int32_t> *kernels() const {
1737     return GetPointer<const flatbuffers::Vector<int32_t> *>(6);
1738   }
padsFLATBUFFERS_FINAL_CLASS1739   const flatbuffers::Vector<int32_t> *pads() const {
1740     return GetPointer<const flatbuffers::Vector<int32_t> *>(8);
1741   }
typeFLATBUFFERS_FINAL_CLASS1742   PoolType type() const {
1743     return static_cast<PoolType>(GetField<int8_t>(10, 0));
1744   }
padTypeFLATBUFFERS_FINAL_CLASS1745   PoolPadType padType() const {
1746     return static_cast<PoolPadType>(GetField<int8_t>(12, 0));
1747   }
isGlobalFLATBUFFERS_FINAL_CLASS1748   bool isGlobal() const {
1749     return GetField<uint8_t>(14, 0) != 0;
1750   }
VerifyFLATBUFFERS_FINAL_CLASS1751   bool Verify(flatbuffers::Verifier &verifier) const {
1752     return VerifyTableStart(verifier) &&
1753            VerifyOffset(verifier, 4) &&
1754            verifier.VerifyVector(strides()) &&
1755            VerifyOffset(verifier, 6) &&
1756            verifier.VerifyVector(kernels()) &&
1757            VerifyOffset(verifier, 8) &&
1758            verifier.VerifyVector(pads()) &&
1759            VerifyField<int8_t>(verifier, 10) &&
1760            VerifyField<int8_t>(verifier, 12) &&
1761            VerifyField<uint8_t>(verifier, 14) &&
1762            verifier.EndTable();
1763   }
1764   Pool3DT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
1765   void UnPackTo(Pool3DT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
1766   static flatbuffers::Offset<Pool3D> Pack(flatbuffers::FlatBufferBuilder &_fbb, const Pool3DT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
1767 };
1768 
1769 struct Pool3DBuilder {
1770   flatbuffers::FlatBufferBuilder &fbb_;
1771   flatbuffers::uoffset_t start_;
add_stridesPool3DBuilder1772   void add_strides(flatbuffers::Offset<flatbuffers::Vector<int32_t>> strides) {
1773     fbb_.AddOffset(4, strides);
1774   }
add_kernelsPool3DBuilder1775   void add_kernels(flatbuffers::Offset<flatbuffers::Vector<int32_t>> kernels) {
1776     fbb_.AddOffset(6, kernels);
1777   }
add_padsPool3DBuilder1778   void add_pads(flatbuffers::Offset<flatbuffers::Vector<int32_t>> pads) {
1779     fbb_.AddOffset(8, pads);
1780   }
add_typePool3DBuilder1781   void add_type(PoolType type) {
1782     fbb_.AddElement<int8_t>(10, static_cast<int8_t>(type), 0);
1783   }
add_padTypePool3DBuilder1784   void add_padType(PoolPadType padType) {
1785     fbb_.AddElement<int8_t>(12, static_cast<int8_t>(padType), 0);
1786   }
add_isGlobalPool3DBuilder1787   void add_isGlobal(bool isGlobal) {
1788     fbb_.AddElement<uint8_t>(14, static_cast<uint8_t>(isGlobal), 0);
1789   }
Pool3DBuilderPool3DBuilder1790   explicit Pool3DBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1791         : fbb_(_fbb) {
1792     start_ = fbb_.StartTable();
1793   }
1794   Pool3DBuilder &operator=(const Pool3DBuilder &);
FinishPool3DBuilder1795   flatbuffers::Offset<Pool3D> Finish() {
1796     const auto end = fbb_.EndTable(start_);
1797     auto o = flatbuffers::Offset<Pool3D>(end);
1798     return o;
1799   }
1800 };
1801 
1802 inline flatbuffers::Offset<Pool3D> CreatePool3D(
1803     flatbuffers::FlatBufferBuilder &_fbb,
1804     flatbuffers::Offset<flatbuffers::Vector<int32_t>> strides = 0,
1805     flatbuffers::Offset<flatbuffers::Vector<int32_t>> kernels = 0,
1806     flatbuffers::Offset<flatbuffers::Vector<int32_t>> pads = 0,
1807     PoolType type = PoolType_MAXPOOL,
1808     PoolPadType padType = PoolPadType_CAFFE,
1809     bool isGlobal = false) {
1810   Pool3DBuilder builder_(_fbb);
1811   builder_.add_pads(pads);
1812   builder_.add_kernels(kernels);
1813   builder_.add_strides(strides);
1814   builder_.add_isGlobal(isGlobal);
1815   builder_.add_padType(padType);
1816   builder_.add_type(type);
1817   return builder_.Finish();
1818 }
1819 
1820 flatbuffers::Offset<Pool3D> CreatePool3D(flatbuffers::FlatBufferBuilder &_fbb, const Pool3DT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
1821 
1822 struct ReluT : public flatbuffers::NativeTable {
1823   typedef Relu TableType;
1824   float slope;
ReluTReluT1825   ReluT()
1826       : slope(0.0f) {
1827   }
1828 };
1829 
1830 struct Relu FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1831   typedef ReluT NativeTableType;
MiniReflectTypeTableFLATBUFFERS_FINAL_CLASS1832   static const flatbuffers::TypeTable *MiniReflectTypeTable() {
1833     return ReluTypeTable();
1834   }
slopeFLATBUFFERS_FINAL_CLASS1835   float slope() const {
1836     return GetField<float>(4, 0.0f);
1837   }
VerifyFLATBUFFERS_FINAL_CLASS1838   bool Verify(flatbuffers::Verifier &verifier) const {
1839     return VerifyTableStart(verifier) &&
1840            VerifyField<float>(verifier, 4) &&
1841            verifier.EndTable();
1842   }
1843   ReluT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
1844   void UnPackTo(ReluT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
1845   static flatbuffers::Offset<Relu> Pack(flatbuffers::FlatBufferBuilder &_fbb, const ReluT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
1846 };
1847 
1848 struct ReluBuilder {
1849   flatbuffers::FlatBufferBuilder &fbb_;
1850   flatbuffers::uoffset_t start_;
add_slopeReluBuilder1851   void add_slope(float slope) {
1852     fbb_.AddElement<float>(4, slope, 0.0f);
1853   }
ReluBuilderReluBuilder1854   explicit ReluBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1855         : fbb_(_fbb) {
1856     start_ = fbb_.StartTable();
1857   }
1858   ReluBuilder &operator=(const ReluBuilder &);
FinishReluBuilder1859   flatbuffers::Offset<Relu> Finish() {
1860     const auto end = fbb_.EndTable(start_);
1861     auto o = flatbuffers::Offset<Relu>(end);
1862     return o;
1863   }
1864 };
1865 
1866 inline flatbuffers::Offset<Relu> CreateRelu(
1867     flatbuffers::FlatBufferBuilder &_fbb,
1868     float slope = 0.0f) {
1869   ReluBuilder builder_(_fbb);
1870   builder_.add_slope(slope);
1871   return builder_.Finish();
1872 }
1873 
1874 flatbuffers::Offset<Relu> CreateRelu(flatbuffers::FlatBufferBuilder &_fbb, const ReluT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
1875 
1876 struct Relu6T : public flatbuffers::NativeTable {
1877   typedef Relu6 TableType;
1878   float minValue;
1879   float maxValue;
Relu6TRelu6T1880   Relu6T()
1881       : minValue(0.0f),
1882         maxValue(6.0f) {
1883   }
1884 };
1885 
1886 struct Relu6 FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1887   typedef Relu6T NativeTableType;
MiniReflectTypeTableFLATBUFFERS_FINAL_CLASS1888   static const flatbuffers::TypeTable *MiniReflectTypeTable() {
1889     return Relu6TypeTable();
1890   }
minValueFLATBUFFERS_FINAL_CLASS1891   float minValue() const {
1892     return GetField<float>(4, 0.0f);
1893   }
maxValueFLATBUFFERS_FINAL_CLASS1894   float maxValue() const {
1895     return GetField<float>(6, 6.0f);
1896   }
VerifyFLATBUFFERS_FINAL_CLASS1897   bool Verify(flatbuffers::Verifier &verifier) const {
1898     return VerifyTableStart(verifier) &&
1899            VerifyField<float>(verifier, 4) &&
1900            VerifyField<float>(verifier, 6) &&
1901            verifier.EndTable();
1902   }
1903   Relu6T *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
1904   void UnPackTo(Relu6T *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
1905   static flatbuffers::Offset<Relu6> Pack(flatbuffers::FlatBufferBuilder &_fbb, const Relu6T* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
1906 };
1907 
1908 struct Relu6Builder {
1909   flatbuffers::FlatBufferBuilder &fbb_;
1910   flatbuffers::uoffset_t start_;
add_minValueRelu6Builder1911   void add_minValue(float minValue) {
1912     fbb_.AddElement<float>(4, minValue, 0.0f);
1913   }
add_maxValueRelu6Builder1914   void add_maxValue(float maxValue) {
1915     fbb_.AddElement<float>(6, maxValue, 6.0f);
1916   }
Relu6BuilderRelu6Builder1917   explicit Relu6Builder(flatbuffers::FlatBufferBuilder &_fbb)
1918         : fbb_(_fbb) {
1919     start_ = fbb_.StartTable();
1920   }
1921   Relu6Builder &operator=(const Relu6Builder &);
FinishRelu6Builder1922   flatbuffers::Offset<Relu6> Finish() {
1923     const auto end = fbb_.EndTable(start_);
1924     auto o = flatbuffers::Offset<Relu6>(end);
1925     return o;
1926   }
1927 };
1928 
1929 inline flatbuffers::Offset<Relu6> CreateRelu6(
1930     flatbuffers::FlatBufferBuilder &_fbb,
1931     float minValue = 0.0f,
1932     float maxValue = 6.0f) {
1933   Relu6Builder builder_(_fbb);
1934   builder_.add_maxValue(maxValue);
1935   builder_.add_minValue(minValue);
1936   return builder_.Finish();
1937 }
1938 
1939 flatbuffers::Offset<Relu6> CreateRelu6(flatbuffers::FlatBufferBuilder &_fbb, const Relu6T *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
1940 
1941 struct PReluT : public flatbuffers::NativeTable {
1942   typedef PRelu TableType;
1943   int32_t slopeCount;
1944   std::vector<float> slope;
PReluTPReluT1945   PReluT()
1946       : slopeCount(0) {
1947   }
1948 };
1949 
1950 struct PRelu FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1951   typedef PReluT NativeTableType;
MiniReflectTypeTableFLATBUFFERS_FINAL_CLASS1952   static const flatbuffers::TypeTable *MiniReflectTypeTable() {
1953     return PReluTypeTable();
1954   }
slopeCountFLATBUFFERS_FINAL_CLASS1955   int32_t slopeCount() const {
1956     return GetField<int32_t>(4, 0);
1957   }
slopeFLATBUFFERS_FINAL_CLASS1958   const flatbuffers::Vector<float> *slope() const {
1959     return GetPointer<const flatbuffers::Vector<float> *>(6);
1960   }
VerifyFLATBUFFERS_FINAL_CLASS1961   bool Verify(flatbuffers::Verifier &verifier) const {
1962     return VerifyTableStart(verifier) &&
1963            VerifyField<int32_t>(verifier, 4) &&
1964            VerifyOffset(verifier, 6) &&
1965            verifier.VerifyVector(slope()) &&
1966            verifier.EndTable();
1967   }
1968   PReluT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
1969   void UnPackTo(PReluT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
1970   static flatbuffers::Offset<PRelu> Pack(flatbuffers::FlatBufferBuilder &_fbb, const PReluT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
1971 };
1972 
1973 struct PReluBuilder {
1974   flatbuffers::FlatBufferBuilder &fbb_;
1975   flatbuffers::uoffset_t start_;
add_slopeCountPReluBuilder1976   void add_slopeCount(int32_t slopeCount) {
1977     fbb_.AddElement<int32_t>(4, slopeCount, 0);
1978   }
add_slopePReluBuilder1979   void add_slope(flatbuffers::Offset<flatbuffers::Vector<float>> slope) {
1980     fbb_.AddOffset(6, slope);
1981   }
PReluBuilderPReluBuilder1982   explicit PReluBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1983         : fbb_(_fbb) {
1984     start_ = fbb_.StartTable();
1985   }
1986   PReluBuilder &operator=(const PReluBuilder &);
FinishPReluBuilder1987   flatbuffers::Offset<PRelu> Finish() {
1988     const auto end = fbb_.EndTable(start_);
1989     auto o = flatbuffers::Offset<PRelu>(end);
1990     return o;
1991   }
1992 };
1993 
1994 inline flatbuffers::Offset<PRelu> CreatePRelu(
1995     flatbuffers::FlatBufferBuilder &_fbb,
1996     int32_t slopeCount = 0,
1997     flatbuffers::Offset<flatbuffers::Vector<float>> slope = 0) {
1998   PReluBuilder builder_(_fbb);
1999   builder_.add_slope(slope);
2000   builder_.add_slopeCount(slopeCount);
2001   return builder_.Finish();
2002 }
2003 
2004 flatbuffers::Offset<PRelu> CreatePRelu(flatbuffers::FlatBufferBuilder &_fbb, const PReluT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
2005 
2006 struct ELUT : public flatbuffers::NativeTable {
2007   typedef ELU TableType;
2008   float alpha;
ELUTELUT2009   ELUT()
2010       : alpha(0.0f) {
2011   }
2012 };
2013 
2014 struct ELU FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2015   typedef ELUT NativeTableType;
MiniReflectTypeTableFLATBUFFERS_FINAL_CLASS2016   static const flatbuffers::TypeTable *MiniReflectTypeTable() {
2017     return ELUTypeTable();
2018   }
alphaFLATBUFFERS_FINAL_CLASS2019   float alpha() const {
2020     return GetField<float>(4, 0.0f);
2021   }
VerifyFLATBUFFERS_FINAL_CLASS2022   bool Verify(flatbuffers::Verifier &verifier) const {
2023     return VerifyTableStart(verifier) &&
2024            VerifyField<float>(verifier, 4) &&
2025            verifier.EndTable();
2026   }
2027   ELUT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
2028   void UnPackTo(ELUT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
2029   static flatbuffers::Offset<ELU> Pack(flatbuffers::FlatBufferBuilder &_fbb, const ELUT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
2030 };
2031 
2032 struct ELUBuilder {
2033   flatbuffers::FlatBufferBuilder &fbb_;
2034   flatbuffers::uoffset_t start_;
add_alphaELUBuilder2035   void add_alpha(float alpha) {
2036     fbb_.AddElement<float>(4, alpha, 0.0f);
2037   }
ELUBuilderELUBuilder2038   explicit ELUBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2039         : fbb_(_fbb) {
2040     start_ = fbb_.StartTable();
2041   }
2042   ELUBuilder &operator=(const ELUBuilder &);
FinishELUBuilder2043   flatbuffers::Offset<ELU> Finish() {
2044     const auto end = fbb_.EndTable(start_);
2045     auto o = flatbuffers::Offset<ELU>(end);
2046     return o;
2047   }
2048 };
2049 
2050 inline flatbuffers::Offset<ELU> CreateELU(
2051     flatbuffers::FlatBufferBuilder &_fbb,
2052     float alpha = 0.0f) {
2053   ELUBuilder builder_(_fbb);
2054   builder_.add_alpha(alpha);
2055   return builder_.Finish();
2056 }
2057 
2058 flatbuffers::Offset<ELU> CreateELU(flatbuffers::FlatBufferBuilder &_fbb, const ELUT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
2059 
2060 struct LRNT : public flatbuffers::NativeTable {
2061   typedef LRN TableType;
2062   int32_t regionType;
2063   int32_t localSize;
2064   float alpha;
2065   float beta;
LRNTLRNT2066   LRNT()
2067       : regionType(0),
2068         localSize(0),
2069         alpha(0.0f),
2070         beta(0.0f) {
2071   }
2072 };
2073 
2074 struct LRN FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2075   typedef LRNT NativeTableType;
MiniReflectTypeTableFLATBUFFERS_FINAL_CLASS2076   static const flatbuffers::TypeTable *MiniReflectTypeTable() {
2077     return LRNTypeTable();
2078   }
regionTypeFLATBUFFERS_FINAL_CLASS2079   int32_t regionType() const {
2080     return GetField<int32_t>(4, 0);
2081   }
localSizeFLATBUFFERS_FINAL_CLASS2082   int32_t localSize() const {
2083     return GetField<int32_t>(6, 0);
2084   }
alphaFLATBUFFERS_FINAL_CLASS2085   float alpha() const {
2086     return GetField<float>(8, 0.0f);
2087   }
betaFLATBUFFERS_FINAL_CLASS2088   float beta() const {
2089     return GetField<float>(10, 0.0f);
2090   }
VerifyFLATBUFFERS_FINAL_CLASS2091   bool Verify(flatbuffers::Verifier &verifier) const {
2092     return VerifyTableStart(verifier) &&
2093            VerifyField<int32_t>(verifier, 4) &&
2094            VerifyField<int32_t>(verifier, 6) &&
2095            VerifyField<float>(verifier, 8) &&
2096            VerifyField<float>(verifier, 10) &&
2097            verifier.EndTable();
2098   }
2099   LRNT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
2100   void UnPackTo(LRNT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
2101   static flatbuffers::Offset<LRN> Pack(flatbuffers::FlatBufferBuilder &_fbb, const LRNT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
2102 };
2103 
2104 struct LRNBuilder {
2105   flatbuffers::FlatBufferBuilder &fbb_;
2106   flatbuffers::uoffset_t start_;
add_regionTypeLRNBuilder2107   void add_regionType(int32_t regionType) {
2108     fbb_.AddElement<int32_t>(4, regionType, 0);
2109   }
add_localSizeLRNBuilder2110   void add_localSize(int32_t localSize) {
2111     fbb_.AddElement<int32_t>(6, localSize, 0);
2112   }
add_alphaLRNBuilder2113   void add_alpha(float alpha) {
2114     fbb_.AddElement<float>(8, alpha, 0.0f);
2115   }
add_betaLRNBuilder2116   void add_beta(float beta) {
2117     fbb_.AddElement<float>(10, beta, 0.0f);
2118   }
LRNBuilderLRNBuilder2119   explicit LRNBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2120         : fbb_(_fbb) {
2121     start_ = fbb_.StartTable();
2122   }
2123   LRNBuilder &operator=(const LRNBuilder &);
FinishLRNBuilder2124   flatbuffers::Offset<LRN> Finish() {
2125     const auto end = fbb_.EndTable(start_);
2126     auto o = flatbuffers::Offset<LRN>(end);
2127     return o;
2128   }
2129 };
2130 
2131 inline flatbuffers::Offset<LRN> CreateLRN(
2132     flatbuffers::FlatBufferBuilder &_fbb,
2133     int32_t regionType = 0,
2134     int32_t localSize = 0,
2135     float alpha = 0.0f,
2136     float beta = 0.0f) {
2137   LRNBuilder builder_(_fbb);
2138   builder_.add_beta(beta);
2139   builder_.add_alpha(alpha);
2140   builder_.add_localSize(localSize);
2141   builder_.add_regionType(regionType);
2142   return builder_.Finish();
2143 }
2144 
2145 flatbuffers::Offset<LRN> CreateLRN(flatbuffers::FlatBufferBuilder &_fbb, const LRNT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
2146 
2147 struct ArgMaxT : public flatbuffers::NativeTable {
2148   typedef ArgMax TableType;
2149   int32_t outMaxVal;
2150   int32_t topK;
2151   int32_t axis;
2152   int32_t softmaxThreshold;
ArgMaxTArgMaxT2153   ArgMaxT()
2154       : outMaxVal(0),
2155         topK(0),
2156         axis(0),
2157         softmaxThreshold(0) {
2158   }
2159 };
2160 
2161 struct ArgMax FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2162   typedef ArgMaxT NativeTableType;
MiniReflectTypeTableFLATBUFFERS_FINAL_CLASS2163   static const flatbuffers::TypeTable *MiniReflectTypeTable() {
2164     return ArgMaxTypeTable();
2165   }
outMaxValFLATBUFFERS_FINAL_CLASS2166   int32_t outMaxVal() const {
2167     return GetField<int32_t>(4, 0);
2168   }
topKFLATBUFFERS_FINAL_CLASS2169   int32_t topK() const {
2170     return GetField<int32_t>(6, 0);
2171   }
axisFLATBUFFERS_FINAL_CLASS2172   int32_t axis() const {
2173     return GetField<int32_t>(8, 0);
2174   }
softmaxThresholdFLATBUFFERS_FINAL_CLASS2175   int32_t softmaxThreshold() const {
2176     return GetField<int32_t>(10, 0);
2177   }
VerifyFLATBUFFERS_FINAL_CLASS2178   bool Verify(flatbuffers::Verifier &verifier) const {
2179     return VerifyTableStart(verifier) &&
2180            VerifyField<int32_t>(verifier, 4) &&
2181            VerifyField<int32_t>(verifier, 6) &&
2182            VerifyField<int32_t>(verifier, 8) &&
2183            VerifyField<int32_t>(verifier, 10) &&
2184            verifier.EndTable();
2185   }
2186   ArgMaxT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
2187   void UnPackTo(ArgMaxT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
2188   static flatbuffers::Offset<ArgMax> Pack(flatbuffers::FlatBufferBuilder &_fbb, const ArgMaxT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
2189 };
2190 
2191 struct ArgMaxBuilder {
2192   flatbuffers::FlatBufferBuilder &fbb_;
2193   flatbuffers::uoffset_t start_;
add_outMaxValArgMaxBuilder2194   void add_outMaxVal(int32_t outMaxVal) {
2195     fbb_.AddElement<int32_t>(4, outMaxVal, 0);
2196   }
add_topKArgMaxBuilder2197   void add_topK(int32_t topK) {
2198     fbb_.AddElement<int32_t>(6, topK, 0);
2199   }
add_axisArgMaxBuilder2200   void add_axis(int32_t axis) {
2201     fbb_.AddElement<int32_t>(8, axis, 0);
2202   }
add_softmaxThresholdArgMaxBuilder2203   void add_softmaxThreshold(int32_t softmaxThreshold) {
2204     fbb_.AddElement<int32_t>(10, softmaxThreshold, 0);
2205   }
ArgMaxBuilderArgMaxBuilder2206   explicit ArgMaxBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2207         : fbb_(_fbb) {
2208     start_ = fbb_.StartTable();
2209   }
2210   ArgMaxBuilder &operator=(const ArgMaxBuilder &);
FinishArgMaxBuilder2211   flatbuffers::Offset<ArgMax> Finish() {
2212     const auto end = fbb_.EndTable(start_);
2213     auto o = flatbuffers::Offset<ArgMax>(end);
2214     return o;
2215   }
2216 };
2217 
2218 inline flatbuffers::Offset<ArgMax> CreateArgMax(
2219     flatbuffers::FlatBufferBuilder &_fbb,
2220     int32_t outMaxVal = 0,
2221     int32_t topK = 0,
2222     int32_t axis = 0,
2223     int32_t softmaxThreshold = 0) {
2224   ArgMaxBuilder builder_(_fbb);
2225   builder_.add_softmaxThreshold(softmaxThreshold);
2226   builder_.add_axis(axis);
2227   builder_.add_topK(topK);
2228   builder_.add_outMaxVal(outMaxVal);
2229   return builder_.Finish();
2230 }
2231 
2232 flatbuffers::Offset<ArgMax> CreateArgMax(flatbuffers::FlatBufferBuilder &_fbb, const ArgMaxT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
2233 
2234 struct AxisT : public flatbuffers::NativeTable {
2235   typedef Axis TableType;
2236   int32_t axis;
AxisTAxisT2237   AxisT()
2238       : axis(0) {
2239   }
2240 };
2241 
2242 struct Axis FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2243   typedef AxisT NativeTableType;
MiniReflectTypeTableFLATBUFFERS_FINAL_CLASS2244   static const flatbuffers::TypeTable *MiniReflectTypeTable() {
2245     return AxisTypeTable();
2246   }
axisFLATBUFFERS_FINAL_CLASS2247   int32_t axis() const {
2248     return GetField<int32_t>(4, 0);
2249   }
VerifyFLATBUFFERS_FINAL_CLASS2250   bool Verify(flatbuffers::Verifier &verifier) const {
2251     return VerifyTableStart(verifier) &&
2252            VerifyField<int32_t>(verifier, 4) &&
2253            verifier.EndTable();
2254   }
2255   AxisT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
2256   void UnPackTo(AxisT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
2257   static flatbuffers::Offset<Axis> Pack(flatbuffers::FlatBufferBuilder &_fbb, const AxisT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
2258 };
2259 
2260 struct AxisBuilder {
2261   flatbuffers::FlatBufferBuilder &fbb_;
2262   flatbuffers::uoffset_t start_;
add_axisAxisBuilder2263   void add_axis(int32_t axis) {
2264     fbb_.AddElement<int32_t>(4, axis, 0);
2265   }
AxisBuilderAxisBuilder2266   explicit AxisBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2267         : fbb_(_fbb) {
2268     start_ = fbb_.StartTable();
2269   }
2270   AxisBuilder &operator=(const AxisBuilder &);
FinishAxisBuilder2271   flatbuffers::Offset<Axis> Finish() {
2272     const auto end = fbb_.EndTable(start_);
2273     auto o = flatbuffers::Offset<Axis>(end);
2274     return o;
2275   }
2276 };
2277 
2278 inline flatbuffers::Offset<Axis> CreateAxis(
2279     flatbuffers::FlatBufferBuilder &_fbb,
2280     int32_t axis = 0) {
2281   AxisBuilder builder_(_fbb);
2282   builder_.add_axis(axis);
2283   return builder_.Finish();
2284 }
2285 
2286 flatbuffers::Offset<Axis> CreateAxis(flatbuffers::FlatBufferBuilder &_fbb, const AxisT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
2287 
2288 struct InputT : public flatbuffers::NativeTable {
2289   typedef Input TableType;
2290   std::vector<int32_t> dims;
2291   DataType dtype;
2292   MNN_DATA_FORMAT dformat;
InputTInputT2293   InputT()
2294       : dtype(DataType_DT_FLOAT),
2295         dformat(MNN_DATA_FORMAT_NC4HW4) {
2296   }
2297 };
2298 
2299 struct Input FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2300   typedef InputT NativeTableType;
MiniReflectTypeTableFLATBUFFERS_FINAL_CLASS2301   static const flatbuffers::TypeTable *MiniReflectTypeTable() {
2302     return InputTypeTable();
2303   }
dimsFLATBUFFERS_FINAL_CLASS2304   const flatbuffers::Vector<int32_t> *dims() const {
2305     return GetPointer<const flatbuffers::Vector<int32_t> *>(4);
2306   }
dtypeFLATBUFFERS_FINAL_CLASS2307   DataType dtype() const {
2308     return static_cast<DataType>(GetField<int32_t>(6, 1));
2309   }
dformatFLATBUFFERS_FINAL_CLASS2310   MNN_DATA_FORMAT dformat() const {
2311     return static_cast<MNN_DATA_FORMAT>(GetField<int8_t>(8, 2));
2312   }
VerifyFLATBUFFERS_FINAL_CLASS2313   bool Verify(flatbuffers::Verifier &verifier) const {
2314     return VerifyTableStart(verifier) &&
2315            VerifyOffset(verifier, 4) &&
2316            verifier.VerifyVector(dims()) &&
2317            VerifyField<int32_t>(verifier, 6) &&
2318            VerifyField<int8_t>(verifier, 8) &&
2319            verifier.EndTable();
2320   }
2321   InputT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
2322   void UnPackTo(InputT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
2323   static flatbuffers::Offset<Input> Pack(flatbuffers::FlatBufferBuilder &_fbb, const InputT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
2324 };
2325 
2326 struct InputBuilder {
2327   flatbuffers::FlatBufferBuilder &fbb_;
2328   flatbuffers::uoffset_t start_;
add_dimsInputBuilder2329   void add_dims(flatbuffers::Offset<flatbuffers::Vector<int32_t>> dims) {
2330     fbb_.AddOffset(4, dims);
2331   }
add_dtypeInputBuilder2332   void add_dtype(DataType dtype) {
2333     fbb_.AddElement<int32_t>(6, static_cast<int32_t>(dtype), 1);
2334   }
add_dformatInputBuilder2335   void add_dformat(MNN_DATA_FORMAT dformat) {
2336     fbb_.AddElement<int8_t>(8, static_cast<int8_t>(dformat), 2);
2337   }
InputBuilderInputBuilder2338   explicit InputBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2339         : fbb_(_fbb) {
2340     start_ = fbb_.StartTable();
2341   }
2342   InputBuilder &operator=(const InputBuilder &);
FinishInputBuilder2343   flatbuffers::Offset<Input> Finish() {
2344     const auto end = fbb_.EndTable(start_);
2345     auto o = flatbuffers::Offset<Input>(end);
2346     return o;
2347   }
2348 };
2349 
2350 inline flatbuffers::Offset<Input> CreateInput(
2351     flatbuffers::FlatBufferBuilder &_fbb,
2352     flatbuffers::Offset<flatbuffers::Vector<int32_t>> dims = 0,
2353     DataType dtype = DataType_DT_FLOAT,
2354     MNN_DATA_FORMAT dformat = MNN_DATA_FORMAT_NC4HW4) {
2355   InputBuilder builder_(_fbb);
2356   builder_.add_dtype(dtype);
2357   builder_.add_dims(dims);
2358   builder_.add_dformat(dformat);
2359   return builder_.Finish();
2360 }
2361 
2362 flatbuffers::Offset<Input> CreateInput(flatbuffers::FlatBufferBuilder &_fbb, const InputT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
2363 
2364 struct LSTMT : public flatbuffers::NativeTable {
2365   typedef LSTM TableType;
2366   int32_t outputCount;
2367   int32_t weightSize;
2368   float clippingThreshold;
2369   std::unique_ptr<BlobT> weightI;
2370   std::unique_ptr<BlobT> weightH;
2371   std::unique_ptr<BlobT> bias;
2372   std::unique_ptr<BlobT> weightIQ;
2373   std::unique_ptr<BlobT> weightIA;
2374   float quantScale;
LSTMTLSTMT2375   LSTMT()
2376       : outputCount(0),
2377         weightSize(0),
2378         clippingThreshold(0.0f),
2379         quantScale(0.0f) {
2380   }
2381 };
2382 
2383 struct LSTM FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2384   typedef LSTMT NativeTableType;
MiniReflectTypeTableFLATBUFFERS_FINAL_CLASS2385   static const flatbuffers::TypeTable *MiniReflectTypeTable() {
2386     return LSTMTypeTable();
2387   }
outputCountFLATBUFFERS_FINAL_CLASS2388   int32_t outputCount() const {
2389     return GetField<int32_t>(4, 0);
2390   }
weightSizeFLATBUFFERS_FINAL_CLASS2391   int32_t weightSize() const {
2392     return GetField<int32_t>(6, 0);
2393   }
clippingThresholdFLATBUFFERS_FINAL_CLASS2394   float clippingThreshold() const {
2395     return GetField<float>(8, 0.0f);
2396   }
weightIFLATBUFFERS_FINAL_CLASS2397   const Blob *weightI() const {
2398     return GetPointer<const Blob *>(10);
2399   }
weightHFLATBUFFERS_FINAL_CLASS2400   const Blob *weightH() const {
2401     return GetPointer<const Blob *>(12);
2402   }
biasFLATBUFFERS_FINAL_CLASS2403   const Blob *bias() const {
2404     return GetPointer<const Blob *>(14);
2405   }
weightIQFLATBUFFERS_FINAL_CLASS2406   const Blob *weightIQ() const {
2407     return GetPointer<const Blob *>(16);
2408   }
weightIAFLATBUFFERS_FINAL_CLASS2409   const Blob *weightIA() const {
2410     return GetPointer<const Blob *>(18);
2411   }
quantScaleFLATBUFFERS_FINAL_CLASS2412   float quantScale() const {
2413     return GetField<float>(20, 0.0f);
2414   }
VerifyFLATBUFFERS_FINAL_CLASS2415   bool Verify(flatbuffers::Verifier &verifier) const {
2416     return VerifyTableStart(verifier) &&
2417            VerifyField<int32_t>(verifier, 4) &&
2418            VerifyField<int32_t>(verifier, 6) &&
2419            VerifyField<float>(verifier, 8) &&
2420            VerifyOffset(verifier, 10) &&
2421            verifier.VerifyTable(weightI()) &&
2422            VerifyOffset(verifier, 12) &&
2423            verifier.VerifyTable(weightH()) &&
2424            VerifyOffset(verifier, 14) &&
2425            verifier.VerifyTable(bias()) &&
2426            VerifyOffset(verifier, 16) &&
2427            verifier.VerifyTable(weightIQ()) &&
2428            VerifyOffset(verifier, 18) &&
2429            verifier.VerifyTable(weightIA()) &&
2430            VerifyField<float>(verifier, 20) &&
2431            verifier.EndTable();
2432   }
2433   LSTMT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
2434   void UnPackTo(LSTMT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
2435   static flatbuffers::Offset<LSTM> Pack(flatbuffers::FlatBufferBuilder &_fbb, const LSTMT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
2436 };
2437 
2438 struct LSTMBuilder {
2439   flatbuffers::FlatBufferBuilder &fbb_;
2440   flatbuffers::uoffset_t start_;
add_outputCountLSTMBuilder2441   void add_outputCount(int32_t outputCount) {
2442     fbb_.AddElement<int32_t>(4, outputCount, 0);
2443   }
add_weightSizeLSTMBuilder2444   void add_weightSize(int32_t weightSize) {
2445     fbb_.AddElement<int32_t>(6, weightSize, 0);
2446   }
add_clippingThresholdLSTMBuilder2447   void add_clippingThreshold(float clippingThreshold) {
2448     fbb_.AddElement<float>(8, clippingThreshold, 0.0f);
2449   }
add_weightILSTMBuilder2450   void add_weightI(flatbuffers::Offset<Blob> weightI) {
2451     fbb_.AddOffset(10, weightI);
2452   }
add_weightHLSTMBuilder2453   void add_weightH(flatbuffers::Offset<Blob> weightH) {
2454     fbb_.AddOffset(12, weightH);
2455   }
add_biasLSTMBuilder2456   void add_bias(flatbuffers::Offset<Blob> bias) {
2457     fbb_.AddOffset(14, bias);
2458   }
add_weightIQLSTMBuilder2459   void add_weightIQ(flatbuffers::Offset<Blob> weightIQ) {
2460     fbb_.AddOffset(16, weightIQ);
2461   }
add_weightIALSTMBuilder2462   void add_weightIA(flatbuffers::Offset<Blob> weightIA) {
2463     fbb_.AddOffset(18, weightIA);
2464   }
add_quantScaleLSTMBuilder2465   void add_quantScale(float quantScale) {
2466     fbb_.AddElement<float>(20, quantScale, 0.0f);
2467   }
LSTMBuilderLSTMBuilder2468   explicit LSTMBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2469         : fbb_(_fbb) {
2470     start_ = fbb_.StartTable();
2471   }
2472   LSTMBuilder &operator=(const LSTMBuilder &);
FinishLSTMBuilder2473   flatbuffers::Offset<LSTM> Finish() {
2474     const auto end = fbb_.EndTable(start_);
2475     auto o = flatbuffers::Offset<LSTM>(end);
2476     return o;
2477   }
2478 };
2479 
2480 inline flatbuffers::Offset<LSTM> CreateLSTM(
2481     flatbuffers::FlatBufferBuilder &_fbb,
2482     int32_t outputCount = 0,
2483     int32_t weightSize = 0,
2484     float clippingThreshold = 0.0f,
2485     flatbuffers::Offset<Blob> weightI = 0,
2486     flatbuffers::Offset<Blob> weightH = 0,
2487     flatbuffers::Offset<Blob> bias = 0,
2488     flatbuffers::Offset<Blob> weightIQ = 0,
2489     flatbuffers::Offset<Blob> weightIA = 0,
2490     float quantScale = 0.0f) {
2491   LSTMBuilder builder_(_fbb);
2492   builder_.add_quantScale(quantScale);
2493   builder_.add_weightIA(weightIA);
2494   builder_.add_weightIQ(weightIQ);
2495   builder_.add_bias(bias);
2496   builder_.add_weightH(weightH);
2497   builder_.add_weightI(weightI);
2498   builder_.add_clippingThreshold(clippingThreshold);
2499   builder_.add_weightSize(weightSize);
2500   builder_.add_outputCount(outputCount);
2501   return builder_.Finish();
2502 }
2503 
2504 flatbuffers::Offset<LSTM> CreateLSTM(flatbuffers::FlatBufferBuilder &_fbb, const LSTMT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
2505 
2506 struct SliceT : public flatbuffers::NativeTable {
2507   typedef Slice TableType;
2508   int32_t axis;
2509   std::vector<int32_t> slicePoints;
2510   NetSource sourceType;
SliceTSliceT2511   SliceT()
2512       : axis(0),
2513         sourceType(NetSource_CAFFE) {
2514   }
2515 };
2516 
2517 struct Slice FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2518   typedef SliceT NativeTableType;
MiniReflectTypeTableFLATBUFFERS_FINAL_CLASS2519   static const flatbuffers::TypeTable *MiniReflectTypeTable() {
2520     return SliceTypeTable();
2521   }
axisFLATBUFFERS_FINAL_CLASS2522   int32_t axis() const {
2523     return GetField<int32_t>(4, 0);
2524   }
slicePointsFLATBUFFERS_FINAL_CLASS2525   const flatbuffers::Vector<int32_t> *slicePoints() const {
2526     return GetPointer<const flatbuffers::Vector<int32_t> *>(6);
2527   }
sourceTypeFLATBUFFERS_FINAL_CLASS2528   NetSource sourceType() const {
2529     return static_cast<NetSource>(GetField<int8_t>(8, 0));
2530   }
VerifyFLATBUFFERS_FINAL_CLASS2531   bool Verify(flatbuffers::Verifier &verifier) const {
2532     return VerifyTableStart(verifier) &&
2533            VerifyField<int32_t>(verifier, 4) &&
2534            VerifyOffset(verifier, 6) &&
2535            verifier.VerifyVector(slicePoints()) &&
2536            VerifyField<int8_t>(verifier, 8) &&
2537            verifier.EndTable();
2538   }
2539   SliceT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
2540   void UnPackTo(SliceT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
2541   static flatbuffers::Offset<Slice> Pack(flatbuffers::FlatBufferBuilder &_fbb, const SliceT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
2542 };
2543 
2544 struct SliceBuilder {
2545   flatbuffers::FlatBufferBuilder &fbb_;
2546   flatbuffers::uoffset_t start_;
add_axisSliceBuilder2547   void add_axis(int32_t axis) {
2548     fbb_.AddElement<int32_t>(4, axis, 0);
2549   }
add_slicePointsSliceBuilder2550   void add_slicePoints(flatbuffers::Offset<flatbuffers::Vector<int32_t>> slicePoints) {
2551     fbb_.AddOffset(6, slicePoints);
2552   }
add_sourceTypeSliceBuilder2553   void add_sourceType(NetSource sourceType) {
2554     fbb_.AddElement<int8_t>(8, static_cast<int8_t>(sourceType), 0);
2555   }
SliceBuilderSliceBuilder2556   explicit SliceBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2557         : fbb_(_fbb) {
2558     start_ = fbb_.StartTable();
2559   }
2560   SliceBuilder &operator=(const SliceBuilder &);
FinishSliceBuilder2561   flatbuffers::Offset<Slice> Finish() {
2562     const auto end = fbb_.EndTable(start_);
2563     auto o = flatbuffers::Offset<Slice>(end);
2564     return o;
2565   }
2566 };
2567 
2568 inline flatbuffers::Offset<Slice> CreateSlice(
2569     flatbuffers::FlatBufferBuilder &_fbb,
2570     int32_t axis = 0,
2571     flatbuffers::Offset<flatbuffers::Vector<int32_t>> slicePoints = 0,
2572     NetSource sourceType = NetSource_CAFFE) {
2573   SliceBuilder builder_(_fbb);
2574   builder_.add_slicePoints(slicePoints);
2575   builder_.add_axis(axis);
2576   builder_.add_sourceType(sourceType);
2577   return builder_.Finish();
2578 }
2579 
2580 flatbuffers::Offset<Slice> CreateSlice(flatbuffers::FlatBufferBuilder &_fbb, const SliceT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
2581 
2582 struct BatchNormT : public flatbuffers::NativeTable {
2583   typedef BatchNorm TableType;
2584   int32_t channels;
2585   std::vector<float> slopeData;
2586   std::vector<float> meanData;
2587   std::vector<float> varData;
2588   std::vector<float> biasData;
2589   std::vector<float> Adata;
2590   std::vector<float> Bdata;
2591   float epsilon;
BatchNormTBatchNormT2592   BatchNormT()
2593       : channels(0),
2594         epsilon(0.001f) {
2595   }
2596 };
2597 
2598 struct BatchNorm FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2599   typedef BatchNormT NativeTableType;
MiniReflectTypeTableFLATBUFFERS_FINAL_CLASS2600   static const flatbuffers::TypeTable *MiniReflectTypeTable() {
2601     return BatchNormTypeTable();
2602   }
channelsFLATBUFFERS_FINAL_CLASS2603   int32_t channels() const {
2604     return GetField<int32_t>(4, 0);
2605   }
slopeDataFLATBUFFERS_FINAL_CLASS2606   const flatbuffers::Vector<float> *slopeData() const {
2607     return GetPointer<const flatbuffers::Vector<float> *>(6);
2608   }
meanDataFLATBUFFERS_FINAL_CLASS2609   const flatbuffers::Vector<float> *meanData() const {
2610     return GetPointer<const flatbuffers::Vector<float> *>(8);
2611   }
varDataFLATBUFFERS_FINAL_CLASS2612   const flatbuffers::Vector<float> *varData() const {
2613     return GetPointer<const flatbuffers::Vector<float> *>(10);
2614   }
biasDataFLATBUFFERS_FINAL_CLASS2615   const flatbuffers::Vector<float> *biasData() const {
2616     return GetPointer<const flatbuffers::Vector<float> *>(12);
2617   }
AdataFLATBUFFERS_FINAL_CLASS2618   const flatbuffers::Vector<float> *Adata() const {
2619     return GetPointer<const flatbuffers::Vector<float> *>(14);
2620   }
BdataFLATBUFFERS_FINAL_CLASS2621   const flatbuffers::Vector<float> *Bdata() const {
2622     return GetPointer<const flatbuffers::Vector<float> *>(16);
2623   }
epsilonFLATBUFFERS_FINAL_CLASS2624   float epsilon() const {
2625     return GetField<float>(18, 0.001f);
2626   }
VerifyFLATBUFFERS_FINAL_CLASS2627   bool Verify(flatbuffers::Verifier &verifier) const {
2628     return VerifyTableStart(verifier) &&
2629            VerifyField<int32_t>(verifier, 4) &&
2630            VerifyOffset(verifier, 6) &&
2631            verifier.VerifyVector(slopeData()) &&
2632            VerifyOffset(verifier, 8) &&
2633            verifier.VerifyVector(meanData()) &&
2634            VerifyOffset(verifier, 10) &&
2635            verifier.VerifyVector(varData()) &&
2636            VerifyOffset(verifier, 12) &&
2637            verifier.VerifyVector(biasData()) &&
2638            VerifyOffset(verifier, 14) &&
2639            verifier.VerifyVector(Adata()) &&
2640            VerifyOffset(verifier, 16) &&
2641            verifier.VerifyVector(Bdata()) &&
2642            VerifyField<float>(verifier, 18) &&
2643            verifier.EndTable();
2644   }
2645   BatchNormT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
2646   void UnPackTo(BatchNormT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
2647   static flatbuffers::Offset<BatchNorm> Pack(flatbuffers::FlatBufferBuilder &_fbb, const BatchNormT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
2648 };
2649 
2650 struct BatchNormBuilder {
2651   flatbuffers::FlatBufferBuilder &fbb_;
2652   flatbuffers::uoffset_t start_;
add_channelsBatchNormBuilder2653   void add_channels(int32_t channels) {
2654     fbb_.AddElement<int32_t>(4, channels, 0);
2655   }
add_slopeDataBatchNormBuilder2656   void add_slopeData(flatbuffers::Offset<flatbuffers::Vector<float>> slopeData) {
2657     fbb_.AddOffset(6, slopeData);
2658   }
add_meanDataBatchNormBuilder2659   void add_meanData(flatbuffers::Offset<flatbuffers::Vector<float>> meanData) {
2660     fbb_.AddOffset(8, meanData);
2661   }
add_varDataBatchNormBuilder2662   void add_varData(flatbuffers::Offset<flatbuffers::Vector<float>> varData) {
2663     fbb_.AddOffset(10, varData);
2664   }
add_biasDataBatchNormBuilder2665   void add_biasData(flatbuffers::Offset<flatbuffers::Vector<float>> biasData) {
2666     fbb_.AddOffset(12, biasData);
2667   }
add_AdataBatchNormBuilder2668   void add_Adata(flatbuffers::Offset<flatbuffers::Vector<float>> Adata) {
2669     fbb_.AddOffset(14, Adata);
2670   }
add_BdataBatchNormBuilder2671   void add_Bdata(flatbuffers::Offset<flatbuffers::Vector<float>> Bdata) {
2672     fbb_.AddOffset(16, Bdata);
2673   }
add_epsilonBatchNormBuilder2674   void add_epsilon(float epsilon) {
2675     fbb_.AddElement<float>(18, epsilon, 0.001f);
2676   }
BatchNormBuilderBatchNormBuilder2677   explicit BatchNormBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2678         : fbb_(_fbb) {
2679     start_ = fbb_.StartTable();
2680   }
2681   BatchNormBuilder &operator=(const BatchNormBuilder &);
FinishBatchNormBuilder2682   flatbuffers::Offset<BatchNorm> Finish() {
2683     const auto end = fbb_.EndTable(start_);
2684     auto o = flatbuffers::Offset<BatchNorm>(end);
2685     return o;
2686   }
2687 };
2688 
2689 inline flatbuffers::Offset<BatchNorm> CreateBatchNorm(
2690     flatbuffers::FlatBufferBuilder &_fbb,
2691     int32_t channels = 0,
2692     flatbuffers::Offset<flatbuffers::Vector<float>> slopeData = 0,
2693     flatbuffers::Offset<flatbuffers::Vector<float>> meanData = 0,
2694     flatbuffers::Offset<flatbuffers::Vector<float>> varData = 0,
2695     flatbuffers::Offset<flatbuffers::Vector<float>> biasData = 0,
2696     flatbuffers::Offset<flatbuffers::Vector<float>> Adata = 0,
2697     flatbuffers::Offset<flatbuffers::Vector<float>> Bdata = 0,
2698     float epsilon = 0.001f) {
2699   BatchNormBuilder builder_(_fbb);
2700   builder_.add_epsilon(epsilon);
2701   builder_.add_Bdata(Bdata);
2702   builder_.add_Adata(Adata);
2703   builder_.add_biasData(biasData);
2704   builder_.add_varData(varData);
2705   builder_.add_meanData(meanData);
2706   builder_.add_slopeData(slopeData);
2707   builder_.add_channels(channels);
2708   return builder_.Finish();
2709 }
2710 
2711 flatbuffers::Offset<BatchNorm> CreateBatchNorm(flatbuffers::FlatBufferBuilder &_fbb, const BatchNormT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
2712 
2713 struct ScaleT : public flatbuffers::NativeTable {
2714   typedef Scale TableType;
2715   int32_t channels;
2716   std::vector<float> scaleData;
2717   std::vector<float> biasData;
ScaleTScaleT2718   ScaleT()
2719       : channels(0) {
2720   }
2721 };
2722 
2723 struct Scale FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2724   typedef ScaleT NativeTableType;
MiniReflectTypeTableFLATBUFFERS_FINAL_CLASS2725   static const flatbuffers::TypeTable *MiniReflectTypeTable() {
2726     return ScaleTypeTable();
2727   }
channelsFLATBUFFERS_FINAL_CLASS2728   int32_t channels() const {
2729     return GetField<int32_t>(4, 0);
2730   }
scaleDataFLATBUFFERS_FINAL_CLASS2731   const flatbuffers::Vector<float> *scaleData() const {
2732     return GetPointer<const flatbuffers::Vector<float> *>(6);
2733   }
biasDataFLATBUFFERS_FINAL_CLASS2734   const flatbuffers::Vector<float> *biasData() const {
2735     return GetPointer<const flatbuffers::Vector<float> *>(8);
2736   }
VerifyFLATBUFFERS_FINAL_CLASS2737   bool Verify(flatbuffers::Verifier &verifier) const {
2738     return VerifyTableStart(verifier) &&
2739            VerifyField<int32_t>(verifier, 4) &&
2740            VerifyOffset(verifier, 6) &&
2741            verifier.VerifyVector(scaleData()) &&
2742            VerifyOffset(verifier, 8) &&
2743            verifier.VerifyVector(biasData()) &&
2744            verifier.EndTable();
2745   }
2746   ScaleT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
2747   void UnPackTo(ScaleT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
2748   static flatbuffers::Offset<Scale> Pack(flatbuffers::FlatBufferBuilder &_fbb, const ScaleT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
2749 };
2750 
2751 struct ScaleBuilder {
2752   flatbuffers::FlatBufferBuilder &fbb_;
2753   flatbuffers::uoffset_t start_;
add_channelsScaleBuilder2754   void add_channels(int32_t channels) {
2755     fbb_.AddElement<int32_t>(4, channels, 0);
2756   }
add_scaleDataScaleBuilder2757   void add_scaleData(flatbuffers::Offset<flatbuffers::Vector<float>> scaleData) {
2758     fbb_.AddOffset(6, scaleData);
2759   }
add_biasDataScaleBuilder2760   void add_biasData(flatbuffers::Offset<flatbuffers::Vector<float>> biasData) {
2761     fbb_.AddOffset(8, biasData);
2762   }
ScaleBuilderScaleBuilder2763   explicit ScaleBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2764         : fbb_(_fbb) {
2765     start_ = fbb_.StartTable();
2766   }
2767   ScaleBuilder &operator=(const ScaleBuilder &);
FinishScaleBuilder2768   flatbuffers::Offset<Scale> Finish() {
2769     const auto end = fbb_.EndTable(start_);
2770     auto o = flatbuffers::Offset<Scale>(end);
2771     return o;
2772   }
2773 };
2774 
2775 inline flatbuffers::Offset<Scale> CreateScale(
2776     flatbuffers::FlatBufferBuilder &_fbb,
2777     int32_t channels = 0,
2778     flatbuffers::Offset<flatbuffers::Vector<float>> scaleData = 0,
2779     flatbuffers::Offset<flatbuffers::Vector<float>> biasData = 0) {
2780   ScaleBuilder builder_(_fbb);
2781   builder_.add_biasData(biasData);
2782   builder_.add_scaleData(scaleData);
2783   builder_.add_channels(channels);
2784   return builder_.Finish();
2785 }
2786 
2787 flatbuffers::Offset<Scale> CreateScale(flatbuffers::FlatBufferBuilder &_fbb, const ScaleT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
2788 
2789 struct EltwiseT : public flatbuffers::NativeTable {
2790   typedef Eltwise TableType;
2791   EltwiseType type;
2792   std::vector<float> coeff;
EltwiseTEltwiseT2793   EltwiseT()
2794       : type(EltwiseType_PROD) {
2795   }
2796 };
2797 
2798 struct Eltwise FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2799   typedef EltwiseT NativeTableType;
MiniReflectTypeTableFLATBUFFERS_FINAL_CLASS2800   static const flatbuffers::TypeTable *MiniReflectTypeTable() {
2801     return EltwiseTypeTable();
2802   }
typeFLATBUFFERS_FINAL_CLASS2803   EltwiseType type() const {
2804     return static_cast<EltwiseType>(GetField<int8_t>(4, 0));
2805   }
coeffFLATBUFFERS_FINAL_CLASS2806   const flatbuffers::Vector<float> *coeff() const {
2807     return GetPointer<const flatbuffers::Vector<float> *>(6);
2808   }
VerifyFLATBUFFERS_FINAL_CLASS2809   bool Verify(flatbuffers::Verifier &verifier) const {
2810     return VerifyTableStart(verifier) &&
2811            VerifyField<int8_t>(verifier, 4) &&
2812            VerifyOffset(verifier, 6) &&
2813            verifier.VerifyVector(coeff()) &&
2814            verifier.EndTable();
2815   }
2816   EltwiseT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
2817   void UnPackTo(EltwiseT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
2818   static flatbuffers::Offset<Eltwise> Pack(flatbuffers::FlatBufferBuilder &_fbb, const EltwiseT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
2819 };
2820 
2821 struct EltwiseBuilder {
2822   flatbuffers::FlatBufferBuilder &fbb_;
2823   flatbuffers::uoffset_t start_;
add_typeEltwiseBuilder2824   void add_type(EltwiseType type) {
2825     fbb_.AddElement<int8_t>(4, static_cast<int8_t>(type), 0);
2826   }
add_coeffEltwiseBuilder2827   void add_coeff(flatbuffers::Offset<flatbuffers::Vector<float>> coeff) {
2828     fbb_.AddOffset(6, coeff);
2829   }
EltwiseBuilderEltwiseBuilder2830   explicit EltwiseBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2831         : fbb_(_fbb) {
2832     start_ = fbb_.StartTable();
2833   }
2834   EltwiseBuilder &operator=(const EltwiseBuilder &);
FinishEltwiseBuilder2835   flatbuffers::Offset<Eltwise> Finish() {
2836     const auto end = fbb_.EndTable(start_);
2837     auto o = flatbuffers::Offset<Eltwise>(end);
2838     return o;
2839   }
2840 };
2841 
2842 inline flatbuffers::Offset<Eltwise> CreateEltwise(
2843     flatbuffers::FlatBufferBuilder &_fbb,
2844     EltwiseType type = EltwiseType_PROD,
2845     flatbuffers::Offset<flatbuffers::Vector<float>> coeff = 0) {
2846   EltwiseBuilder builder_(_fbb);
2847   builder_.add_coeff(coeff);
2848   builder_.add_type(type);
2849   return builder_.Finish();
2850 }
2851 
2852 flatbuffers::Offset<Eltwise> CreateEltwise(flatbuffers::FlatBufferBuilder &_fbb, const EltwiseT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
2853 
2854 struct FlattenT : public flatbuffers::NativeTable {
2855   typedef Flatten TableType;
2856   int32_t axis;
2857   int32_t endAxis;
FlattenTFlattenT2858   FlattenT()
2859       : axis(0),
2860         endAxis(0) {
2861   }
2862 };
2863 
2864 struct Flatten FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2865   typedef FlattenT NativeTableType;
MiniReflectTypeTableFLATBUFFERS_FINAL_CLASS2866   static const flatbuffers::TypeTable *MiniReflectTypeTable() {
2867     return FlattenTypeTable();
2868   }
axisFLATBUFFERS_FINAL_CLASS2869   int32_t axis() const {
2870     return GetField<int32_t>(4, 0);
2871   }
endAxisFLATBUFFERS_FINAL_CLASS2872   int32_t endAxis() const {
2873     return GetField<int32_t>(6, 0);
2874   }
VerifyFLATBUFFERS_FINAL_CLASS2875   bool Verify(flatbuffers::Verifier &verifier) const {
2876     return VerifyTableStart(verifier) &&
2877            VerifyField<int32_t>(verifier, 4) &&
2878            VerifyField<int32_t>(verifier, 6) &&
2879            verifier.EndTable();
2880   }
2881   FlattenT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
2882   void UnPackTo(FlattenT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
2883   static flatbuffers::Offset<Flatten> Pack(flatbuffers::FlatBufferBuilder &_fbb, const FlattenT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
2884 };
2885 
2886 struct FlattenBuilder {
2887   flatbuffers::FlatBufferBuilder &fbb_;
2888   flatbuffers::uoffset_t start_;
add_axisFlattenBuilder2889   void add_axis(int32_t axis) {
2890     fbb_.AddElement<int32_t>(4, axis, 0);
2891   }
add_endAxisFlattenBuilder2892   void add_endAxis(int32_t endAxis) {
2893     fbb_.AddElement<int32_t>(6, endAxis, 0);
2894   }
FlattenBuilderFlattenBuilder2895   explicit FlattenBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2896         : fbb_(_fbb) {
2897     start_ = fbb_.StartTable();
2898   }
2899   FlattenBuilder &operator=(const FlattenBuilder &);
FinishFlattenBuilder2900   flatbuffers::Offset<Flatten> Finish() {
2901     const auto end = fbb_.EndTable(start_);
2902     auto o = flatbuffers::Offset<Flatten>(end);
2903     return o;
2904   }
2905 };
2906 
2907 inline flatbuffers::Offset<Flatten> CreateFlatten(
2908     flatbuffers::FlatBufferBuilder &_fbb,
2909     int32_t axis = 0,
2910     int32_t endAxis = 0) {
2911   FlattenBuilder builder_(_fbb);
2912   builder_.add_endAxis(endAxis);
2913   builder_.add_axis(axis);
2914   return builder_.Finish();
2915 }
2916 
2917 flatbuffers::Offset<Flatten> CreateFlatten(flatbuffers::FlatBufferBuilder &_fbb, const FlattenT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
2918 
2919 struct PermuteT : public flatbuffers::NativeTable {
2920   typedef Permute TableType;
2921   std::vector<int32_t> dims;
PermuteTPermuteT2922   PermuteT() {
2923   }
2924 };
2925 
2926 struct Permute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2927   typedef PermuteT NativeTableType;
MiniReflectTypeTableFLATBUFFERS_FINAL_CLASS2928   static const flatbuffers::TypeTable *MiniReflectTypeTable() {
2929     return PermuteTypeTable();
2930   }
dimsFLATBUFFERS_FINAL_CLASS2931   const flatbuffers::Vector<int32_t> *dims() const {
2932     return GetPointer<const flatbuffers::Vector<int32_t> *>(4);
2933   }
VerifyFLATBUFFERS_FINAL_CLASS2934   bool Verify(flatbuffers::Verifier &verifier) const {
2935     return VerifyTableStart(verifier) &&
2936            VerifyOffset(verifier, 4) &&
2937            verifier.VerifyVector(dims()) &&
2938            verifier.EndTable();
2939   }
2940   PermuteT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
2941   void UnPackTo(PermuteT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
2942   static flatbuffers::Offset<Permute> Pack(flatbuffers::FlatBufferBuilder &_fbb, const PermuteT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
2943 };
2944 
2945 struct PermuteBuilder {
2946   flatbuffers::FlatBufferBuilder &fbb_;
2947   flatbuffers::uoffset_t start_;
add_dimsPermuteBuilder2948   void add_dims(flatbuffers::Offset<flatbuffers::Vector<int32_t>> dims) {
2949     fbb_.AddOffset(4, dims);
2950   }
PermuteBuilderPermuteBuilder2951   explicit PermuteBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2952         : fbb_(_fbb) {
2953     start_ = fbb_.StartTable();
2954   }
2955   PermuteBuilder &operator=(const PermuteBuilder &);
FinishPermuteBuilder2956   flatbuffers::Offset<Permute> Finish() {
2957     const auto end = fbb_.EndTable(start_);
2958     auto o = flatbuffers::Offset<Permute>(end);
2959     return o;
2960   }
2961 };
2962 
2963 inline flatbuffers::Offset<Permute> CreatePermute(
2964     flatbuffers::FlatBufferBuilder &_fbb,
2965     flatbuffers::Offset<flatbuffers::Vector<int32_t>> dims = 0) {
2966   PermuteBuilder builder_(_fbb);
2967   builder_.add_dims(dims);
2968   return builder_.Finish();
2969 }
2970 
2971 flatbuffers::Offset<Permute> CreatePermute(flatbuffers::FlatBufferBuilder &_fbb, const PermuteT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
2972 
2973 struct ReshapeT : public flatbuffers::NativeTable {
2974   typedef Reshape TableType;
2975   std::vector<int32_t> dims;
2976   MNN_DATA_FORMAT dimType;
ReshapeTReshapeT2977   ReshapeT()
2978       : dimType(MNN_DATA_FORMAT_NCHW) {
2979   }
2980 };
2981 
2982 struct Reshape FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2983   typedef ReshapeT NativeTableType;
MiniReflectTypeTableFLATBUFFERS_FINAL_CLASS2984   static const flatbuffers::TypeTable *MiniReflectTypeTable() {
2985     return ReshapeTypeTable();
2986   }
dimsFLATBUFFERS_FINAL_CLASS2987   const flatbuffers::Vector<int32_t> *dims() const {
2988     return GetPointer<const flatbuffers::Vector<int32_t> *>(4);
2989   }
dimTypeFLATBUFFERS_FINAL_CLASS2990   MNN_DATA_FORMAT dimType() const {
2991     return static_cast<MNN_DATA_FORMAT>(GetField<int8_t>(6, 0));
2992   }
VerifyFLATBUFFERS_FINAL_CLASS2993   bool Verify(flatbuffers::Verifier &verifier) const {
2994     return VerifyTableStart(verifier) &&
2995            VerifyOffset(verifier, 4) &&
2996            verifier.VerifyVector(dims()) &&
2997            VerifyField<int8_t>(verifier, 6) &&
2998            verifier.EndTable();
2999   }
3000   ReshapeT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
3001   void UnPackTo(ReshapeT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
3002   static flatbuffers::Offset<Reshape> Pack(flatbuffers::FlatBufferBuilder &_fbb, const ReshapeT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
3003 };
3004 
3005 struct ReshapeBuilder {
3006   flatbuffers::FlatBufferBuilder &fbb_;
3007   flatbuffers::uoffset_t start_;
add_dimsReshapeBuilder3008   void add_dims(flatbuffers::Offset<flatbuffers::Vector<int32_t>> dims) {
3009     fbb_.AddOffset(4, dims);
3010   }
add_dimTypeReshapeBuilder3011   void add_dimType(MNN_DATA_FORMAT dimType) {
3012     fbb_.AddElement<int8_t>(6, static_cast<int8_t>(dimType), 0);
3013   }
ReshapeBuilderReshapeBuilder3014   explicit ReshapeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
3015         : fbb_(_fbb) {
3016     start_ = fbb_.StartTable();
3017   }
3018   ReshapeBuilder &operator=(const ReshapeBuilder &);
FinishReshapeBuilder3019   flatbuffers::Offset<Reshape> Finish() {
3020     const auto end = fbb_.EndTable(start_);
3021     auto o = flatbuffers::Offset<Reshape>(end);
3022     return o;
3023   }
3024 };
3025 
3026 inline flatbuffers::Offset<Reshape> CreateReshape(
3027     flatbuffers::FlatBufferBuilder &_fbb,
3028     flatbuffers::Offset<flatbuffers::Vector<int32_t>> dims = 0,
3029     MNN_DATA_FORMAT dimType = MNN_DATA_FORMAT_NCHW) {
3030   ReshapeBuilder builder_(_fbb);
3031   builder_.add_dims(dims);
3032   builder_.add_dimType(dimType);
3033   return builder_.Finish();
3034 }
3035 
3036 flatbuffers::Offset<Reshape> CreateReshape(flatbuffers::FlatBufferBuilder &_fbb, const ReshapeT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
3037 
3038 struct DetectionOutputT : public flatbuffers::NativeTable {
3039   typedef DetectionOutput TableType;
3040   int32_t classCount;
3041   float nmsThresholdold;
3042   int32_t nmsTopK;
3043   int32_t keepTopK;
3044   float confidenceThreshold;
3045   int32_t shareLocation;
3046   int32_t backgroundLable;
3047   int32_t varianceEncodedTarget;
3048   int32_t codeType;
3049   float objectnessScore;
DetectionOutputTDetectionOutputT3050   DetectionOutputT()
3051       : classCount(0),
3052         nmsThresholdold(0.0f),
3053         nmsTopK(0),
3054         keepTopK(0),
3055         confidenceThreshold(0.0f),
3056         shareLocation(0),
3057         backgroundLable(0),
3058         varianceEncodedTarget(0),
3059         codeType(0),
3060         objectnessScore(0.01f) {
3061   }
3062 };
3063 
3064 struct DetectionOutput FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
3065   typedef DetectionOutputT NativeTableType;
MiniReflectTypeTableFLATBUFFERS_FINAL_CLASS3066   static const flatbuffers::TypeTable *MiniReflectTypeTable() {
3067     return DetectionOutputTypeTable();
3068   }
classCountFLATBUFFERS_FINAL_CLASS3069   int32_t classCount() const {
3070     return GetField<int32_t>(4, 0);
3071   }
nmsThresholdoldFLATBUFFERS_FINAL_CLASS3072   float nmsThresholdold() const {
3073     return GetField<float>(6, 0.0f);
3074   }
nmsTopKFLATBUFFERS_FINAL_CLASS3075   int32_t nmsTopK() const {
3076     return GetField<int32_t>(8, 0);
3077   }
keepTopKFLATBUFFERS_FINAL_CLASS3078   int32_t keepTopK() const {
3079     return GetField<int32_t>(10, 0);
3080   }
confidenceThresholdFLATBUFFERS_FINAL_CLASS3081   float confidenceThreshold() const {
3082     return GetField<float>(12, 0.0f);
3083   }
shareLocationFLATBUFFERS_FINAL_CLASS3084   int32_t shareLocation() const {
3085     return GetField<int32_t>(14, 0);
3086   }
backgroundLableFLATBUFFERS_FINAL_CLASS3087   int32_t backgroundLable() const {
3088     return GetField<int32_t>(16, 0);
3089   }
varianceEncodedTargetFLATBUFFERS_FINAL_CLASS3090   int32_t varianceEncodedTarget() const {
3091     return GetField<int32_t>(18, 0);
3092   }
codeTypeFLATBUFFERS_FINAL_CLASS3093   int32_t codeType() const {
3094     return GetField<int32_t>(20, 0);
3095   }
objectnessScoreFLATBUFFERS_FINAL_CLASS3096   float objectnessScore() const {
3097     return GetField<float>(22, 0.01f);
3098   }
VerifyFLATBUFFERS_FINAL_CLASS3099   bool Verify(flatbuffers::Verifier &verifier) const {
3100     return VerifyTableStart(verifier) &&
3101            VerifyField<int32_t>(verifier, 4) &&
3102            VerifyField<float>(verifier, 6) &&
3103            VerifyField<int32_t>(verifier, 8) &&
3104            VerifyField<int32_t>(verifier, 10) &&
3105            VerifyField<float>(verifier, 12) &&
3106            VerifyField<int32_t>(verifier, 14) &&
3107            VerifyField<int32_t>(verifier, 16) &&
3108            VerifyField<int32_t>(verifier, 18) &&
3109            VerifyField<int32_t>(verifier, 20) &&
3110            VerifyField<float>(verifier, 22) &&
3111            verifier.EndTable();
3112   }
3113   DetectionOutputT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
3114   void UnPackTo(DetectionOutputT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
3115   static flatbuffers::Offset<DetectionOutput> Pack(flatbuffers::FlatBufferBuilder &_fbb, const DetectionOutputT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
3116 };
3117 
3118 struct DetectionOutputBuilder {
3119   flatbuffers::FlatBufferBuilder &fbb_;
3120   flatbuffers::uoffset_t start_;
add_classCountDetectionOutputBuilder3121   void add_classCount(int32_t classCount) {
3122     fbb_.AddElement<int32_t>(4, classCount, 0);
3123   }
add_nmsThresholdoldDetectionOutputBuilder3124   void add_nmsThresholdold(float nmsThresholdold) {
3125     fbb_.AddElement<float>(6, nmsThresholdold, 0.0f);
3126   }
add_nmsTopKDetectionOutputBuilder3127   void add_nmsTopK(int32_t nmsTopK) {
3128     fbb_.AddElement<int32_t>(8, nmsTopK, 0);
3129   }
add_keepTopKDetectionOutputBuilder3130   void add_keepTopK(int32_t keepTopK) {
3131     fbb_.AddElement<int32_t>(10, keepTopK, 0);
3132   }
add_confidenceThresholdDetectionOutputBuilder3133   void add_confidenceThreshold(float confidenceThreshold) {
3134     fbb_.AddElement<float>(12, confidenceThreshold, 0.0f);
3135   }
add_shareLocationDetectionOutputBuilder3136   void add_shareLocation(int32_t shareLocation) {
3137     fbb_.AddElement<int32_t>(14, shareLocation, 0);
3138   }
add_backgroundLableDetectionOutputBuilder3139   void add_backgroundLable(int32_t backgroundLable) {
3140     fbb_.AddElement<int32_t>(16, backgroundLable, 0);
3141   }
add_varianceEncodedTargetDetectionOutputBuilder3142   void add_varianceEncodedTarget(int32_t varianceEncodedTarget) {
3143     fbb_.AddElement<int32_t>(18, varianceEncodedTarget, 0);
3144   }
add_codeTypeDetectionOutputBuilder3145   void add_codeType(int32_t codeType) {
3146     fbb_.AddElement<int32_t>(20, codeType, 0);
3147   }
add_objectnessScoreDetectionOutputBuilder3148   void add_objectnessScore(float objectnessScore) {
3149     fbb_.AddElement<float>(22, objectnessScore, 0.01f);
3150   }
DetectionOutputBuilderDetectionOutputBuilder3151   explicit DetectionOutputBuilder(flatbuffers::FlatBufferBuilder &_fbb)
3152         : fbb_(_fbb) {
3153     start_ = fbb_.StartTable();
3154   }
3155   DetectionOutputBuilder &operator=(const DetectionOutputBuilder &);
FinishDetectionOutputBuilder3156   flatbuffers::Offset<DetectionOutput> Finish() {
3157     const auto end = fbb_.EndTable(start_);
3158     auto o = flatbuffers::Offset<DetectionOutput>(end);
3159     return o;
3160   }
3161 };
3162 
3163 inline flatbuffers::Offset<DetectionOutput> CreateDetectionOutput(
3164     flatbuffers::FlatBufferBuilder &_fbb,
3165     int32_t classCount = 0,
3166     float nmsThresholdold = 0.0f,
3167     int32_t nmsTopK = 0,
3168     int32_t keepTopK = 0,
3169     float confidenceThreshold = 0.0f,
3170     int32_t shareLocation = 0,
3171     int32_t backgroundLable = 0,
3172     int32_t varianceEncodedTarget = 0,
3173     int32_t codeType = 0,
3174     float objectnessScore = 0.01f) {
3175   DetectionOutputBuilder builder_(_fbb);
3176   builder_.add_objectnessScore(objectnessScore);
3177   builder_.add_codeType(codeType);
3178   builder_.add_varianceEncodedTarget(varianceEncodedTarget);
3179   builder_.add_backgroundLable(backgroundLable);
3180   builder_.add_shareLocation(shareLocation);
3181   builder_.add_confidenceThreshold(confidenceThreshold);
3182   builder_.add_keepTopK(keepTopK);
3183   builder_.add_nmsTopK(nmsTopK);
3184   builder_.add_nmsThresholdold(nmsThresholdold);
3185   builder_.add_classCount(classCount);
3186   return builder_.Finish();
3187 }
3188 
3189 flatbuffers::Offset<DetectionOutput> CreateDetectionOutput(flatbuffers::FlatBufferBuilder &_fbb, const DetectionOutputT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
3190 
3191 struct RoiPoolingT : public flatbuffers::NativeTable {
3192   typedef RoiPooling TableType;
3193   int32_t pooledWidth;
3194   int32_t pooledHeight;
3195   float spatialScale;
RoiPoolingTRoiPoolingT3196   RoiPoolingT()
3197       : pooledWidth(0),
3198         pooledHeight(0),
3199         spatialScale(0.0f) {
3200   }
3201 };
3202 
3203 struct RoiPooling FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
3204   typedef RoiPoolingT NativeTableType;
MiniReflectTypeTableFLATBUFFERS_FINAL_CLASS3205   static const flatbuffers::TypeTable *MiniReflectTypeTable() {
3206     return RoiPoolingTypeTable();
3207   }
pooledWidthFLATBUFFERS_FINAL_CLASS3208   int32_t pooledWidth() const {
3209     return GetField<int32_t>(4, 0);
3210   }
pooledHeightFLATBUFFERS_FINAL_CLASS3211   int32_t pooledHeight() const {
3212     return GetField<int32_t>(6, 0);
3213   }
spatialScaleFLATBUFFERS_FINAL_CLASS3214   float spatialScale() const {
3215     return GetField<float>(8, 0.0f);
3216   }
VerifyFLATBUFFERS_FINAL_CLASS3217   bool Verify(flatbuffers::Verifier &verifier) const {
3218     return VerifyTableStart(verifier) &&
3219            VerifyField<int32_t>(verifier, 4) &&
3220            VerifyField<int32_t>(verifier, 6) &&
3221            VerifyField<float>(verifier, 8) &&
3222            verifier.EndTable();
3223   }
3224   RoiPoolingT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
3225   void UnPackTo(RoiPoolingT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
3226   static flatbuffers::Offset<RoiPooling> Pack(flatbuffers::FlatBufferBuilder &_fbb, const RoiPoolingT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
3227 };
3228 
3229 struct RoiPoolingBuilder {
3230   flatbuffers::FlatBufferBuilder &fbb_;
3231   flatbuffers::uoffset_t start_;
add_pooledWidthRoiPoolingBuilder3232   void add_pooledWidth(int32_t pooledWidth) {
3233     fbb_.AddElement<int32_t>(4, pooledWidth, 0);
3234   }
add_pooledHeightRoiPoolingBuilder3235   void add_pooledHeight(int32_t pooledHeight) {
3236     fbb_.AddElement<int32_t>(6, pooledHeight, 0);
3237   }
add_spatialScaleRoiPoolingBuilder3238   void add_spatialScale(float spatialScale) {
3239     fbb_.AddElement<float>(8, spatialScale, 0.0f);
3240   }
RoiPoolingBuilderRoiPoolingBuilder3241   explicit RoiPoolingBuilder(flatbuffers::FlatBufferBuilder &_fbb)
3242         : fbb_(_fbb) {
3243     start_ = fbb_.StartTable();
3244   }
3245   RoiPoolingBuilder &operator=(const RoiPoolingBuilder &);
FinishRoiPoolingBuilder3246   flatbuffers::Offset<RoiPooling> Finish() {
3247     const auto end = fbb_.EndTable(start_);
3248     auto o = flatbuffers::Offset<RoiPooling>(end);
3249     return o;
3250   }
3251 };
3252 
3253 inline flatbuffers::Offset<RoiPooling> CreateRoiPooling(
3254     flatbuffers::FlatBufferBuilder &_fbb,
3255     int32_t pooledWidth = 0,
3256     int32_t pooledHeight = 0,
3257     float spatialScale = 0.0f) {
3258   RoiPoolingBuilder builder_(_fbb);
3259   builder_.add_spatialScale(spatialScale);
3260   builder_.add_pooledHeight(pooledHeight);
3261   builder_.add_pooledWidth(pooledWidth);
3262   return builder_.Finish();
3263 }
3264 
3265 flatbuffers::Offset<RoiPooling> CreateRoiPooling(flatbuffers::FlatBufferBuilder &_fbb, const RoiPoolingT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
3266 
3267 struct ProposalT : public flatbuffers::NativeTable {
3268   typedef Proposal TableType;
3269   int32_t featStride;
3270   int32_t baseSize;
3271   int32_t preNmsTopN;
3272   int32_t afterNmsTopN;
3273   float nmsThreshold;
3274   int32_t minSize;
3275   std::unique_ptr<BlobT> ratios;
3276   std::unique_ptr<BlobT> scales;
3277   std::unique_ptr<BlobT> anchors;
ProposalTProposalT3278   ProposalT()
3279       : featStride(0),
3280         baseSize(0),
3281         preNmsTopN(0),
3282         afterNmsTopN(0),
3283         nmsThreshold(0.0f),
3284         minSize(0) {
3285   }
3286 };
3287 
3288 struct Proposal FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
3289   typedef ProposalT NativeTableType;
MiniReflectTypeTableFLATBUFFERS_FINAL_CLASS3290   static const flatbuffers::TypeTable *MiniReflectTypeTable() {
3291     return ProposalTypeTable();
3292   }
featStrideFLATBUFFERS_FINAL_CLASS3293   int32_t featStride() const {
3294     return GetField<int32_t>(4, 0);
3295   }
baseSizeFLATBUFFERS_FINAL_CLASS3296   int32_t baseSize() const {
3297     return GetField<int32_t>(6, 0);
3298   }
preNmsTopNFLATBUFFERS_FINAL_CLASS3299   int32_t preNmsTopN() const {
3300     return GetField<int32_t>(8, 0);
3301   }
afterNmsTopNFLATBUFFERS_FINAL_CLASS3302   int32_t afterNmsTopN() const {
3303     return GetField<int32_t>(10, 0);
3304   }
nmsThresholdFLATBUFFERS_FINAL_CLASS3305   float nmsThreshold() const {
3306     return GetField<float>(12, 0.0f);
3307   }
minSizeFLATBUFFERS_FINAL_CLASS3308   int32_t minSize() const {
3309     return GetField<int32_t>(14, 0);
3310   }
ratiosFLATBUFFERS_FINAL_CLASS3311   const Blob *ratios() const {
3312     return GetPointer<const Blob *>(16);
3313   }
scalesFLATBUFFERS_FINAL_CLASS3314   const Blob *scales() const {
3315     return GetPointer<const Blob *>(18);
3316   }
anchorsFLATBUFFERS_FINAL_CLASS3317   const Blob *anchors() const {
3318     return GetPointer<const Blob *>(20);
3319   }
VerifyFLATBUFFERS_FINAL_CLASS3320   bool Verify(flatbuffers::Verifier &verifier) const {
3321     return VerifyTableStart(verifier) &&
3322            VerifyField<int32_t>(verifier, 4) &&
3323            VerifyField<int32_t>(verifier, 6) &&
3324            VerifyField<int32_t>(verifier, 8) &&
3325            VerifyField<int32_t>(verifier, 10) &&
3326            VerifyField<float>(verifier, 12) &&
3327            VerifyField<int32_t>(verifier, 14) &&
3328            VerifyOffset(verifier, 16) &&
3329            verifier.VerifyTable(ratios()) &&
3330            VerifyOffset(verifier, 18) &&
3331            verifier.VerifyTable(scales()) &&
3332            VerifyOffset(verifier, 20) &&
3333            verifier.VerifyTable(anchors()) &&
3334            verifier.EndTable();
3335   }
3336   ProposalT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
3337   void UnPackTo(ProposalT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
3338   static flatbuffers::Offset<Proposal> Pack(flatbuffers::FlatBufferBuilder &_fbb, const ProposalT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
3339 };
3340 
3341 struct ProposalBuilder {
3342   flatbuffers::FlatBufferBuilder &fbb_;
3343   flatbuffers::uoffset_t start_;
add_featStrideProposalBuilder3344   void add_featStride(int32_t featStride) {
3345     fbb_.AddElement<int32_t>(4, featStride, 0);
3346   }
add_baseSizeProposalBuilder3347   void add_baseSize(int32_t baseSize) {
3348     fbb_.AddElement<int32_t>(6, baseSize, 0);
3349   }
add_preNmsTopNProposalBuilder3350   void add_preNmsTopN(int32_t preNmsTopN) {
3351     fbb_.AddElement<int32_t>(8, preNmsTopN, 0);
3352   }
add_afterNmsTopNProposalBuilder3353   void add_afterNmsTopN(int32_t afterNmsTopN) {
3354     fbb_.AddElement<int32_t>(10, afterNmsTopN, 0);
3355   }
add_nmsThresholdProposalBuilder3356   void add_nmsThreshold(float nmsThreshold) {
3357     fbb_.AddElement<float>(12, nmsThreshold, 0.0f);
3358   }
add_minSizeProposalBuilder3359   void add_minSize(int32_t minSize) {
3360     fbb_.AddElement<int32_t>(14, minSize, 0);
3361   }
add_ratiosProposalBuilder3362   void add_ratios(flatbuffers::Offset<Blob> ratios) {
3363     fbb_.AddOffset(16, ratios);
3364   }
add_scalesProposalBuilder3365   void add_scales(flatbuffers::Offset<Blob> scales) {
3366     fbb_.AddOffset(18, scales);
3367   }
add_anchorsProposalBuilder3368   void add_anchors(flatbuffers::Offset<Blob> anchors) {
3369     fbb_.AddOffset(20, anchors);
3370   }
ProposalBuilderProposalBuilder3371   explicit ProposalBuilder(flatbuffers::FlatBufferBuilder &_fbb)
3372         : fbb_(_fbb) {
3373     start_ = fbb_.StartTable();
3374   }
3375   ProposalBuilder &operator=(const ProposalBuilder &);
FinishProposalBuilder3376   flatbuffers::Offset<Proposal> Finish() {
3377     const auto end = fbb_.EndTable(start_);
3378     auto o = flatbuffers::Offset<Proposal>(end);
3379     return o;
3380   }
3381 };
3382 
3383 inline flatbuffers::Offset<Proposal> CreateProposal(
3384     flatbuffers::FlatBufferBuilder &_fbb,
3385     int32_t featStride = 0,
3386     int32_t baseSize = 0,
3387     int32_t preNmsTopN = 0,
3388     int32_t afterNmsTopN = 0,
3389     float nmsThreshold = 0.0f,
3390     int32_t minSize = 0,
3391     flatbuffers::Offset<Blob> ratios = 0,
3392     flatbuffers::Offset<Blob> scales = 0,
3393     flatbuffers::Offset<Blob> anchors = 0) {
3394   ProposalBuilder builder_(_fbb);
3395   builder_.add_anchors(anchors);
3396   builder_.add_scales(scales);
3397   builder_.add_ratios(ratios);
3398   builder_.add_minSize(minSize);
3399   builder_.add_nmsThreshold(nmsThreshold);
3400   builder_.add_afterNmsTopN(afterNmsTopN);
3401   builder_.add_preNmsTopN(preNmsTopN);
3402   builder_.add_baseSize(baseSize);
3403   builder_.add_featStride(featStride);
3404   return builder_.Finish();
3405 }
3406 
3407 flatbuffers::Offset<Proposal> CreateProposal(flatbuffers::FlatBufferBuilder &_fbb, const ProposalT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
3408 
3409 struct InterpT : public flatbuffers::NativeTable {
3410   typedef Interp TableType;
3411   float widthScale;
3412   float heightScale;
3413   int32_t outputWidth;
3414   int32_t outputHeight;
3415   int32_t resizeType;
3416   bool alignCorners;
3417   bool halfPixelCenters;
3418   float widthOffset;
3419   float heightOffset;
3420   float cubicCoeffA;
3421   CoordinateTransformationMode ctm;
InterpTInterpT3422   InterpT()
3423       : widthScale(0.0f),
3424         heightScale(0.0f),
3425         outputWidth(0),
3426         outputHeight(0),
3427         resizeType(0),
3428         alignCorners(false),
3429         halfPixelCenters(false),
3430         widthOffset(0.0f),
3431         heightOffset(0.0f),
3432         cubicCoeffA(-0.75f),
3433         ctm(CoordinateTransformationMode_NotSet) {
3434   }
3435 };
3436 
3437 struct Interp FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
3438   typedef InterpT NativeTableType;
MiniReflectTypeTableFLATBUFFERS_FINAL_CLASS3439   static const flatbuffers::TypeTable *MiniReflectTypeTable() {
3440     return InterpTypeTable();
3441   }
widthScaleFLATBUFFERS_FINAL_CLASS3442   float widthScale() const {
3443     return GetField<float>(4, 0.0f);
3444   }
heightScaleFLATBUFFERS_FINAL_CLASS3445   float heightScale() const {
3446     return GetField<float>(6, 0.0f);
3447   }
outputWidthFLATBUFFERS_FINAL_CLASS3448   int32_t outputWidth() const {
3449     return GetField<int32_t>(8, 0);
3450   }
outputHeightFLATBUFFERS_FINAL_CLASS3451   int32_t outputHeight() const {
3452     return GetField<int32_t>(10, 0);
3453   }
resizeTypeFLATBUFFERS_FINAL_CLASS3454   int32_t resizeType() const {
3455     return GetField<int32_t>(12, 0);
3456   }
alignCornersFLATBUFFERS_FINAL_CLASS3457   bool alignCorners() const {
3458     return GetField<uint8_t>(14, 0) != 0;
3459   }
halfPixelCentersFLATBUFFERS_FINAL_CLASS3460   bool halfPixelCenters() const {
3461     return GetField<uint8_t>(16, 0) != 0;
3462   }
widthOffsetFLATBUFFERS_FINAL_CLASS3463   float widthOffset() const {
3464     return GetField<float>(18, 0.0f);
3465   }
heightOffsetFLATBUFFERS_FINAL_CLASS3466   float heightOffset() const {
3467     return GetField<float>(20, 0.0f);
3468   }
cubicCoeffAFLATBUFFERS_FINAL_CLASS3469   float cubicCoeffA() const {
3470     return GetField<float>(22, -0.75f);
3471   }
ctmFLATBUFFERS_FINAL_CLASS3472   CoordinateTransformationMode ctm() const {
3473     return static_cast<CoordinateTransformationMode>(GetField<int8_t>(24, 0));
3474   }
VerifyFLATBUFFERS_FINAL_CLASS3475   bool Verify(flatbuffers::Verifier &verifier) const {
3476     return VerifyTableStart(verifier) &&
3477            VerifyField<float>(verifier, 4) &&
3478            VerifyField<float>(verifier, 6) &&
3479            VerifyField<int32_t>(verifier, 8) &&
3480            VerifyField<int32_t>(verifier, 10) &&
3481            VerifyField<int32_t>(verifier, 12) &&
3482            VerifyField<uint8_t>(verifier, 14) &&
3483            VerifyField<uint8_t>(verifier, 16) &&
3484            VerifyField<float>(verifier, 18) &&
3485            VerifyField<float>(verifier, 20) &&
3486            VerifyField<float>(verifier, 22) &&
3487            VerifyField<int8_t>(verifier, 24) &&
3488            verifier.EndTable();
3489   }
3490   InterpT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
3491   void UnPackTo(InterpT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
3492   static flatbuffers::Offset<Interp> Pack(flatbuffers::FlatBufferBuilder &_fbb, const InterpT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
3493 };
3494 
3495 struct InterpBuilder {
3496   flatbuffers::FlatBufferBuilder &fbb_;
3497   flatbuffers::uoffset_t start_;
add_widthScaleInterpBuilder3498   void add_widthScale(float widthScale) {
3499     fbb_.AddElement<float>(4, widthScale, 0.0f);
3500   }
add_heightScaleInterpBuilder3501   void add_heightScale(float heightScale) {
3502     fbb_.AddElement<float>(6, heightScale, 0.0f);
3503   }
add_outputWidthInterpBuilder3504   void add_outputWidth(int32_t outputWidth) {
3505     fbb_.AddElement<int32_t>(8, outputWidth, 0);
3506   }
add_outputHeightInterpBuilder3507   void add_outputHeight(int32_t outputHeight) {
3508     fbb_.AddElement<int32_t>(10, outputHeight, 0);
3509   }
add_resizeTypeInterpBuilder3510   void add_resizeType(int32_t resizeType) {
3511     fbb_.AddElement<int32_t>(12, resizeType, 0);
3512   }
add_alignCornersInterpBuilder3513   void add_alignCorners(bool alignCorners) {
3514     fbb_.AddElement<uint8_t>(14, static_cast<uint8_t>(alignCorners), 0);
3515   }
add_halfPixelCentersInterpBuilder3516   void add_halfPixelCenters(bool halfPixelCenters) {
3517     fbb_.AddElement<uint8_t>(16, static_cast<uint8_t>(halfPixelCenters), 0);
3518   }
add_widthOffsetInterpBuilder3519   void add_widthOffset(float widthOffset) {
3520     fbb_.AddElement<float>(18, widthOffset, 0.0f);
3521   }
add_heightOffsetInterpBuilder3522   void add_heightOffset(float heightOffset) {
3523     fbb_.AddElement<float>(20, heightOffset, 0.0f);
3524   }
add_cubicCoeffAInterpBuilder3525   void add_cubicCoeffA(float cubicCoeffA) {
3526     fbb_.AddElement<float>(22, cubicCoeffA, -0.75f);
3527   }
add_ctmInterpBuilder3528   void add_ctm(CoordinateTransformationMode ctm) {
3529     fbb_.AddElement<int8_t>(24, static_cast<int8_t>(ctm), 0);
3530   }
InterpBuilderInterpBuilder3531   explicit InterpBuilder(flatbuffers::FlatBufferBuilder &_fbb)
3532         : fbb_(_fbb) {
3533     start_ = fbb_.StartTable();
3534   }
3535   InterpBuilder &operator=(const InterpBuilder &);
FinishInterpBuilder3536   flatbuffers::Offset<Interp> Finish() {
3537     const auto end = fbb_.EndTable(start_);
3538     auto o = flatbuffers::Offset<Interp>(end);
3539     return o;
3540   }
3541 };
3542 
3543 inline flatbuffers::Offset<Interp> CreateInterp(
3544     flatbuffers::FlatBufferBuilder &_fbb,
3545     float widthScale = 0.0f,
3546     float heightScale = 0.0f,
3547     int32_t outputWidth = 0,
3548     int32_t outputHeight = 0,
3549     int32_t resizeType = 0,
3550     bool alignCorners = false,
3551     bool halfPixelCenters = false,
3552     float widthOffset = 0.0f,
3553     float heightOffset = 0.0f,
3554     float cubicCoeffA = -0.75f,
3555     CoordinateTransformationMode ctm = CoordinateTransformationMode_NotSet) {
3556   InterpBuilder builder_(_fbb);
3557   builder_.add_cubicCoeffA(cubicCoeffA);
3558   builder_.add_heightOffset(heightOffset);
3559   builder_.add_widthOffset(widthOffset);
3560   builder_.add_resizeType(resizeType);
3561   builder_.add_outputHeight(outputHeight);
3562   builder_.add_outputWidth(outputWidth);
3563   builder_.add_heightScale(heightScale);
3564   builder_.add_widthScale(widthScale);
3565   builder_.add_ctm(ctm);
3566   builder_.add_halfPixelCenters(halfPixelCenters);
3567   builder_.add_alignCorners(alignCorners);
3568   return builder_.Finish();
3569 }
3570 
3571 flatbuffers::Offset<Interp> CreateInterp(flatbuffers::FlatBufferBuilder &_fbb, const InterpT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
3572 
3573 struct ResizeT : public flatbuffers::NativeTable {
3574   typedef Resize TableType;
3575   float xScale;
3576   float yScale;
ResizeTResizeT3577   ResizeT()
3578       : xScale(0.0f),
3579         yScale(0.0f) {
3580   }
3581 };
3582 
3583 struct Resize FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
3584   typedef ResizeT NativeTableType;
MiniReflectTypeTableFLATBUFFERS_FINAL_CLASS3585   static const flatbuffers::TypeTable *MiniReflectTypeTable() {
3586     return ResizeTypeTable();
3587   }
xScaleFLATBUFFERS_FINAL_CLASS3588   float xScale() const {
3589     return GetField<float>(4, 0.0f);
3590   }
yScaleFLATBUFFERS_FINAL_CLASS3591   float yScale() const {
3592     return GetField<float>(6, 0.0f);
3593   }
VerifyFLATBUFFERS_FINAL_CLASS3594   bool Verify(flatbuffers::Verifier &verifier) const {
3595     return VerifyTableStart(verifier) &&
3596            VerifyField<float>(verifier, 4) &&
3597            VerifyField<float>(verifier, 6) &&
3598            verifier.EndTable();
3599   }
3600   ResizeT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
3601   void UnPackTo(ResizeT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
3602   static flatbuffers::Offset<Resize> Pack(flatbuffers::FlatBufferBuilder &_fbb, const ResizeT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
3603 };
3604 
3605 struct ResizeBuilder {
3606   flatbuffers::FlatBufferBuilder &fbb_;
3607   flatbuffers::uoffset_t start_;
add_xScaleResizeBuilder3608   void add_xScale(float xScale) {
3609     fbb_.AddElement<float>(4, xScale, 0.0f);
3610   }
add_yScaleResizeBuilder3611   void add_yScale(float yScale) {
3612     fbb_.AddElement<float>(6, yScale, 0.0f);
3613   }
ResizeBuilderResizeBuilder3614   explicit ResizeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
3615         : fbb_(_fbb) {
3616     start_ = fbb_.StartTable();
3617   }
3618   ResizeBuilder &operator=(const ResizeBuilder &);
FinishResizeBuilder3619   flatbuffers::Offset<Resize> Finish() {
3620     const auto end = fbb_.EndTable(start_);
3621     auto o = flatbuffers::Offset<Resize>(end);
3622     return o;
3623   }
3624 };
3625 
3626 inline flatbuffers::Offset<Resize> CreateResize(
3627     flatbuffers::FlatBufferBuilder &_fbb,
3628     float xScale = 0.0f,
3629     float yScale = 0.0f) {
3630   ResizeBuilder builder_(_fbb);
3631   builder_.add_yScale(yScale);
3632   builder_.add_xScale(xScale);
3633   return builder_.Finish();
3634 }
3635 
3636 flatbuffers::Offset<Resize> CreateResize(flatbuffers::FlatBufferBuilder &_fbb, const ResizeT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
3637 
3638 struct PriorBoxT : public flatbuffers::NativeTable {
3639   typedef PriorBox TableType;
3640   std::vector<float> minSizes;
3641   std::vector<float> maxSizes;
3642   std::vector<float> aspectRatios;
3643   std::vector<float> variances;
3644   bool flip;
3645   bool clip;
3646   int32_t imageWidth;
3647   int32_t imageHeight;
3648   int32_t stepWidth;
3649   int32_t stepHeight;
3650   float offset;
PriorBoxTPriorBoxT3651   PriorBoxT()
3652       : flip(false),
3653         clip(false),
3654         imageWidth(0),
3655         imageHeight(0),
3656         stepWidth(0),
3657         stepHeight(0),
3658         offset(0.0f) {
3659   }
3660 };
3661 
3662 struct PriorBox FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
3663   typedef PriorBoxT NativeTableType;
MiniReflectTypeTableFLATBUFFERS_FINAL_CLASS3664   static const flatbuffers::TypeTable *MiniReflectTypeTable() {
3665     return PriorBoxTypeTable();
3666   }
minSizesFLATBUFFERS_FINAL_CLASS3667   const flatbuffers::Vector<float> *minSizes() const {
3668     return GetPointer<const flatbuffers::Vector<float> *>(4);
3669   }
maxSizesFLATBUFFERS_FINAL_CLASS3670   const flatbuffers::Vector<float> *maxSizes() const {
3671     return GetPointer<const flatbuffers::Vector<float> *>(6);
3672   }
aspectRatiosFLATBUFFERS_FINAL_CLASS3673   const flatbuffers::Vector<float> *aspectRatios() const {
3674     return GetPointer<const flatbuffers::Vector<float> *>(8);
3675   }
variancesFLATBUFFERS_FINAL_CLASS3676   const flatbuffers::Vector<float> *variances() const {
3677     return GetPointer<const flatbuffers::Vector<float> *>(10);
3678   }
flipFLATBUFFERS_FINAL_CLASS3679   bool flip() const {
3680     return GetField<uint8_t>(12, 0) != 0;
3681   }
clipFLATBUFFERS_FINAL_CLASS3682   bool clip() const {
3683     return GetField<uint8_t>(14, 0) != 0;
3684   }
imageWidthFLATBUFFERS_FINAL_CLASS3685   int32_t imageWidth() const {
3686     return GetField<int32_t>(16, 0);
3687   }
imageHeightFLATBUFFERS_FINAL_CLASS3688   int32_t imageHeight() const {
3689     return GetField<int32_t>(18, 0);
3690   }
stepWidthFLATBUFFERS_FINAL_CLASS3691   int32_t stepWidth() const {
3692     return GetField<int32_t>(20, 0);
3693   }
stepHeightFLATBUFFERS_FINAL_CLASS3694   int32_t stepHeight() const {
3695     return GetField<int32_t>(22, 0);
3696   }
offsetFLATBUFFERS_FINAL_CLASS3697   float offset() const {
3698     return GetField<float>(24, 0.0f);
3699   }
VerifyFLATBUFFERS_FINAL_CLASS3700   bool Verify(flatbuffers::Verifier &verifier) const {
3701     return VerifyTableStart(verifier) &&
3702            VerifyOffset(verifier, 4) &&
3703            verifier.VerifyVector(minSizes()) &&
3704            VerifyOffset(verifier, 6) &&
3705            verifier.VerifyVector(maxSizes()) &&
3706            VerifyOffset(verifier, 8) &&
3707            verifier.VerifyVector(aspectRatios()) &&
3708            VerifyOffset(verifier, 10) &&
3709            verifier.VerifyVector(variances()) &&
3710            VerifyField<uint8_t>(verifier, 12) &&
3711            VerifyField<uint8_t>(verifier, 14) &&
3712            VerifyField<int32_t>(verifier, 16) &&
3713            VerifyField<int32_t>(verifier, 18) &&
3714            VerifyField<int32_t>(verifier, 20) &&
3715            VerifyField<int32_t>(verifier, 22) &&
3716            VerifyField<float>(verifier, 24) &&
3717            verifier.EndTable();
3718   }
3719   PriorBoxT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
3720   void UnPackTo(PriorBoxT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
3721   static flatbuffers::Offset<PriorBox> Pack(flatbuffers::FlatBufferBuilder &_fbb, const PriorBoxT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
3722 };
3723 
3724 struct PriorBoxBuilder {
3725   flatbuffers::FlatBufferBuilder &fbb_;
3726   flatbuffers::uoffset_t start_;
add_minSizesPriorBoxBuilder3727   void add_minSizes(flatbuffers::Offset<flatbuffers::Vector<float>> minSizes) {
3728     fbb_.AddOffset(4, minSizes);
3729   }
add_maxSizesPriorBoxBuilder3730   void add_maxSizes(flatbuffers::Offset<flatbuffers::Vector<float>> maxSizes) {
3731     fbb_.AddOffset(6, maxSizes);
3732   }
add_aspectRatiosPriorBoxBuilder3733   void add_aspectRatios(flatbuffers::Offset<flatbuffers::Vector<float>> aspectRatios) {
3734     fbb_.AddOffset(8, aspectRatios);
3735   }
add_variancesPriorBoxBuilder3736   void add_variances(flatbuffers::Offset<flatbuffers::Vector<float>> variances) {
3737     fbb_.AddOffset(10, variances);
3738   }
add_flipPriorBoxBuilder3739   void add_flip(bool flip) {
3740     fbb_.AddElement<uint8_t>(12, static_cast<uint8_t>(flip), 0);
3741   }
add_clipPriorBoxBuilder3742   void add_clip(bool clip) {
3743     fbb_.AddElement<uint8_t>(14, static_cast<uint8_t>(clip), 0);
3744   }
add_imageWidthPriorBoxBuilder3745   void add_imageWidth(int32_t imageWidth) {
3746     fbb_.AddElement<int32_t>(16, imageWidth, 0);
3747   }
add_imageHeightPriorBoxBuilder3748   void add_imageHeight(int32_t imageHeight) {
3749     fbb_.AddElement<int32_t>(18, imageHeight, 0);
3750   }
add_stepWidthPriorBoxBuilder3751   void add_stepWidth(int32_t stepWidth) {
3752     fbb_.AddElement<int32_t>(20, stepWidth, 0);
3753   }
add_stepHeightPriorBoxBuilder3754   void add_stepHeight(int32_t stepHeight) {
3755     fbb_.AddElement<int32_t>(22, stepHeight, 0);
3756   }
add_offsetPriorBoxBuilder3757   void add_offset(float offset) {
3758     fbb_.AddElement<float>(24, offset, 0.0f);
3759   }
PriorBoxBuilderPriorBoxBuilder3760   explicit PriorBoxBuilder(flatbuffers::FlatBufferBuilder &_fbb)
3761         : fbb_(_fbb) {
3762     start_ = fbb_.StartTable();
3763   }
3764   PriorBoxBuilder &operator=(const PriorBoxBuilder &);
FinishPriorBoxBuilder3765   flatbuffers::Offset<PriorBox> Finish() {
3766     const auto end = fbb_.EndTable(start_);
3767     auto o = flatbuffers::Offset<PriorBox>(end);
3768     return o;
3769   }
3770 };
3771 
3772 inline flatbuffers::Offset<PriorBox> CreatePriorBox(
3773     flatbuffers::FlatBufferBuilder &_fbb,
3774     flatbuffers::Offset<flatbuffers::Vector<float>> minSizes = 0,
3775     flatbuffers::Offset<flatbuffers::Vector<float>> maxSizes = 0,
3776     flatbuffers::Offset<flatbuffers::Vector<float>> aspectRatios = 0,
3777     flatbuffers::Offset<flatbuffers::Vector<float>> variances = 0,
3778     bool flip = false,
3779     bool clip = false,
3780     int32_t imageWidth = 0,
3781     int32_t imageHeight = 0,
3782     int32_t stepWidth = 0,
3783     int32_t stepHeight = 0,
3784     float offset = 0.0f) {
3785   PriorBoxBuilder builder_(_fbb);
3786   builder_.add_offset(offset);
3787   builder_.add_stepHeight(stepHeight);
3788   builder_.add_stepWidth(stepWidth);
3789   builder_.add_imageHeight(imageHeight);
3790   builder_.add_imageWidth(imageWidth);
3791   builder_.add_variances(variances);
3792   builder_.add_aspectRatios(aspectRatios);
3793   builder_.add_maxSizes(maxSizes);
3794   builder_.add_minSizes(minSizes);
3795   builder_.add_clip(clip);
3796   builder_.add_flip(flip);
3797   return builder_.Finish();
3798 }
3799 
3800 flatbuffers::Offset<PriorBox> CreatePriorBox(flatbuffers::FlatBufferBuilder &_fbb, const PriorBoxT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
3801 
3802 struct NormalizeT : public flatbuffers::NativeTable {
3803   typedef Normalize TableType;
3804   int32_t acrossSpatial;
3805   int32_t channelShared;
3806   float eps;
3807   std::vector<float> scale;
NormalizeTNormalizeT3808   NormalizeT()
3809       : acrossSpatial(0),
3810         channelShared(0),
3811         eps(0.0f) {
3812   }
3813 };
3814 
3815 struct Normalize FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
3816   typedef NormalizeT NativeTableType;
MiniReflectTypeTableFLATBUFFERS_FINAL_CLASS3817   static const flatbuffers::TypeTable *MiniReflectTypeTable() {
3818     return NormalizeTypeTable();
3819   }
acrossSpatialFLATBUFFERS_FINAL_CLASS3820   int32_t acrossSpatial() const {
3821     return GetField<int32_t>(4, 0);
3822   }
channelSharedFLATBUFFERS_FINAL_CLASS3823   int32_t channelShared() const {
3824     return GetField<int32_t>(6, 0);
3825   }
epsFLATBUFFERS_FINAL_CLASS3826   float eps() const {
3827     return GetField<float>(8, 0.0f);
3828   }
scaleFLATBUFFERS_FINAL_CLASS3829   const flatbuffers::Vector<float> *scale() const {
3830     return GetPointer<const flatbuffers::Vector<float> *>(10);
3831   }
VerifyFLATBUFFERS_FINAL_CLASS3832   bool Verify(flatbuffers::Verifier &verifier) const {
3833     return VerifyTableStart(verifier) &&
3834            VerifyField<int32_t>(verifier, 4) &&
3835            VerifyField<int32_t>(verifier, 6) &&
3836            VerifyField<float>(verifier, 8) &&
3837            VerifyOffset(verifier, 10) &&
3838            verifier.VerifyVector(scale()) &&
3839            verifier.EndTable();
3840   }
3841   NormalizeT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
3842   void UnPackTo(NormalizeT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
3843   static flatbuffers::Offset<Normalize> Pack(flatbuffers::FlatBufferBuilder &_fbb, const NormalizeT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
3844 };
3845 
3846 struct NormalizeBuilder {
3847   flatbuffers::FlatBufferBuilder &fbb_;
3848   flatbuffers::uoffset_t start_;
add_acrossSpatialNormalizeBuilder3849   void add_acrossSpatial(int32_t acrossSpatial) {
3850     fbb_.AddElement<int32_t>(4, acrossSpatial, 0);
3851   }
add_channelSharedNormalizeBuilder3852   void add_channelShared(int32_t channelShared) {
3853     fbb_.AddElement<int32_t>(6, channelShared, 0);
3854   }
add_epsNormalizeBuilder3855   void add_eps(float eps) {
3856     fbb_.AddElement<float>(8, eps, 0.0f);
3857   }
add_scaleNormalizeBuilder3858   void add_scale(flatbuffers::Offset<flatbuffers::Vector<float>> scale) {
3859     fbb_.AddOffset(10, scale);
3860   }
NormalizeBuilderNormalizeBuilder3861   explicit NormalizeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
3862         : fbb_(_fbb) {
3863     start_ = fbb_.StartTable();
3864   }
3865   NormalizeBuilder &operator=(const NormalizeBuilder &);
FinishNormalizeBuilder3866   flatbuffers::Offset<Normalize> Finish() {
3867     const auto end = fbb_.EndTable(start_);
3868     auto o = flatbuffers::Offset<Normalize>(end);
3869     return o;
3870   }
3871 };
3872 
3873 inline flatbuffers::Offset<Normalize> CreateNormalize(
3874     flatbuffers::FlatBufferBuilder &_fbb,
3875     int32_t acrossSpatial = 0,
3876     int32_t channelShared = 0,
3877     float eps = 0.0f,
3878     flatbuffers::Offset<flatbuffers::Vector<float>> scale = 0) {
3879   NormalizeBuilder builder_(_fbb);
3880   builder_.add_scale(scale);
3881   builder_.add_eps(eps);
3882   builder_.add_channelShared(channelShared);
3883   builder_.add_acrossSpatial(acrossSpatial);
3884   return builder_.Finish();
3885 }
3886 
3887 flatbuffers::Offset<Normalize> CreateNormalize(flatbuffers::FlatBufferBuilder &_fbb, const NormalizeT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
3888 
3889 struct EltwiseInt8T : public flatbuffers::NativeTable {
3890   typedef EltwiseInt8 TableType;
3891   EltwiseType type;
3892   std::unique_ptr<QuantizedFloatParamT> inputQuan0;
3893   std::unique_ptr<QuantizedFloatParamT> inputQuan1;
3894   std::unique_ptr<QuantizedFloatParamT> outputQuan;
EltwiseInt8TEltwiseInt8T3895   EltwiseInt8T()
3896       : type(EltwiseType_PROD) {
3897   }
3898 };
3899 
3900 struct EltwiseInt8 FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
3901   typedef EltwiseInt8T NativeTableType;
MiniReflectTypeTableFLATBUFFERS_FINAL_CLASS3902   static const flatbuffers::TypeTable *MiniReflectTypeTable() {
3903     return EltwiseInt8TypeTable();
3904   }
typeFLATBUFFERS_FINAL_CLASS3905   EltwiseType type() const {
3906     return static_cast<EltwiseType>(GetField<int8_t>(4, 0));
3907   }
inputQuan0FLATBUFFERS_FINAL_CLASS3908   const QuantizedFloatParam *inputQuan0() const {
3909     return GetPointer<const QuantizedFloatParam *>(6);
3910   }
inputQuan1FLATBUFFERS_FINAL_CLASS3911   const QuantizedFloatParam *inputQuan1() const {
3912     return GetPointer<const QuantizedFloatParam *>(8);
3913   }
outputQuanFLATBUFFERS_FINAL_CLASS3914   const QuantizedFloatParam *outputQuan() const {
3915     return GetPointer<const QuantizedFloatParam *>(10);
3916   }
VerifyFLATBUFFERS_FINAL_CLASS3917   bool Verify(flatbuffers::Verifier &verifier) const {
3918     return VerifyTableStart(verifier) &&
3919            VerifyField<int8_t>(verifier, 4) &&
3920            VerifyOffset(verifier, 6) &&
3921            verifier.VerifyTable(inputQuan0()) &&
3922            VerifyOffset(verifier, 8) &&
3923            verifier.VerifyTable(inputQuan1()) &&
3924            VerifyOffset(verifier, 10) &&
3925            verifier.VerifyTable(outputQuan()) &&
3926            verifier.EndTable();
3927   }
3928   EltwiseInt8T *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
3929   void UnPackTo(EltwiseInt8T *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
3930   static flatbuffers::Offset<EltwiseInt8> Pack(flatbuffers::FlatBufferBuilder &_fbb, const EltwiseInt8T* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
3931 };
3932 
3933 struct EltwiseInt8Builder {
3934   flatbuffers::FlatBufferBuilder &fbb_;
3935   flatbuffers::uoffset_t start_;
add_typeEltwiseInt8Builder3936   void add_type(EltwiseType type) {
3937     fbb_.AddElement<int8_t>(4, static_cast<int8_t>(type), 0);
3938   }
add_inputQuan0EltwiseInt8Builder3939   void add_inputQuan0(flatbuffers::Offset<QuantizedFloatParam> inputQuan0) {
3940     fbb_.AddOffset(6, inputQuan0);
3941   }
add_inputQuan1EltwiseInt8Builder3942   void add_inputQuan1(flatbuffers::Offset<QuantizedFloatParam> inputQuan1) {
3943     fbb_.AddOffset(8, inputQuan1);
3944   }
add_outputQuanEltwiseInt8Builder3945   void add_outputQuan(flatbuffers::Offset<QuantizedFloatParam> outputQuan) {
3946     fbb_.AddOffset(10, outputQuan);
3947   }
EltwiseInt8BuilderEltwiseInt8Builder3948   explicit EltwiseInt8Builder(flatbuffers::FlatBufferBuilder &_fbb)
3949         : fbb_(_fbb) {
3950     start_ = fbb_.StartTable();
3951   }
3952   EltwiseInt8Builder &operator=(const EltwiseInt8Builder &);
FinishEltwiseInt8Builder3953   flatbuffers::Offset<EltwiseInt8> Finish() {
3954     const auto end = fbb_.EndTable(start_);
3955     auto o = flatbuffers::Offset<EltwiseInt8>(end);
3956     return o;
3957   }
3958 };
3959 
3960 inline flatbuffers::Offset<EltwiseInt8> CreateEltwiseInt8(
3961     flatbuffers::FlatBufferBuilder &_fbb,
3962     EltwiseType type = EltwiseType_PROD,
3963     flatbuffers::Offset<QuantizedFloatParam> inputQuan0 = 0,
3964     flatbuffers::Offset<QuantizedFloatParam> inputQuan1 = 0,
3965     flatbuffers::Offset<QuantizedFloatParam> outputQuan = 0) {
3966   EltwiseInt8Builder builder_(_fbb);
3967   builder_.add_outputQuan(outputQuan);
3968   builder_.add_inputQuan1(inputQuan1);
3969   builder_.add_inputQuan0(inputQuan0);
3970   builder_.add_type(type);
3971   return builder_.Finish();
3972 }
3973 
3974 flatbuffers::Offset<EltwiseInt8> CreateEltwiseInt8(flatbuffers::FlatBufferBuilder &_fbb, const EltwiseInt8T *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
3975 
UnPack(const flatbuffers::resolver_function_t * _resolver)3976 inline Convolution2DCommonT *Convolution2DCommon::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
3977   auto _o = new Convolution2DCommonT();
3978   UnPackTo(_o, _resolver);
3979   return _o;
3980 }
3981 
UnPackTo(Convolution2DCommonT * _o,const flatbuffers::resolver_function_t * _resolver)3982 inline void Convolution2DCommon::UnPackTo(Convolution2DCommonT *_o, const flatbuffers::resolver_function_t *_resolver) const {
3983   (void)_o;
3984   (void)_resolver;
3985   { auto _e = padX(); _o->padX = _e; };
3986   { auto _e = padY(); _o->padY = _e; };
3987   { auto _e = kernelX(); _o->kernelX = _e; };
3988   { auto _e = kernelY(); _o->kernelY = _e; };
3989   { auto _e = strideX(); _o->strideX = _e; };
3990   { auto _e = strideY(); _o->strideY = _e; };
3991   { auto _e = dilateX(); _o->dilateX = _e; };
3992   { auto _e = dilateY(); _o->dilateY = _e; };
3993   { auto _e = padMode(); _o->padMode = _e; };
3994   { auto _e = group(); _o->group = _e; };
3995   { auto _e = outputCount(); _o->outputCount = _e; };
3996   { auto _e = inputCount(); _o->inputCount = _e; };
3997   { auto _e = relu(); _o->relu = _e; };
3998   { auto _e = relu6(); _o->relu6 = _e; };
3999   { auto _e = pads(); if (_e) { _o->pads.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->pads[_i] = _e->Get(_i); } } };
4000   { auto _e = outPads(); if (_e) { _o->outPads.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->outPads[_i] = _e->Get(_i); } } };
4001   { auto _e = hasOutputShape(); _o->hasOutputShape = _e; };
4002 }
4003 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const Convolution2DCommonT * _o,const flatbuffers::rehasher_function_t * _rehasher)4004 inline flatbuffers::Offset<Convolution2DCommon> Convolution2DCommon::Pack(flatbuffers::FlatBufferBuilder &_fbb, const Convolution2DCommonT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
4005   return CreateConvolution2DCommon(_fbb, _o, _rehasher);
4006 }
4007 
CreateConvolution2DCommon(flatbuffers::FlatBufferBuilder & _fbb,const Convolution2DCommonT * _o,const flatbuffers::rehasher_function_t * _rehasher)4008 inline flatbuffers::Offset<Convolution2DCommon> CreateConvolution2DCommon(flatbuffers::FlatBufferBuilder &_fbb, const Convolution2DCommonT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
4009   (void)_rehasher;
4010   (void)_o;
4011   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const Convolution2DCommonT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
4012   auto _padX = _o->padX;
4013   auto _padY = _o->padY;
4014   auto _kernelX = _o->kernelX;
4015   auto _kernelY = _o->kernelY;
4016   auto _strideX = _o->strideX;
4017   auto _strideY = _o->strideY;
4018   auto _dilateX = _o->dilateX;
4019   auto _dilateY = _o->dilateY;
4020   auto _padMode = _o->padMode;
4021   auto _group = _o->group;
4022   auto _outputCount = _o->outputCount;
4023   auto _inputCount = _o->inputCount;
4024   auto _relu = _o->relu;
4025   auto _relu6 = _o->relu6;
4026   auto _pads = _o->pads.size() ? _fbb.CreateVector(_o->pads) : 0;
4027   auto _outPads = _o->outPads.size() ? _fbb.CreateVector(_o->outPads) : 0;
4028   auto _hasOutputShape = _o->hasOutputShape;
4029   return MNN::CreateConvolution2DCommon(
4030       _fbb,
4031       _padX,
4032       _padY,
4033       _kernelX,
4034       _kernelY,
4035       _strideX,
4036       _strideY,
4037       _dilateX,
4038       _dilateY,
4039       _padMode,
4040       _group,
4041       _outputCount,
4042       _inputCount,
4043       _relu,
4044       _relu6,
4045       _pads,
4046       _outPads,
4047       _hasOutputShape);
4048 }
4049 
UnPack(const flatbuffers::resolver_function_t * _resolver)4050 inline Convolution3DCommonT *Convolution3DCommon::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
4051   auto _o = new Convolution3DCommonT();
4052   UnPackTo(_o, _resolver);
4053   return _o;
4054 }
4055 
UnPackTo(Convolution3DCommonT * _o,const flatbuffers::resolver_function_t * _resolver)4056 inline void Convolution3DCommon::UnPackTo(Convolution3DCommonT *_o, const flatbuffers::resolver_function_t *_resolver) const {
4057   (void)_o;
4058   (void)_resolver;
4059   { auto _e = dilates(); if (_e) { _o->dilates.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->dilates[_i] = _e->Get(_i); } } };
4060   { auto _e = strides(); if (_e) { _o->strides.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->strides[_i] = _e->Get(_i); } } };
4061   { auto _e = kernels(); if (_e) { _o->kernels.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->kernels[_i] = _e->Get(_i); } } };
4062   { auto _e = pads(); if (_e) { _o->pads.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->pads[_i] = _e->Get(_i); } } };
4063   { auto _e = padMode(); _o->padMode = _e; };
4064   { auto _e = inputCount(); _o->inputCount = _e; };
4065   { auto _e = outputCount(); _o->outputCount = _e; };
4066   { auto _e = relu(); _o->relu = _e; };
4067   { auto _e = relu6(); _o->relu6 = _e; };
4068 }
4069 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const Convolution3DCommonT * _o,const flatbuffers::rehasher_function_t * _rehasher)4070 inline flatbuffers::Offset<Convolution3DCommon> Convolution3DCommon::Pack(flatbuffers::FlatBufferBuilder &_fbb, const Convolution3DCommonT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
4071   return CreateConvolution3DCommon(_fbb, _o, _rehasher);
4072 }
4073 
CreateConvolution3DCommon(flatbuffers::FlatBufferBuilder & _fbb,const Convolution3DCommonT * _o,const flatbuffers::rehasher_function_t * _rehasher)4074 inline flatbuffers::Offset<Convolution3DCommon> CreateConvolution3DCommon(flatbuffers::FlatBufferBuilder &_fbb, const Convolution3DCommonT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
4075   (void)_rehasher;
4076   (void)_o;
4077   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const Convolution3DCommonT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
4078   auto _dilates = _o->dilates.size() ? _fbb.CreateVector(_o->dilates) : 0;
4079   auto _strides = _o->strides.size() ? _fbb.CreateVector(_o->strides) : 0;
4080   auto _kernels = _o->kernels.size() ? _fbb.CreateVector(_o->kernels) : 0;
4081   auto _pads = _o->pads.size() ? _fbb.CreateVector(_o->pads) : 0;
4082   auto _padMode = _o->padMode;
4083   auto _inputCount = _o->inputCount;
4084   auto _outputCount = _o->outputCount;
4085   auto _relu = _o->relu;
4086   auto _relu6 = _o->relu6;
4087   return MNN::CreateConvolution3DCommon(
4088       _fbb,
4089       _dilates,
4090       _strides,
4091       _kernels,
4092       _pads,
4093       _padMode,
4094       _inputCount,
4095       _outputCount,
4096       _relu,
4097       _relu6);
4098 }
4099 
UnPack(const flatbuffers::resolver_function_t * _resolver)4100 inline SparseCommonT *SparseCommon::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
4101   auto _o = new SparseCommonT();
4102   UnPackTo(_o, _resolver);
4103   return _o;
4104 }
4105 
UnPackTo(SparseCommonT * _o,const flatbuffers::resolver_function_t * _resolver)4106 inline void SparseCommon::UnPackTo(SparseCommonT *_o, const flatbuffers::resolver_function_t *_resolver) const {
4107   (void)_o;
4108   (void)_resolver;
4109   { auto _e = method(); _o->method = _e; };
4110   { auto _e = args(); if (_e) { _o->args.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->args[_i] = std::unique_ptr<AttributeT>(_e->Get(_i)->UnPack(_resolver)); } } };
4111 }
4112 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const SparseCommonT * _o,const flatbuffers::rehasher_function_t * _rehasher)4113 inline flatbuffers::Offset<SparseCommon> SparseCommon::Pack(flatbuffers::FlatBufferBuilder &_fbb, const SparseCommonT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
4114   return CreateSparseCommon(_fbb, _o, _rehasher);
4115 }
4116 
CreateSparseCommon(flatbuffers::FlatBufferBuilder & _fbb,const SparseCommonT * _o,const flatbuffers::rehasher_function_t * _rehasher)4117 inline flatbuffers::Offset<SparseCommon> CreateSparseCommon(flatbuffers::FlatBufferBuilder &_fbb, const SparseCommonT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
4118   (void)_rehasher;
4119   (void)_o;
4120   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const SparseCommonT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
4121   auto _method = _o->method;
4122   auto _args = _o->args.size() ? _fbb.CreateVector<flatbuffers::Offset<Attribute>> (_o->args.size(), [](size_t i, _VectorArgs *__va) { return CreateAttribute(*__va->__fbb, __va->__o->args[i].get(), __va->__rehasher); }, &_va ) : 0;
4123   return MNN::CreateSparseCommon(
4124       _fbb,
4125       _method,
4126       _args);
4127 }
4128 
UnPack(const flatbuffers::resolver_function_t * _resolver)4129 inline IDSTQuanT *IDSTQuan::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
4130   auto _o = new IDSTQuanT();
4131   UnPackTo(_o, _resolver);
4132   return _o;
4133 }
4134 
UnPackTo(IDSTQuanT * _o,const flatbuffers::resolver_function_t * _resolver)4135 inline void IDSTQuan::UnPackTo(IDSTQuanT *_o, const flatbuffers::resolver_function_t *_resolver) const {
4136   (void)_o;
4137   (void)_resolver;
4138   { auto _e = buffer(); if (_e) { _o->buffer.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->buffer[_i] = _e->Get(_i); } } };
4139   { auto _e = alpha(); if (_e) { _o->alpha.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->alpha[_i] = _e->Get(_i); } } };
4140   { auto _e = type(); _o->type = _e; };
4141   { auto _e = useInt32(); _o->useInt32 = _e; };
4142   { auto _e = quantScale(); _o->quantScale = _e; };
4143   { auto _e = scaleIn(); _o->scaleIn = _e; };
4144   { auto _e = scaleOut(); _o->scaleOut = _e; };
4145   { auto _e = aMax(); _o->aMax = _e; };
4146   { auto _e = aMin(); _o->aMin = _e; };
4147   { auto _e = readType(); _o->readType = _e; };
4148   { auto _e = has_scaleInt(); _o->has_scaleInt = _e; };
4149 }
4150 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const IDSTQuanT * _o,const flatbuffers::rehasher_function_t * _rehasher)4151 inline flatbuffers::Offset<IDSTQuan> IDSTQuan::Pack(flatbuffers::FlatBufferBuilder &_fbb, const IDSTQuanT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
4152   return CreateIDSTQuan(_fbb, _o, _rehasher);
4153 }
4154 
CreateIDSTQuan(flatbuffers::FlatBufferBuilder & _fbb,const IDSTQuanT * _o,const flatbuffers::rehasher_function_t * _rehasher)4155 inline flatbuffers::Offset<IDSTQuan> CreateIDSTQuan(flatbuffers::FlatBufferBuilder &_fbb, const IDSTQuanT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
4156   (void)_rehasher;
4157   (void)_o;
4158   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const IDSTQuanT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
4159   auto _buffer = _o->buffer.size() ? _fbb.CreateVector(_o->buffer) : 0;
4160   auto _alpha = _o->alpha.size() ? _fbb.CreateVector(_o->alpha) : 0;
4161   auto _type = _o->type;
4162   auto _useInt32 = _o->useInt32;
4163   auto _quantScale = _o->quantScale;
4164   auto _scaleIn = _o->scaleIn;
4165   auto _scaleOut = _o->scaleOut;
4166   auto _aMax = _o->aMax;
4167   auto _aMin = _o->aMin;
4168   auto _readType = _o->readType;
4169   auto _has_scaleInt = _o->has_scaleInt;
4170   return MNN::CreateIDSTQuan(
4171       _fbb,
4172       _buffer,
4173       _alpha,
4174       _type,
4175       _useInt32,
4176       _quantScale,
4177       _scaleIn,
4178       _scaleOut,
4179       _aMax,
4180       _aMin,
4181       _readType,
4182       _has_scaleInt);
4183 }
4184 
UnPack(const flatbuffers::resolver_function_t * _resolver)4185 inline QuantizedFloatParamT *QuantizedFloatParam::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
4186   auto _o = new QuantizedFloatParamT();
4187   UnPackTo(_o, _resolver);
4188   return _o;
4189 }
4190 
UnPackTo(QuantizedFloatParamT * _o,const flatbuffers::resolver_function_t * _resolver)4191 inline void QuantizedFloatParam::UnPackTo(QuantizedFloatParamT *_o, const flatbuffers::resolver_function_t *_resolver) const {
4192   (void)_o;
4193   (void)_resolver;
4194   { auto _e = weight(); if (_e) { _o->weight.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->weight[_i] = _e->Get(_i); } } };
4195   { auto _e = bias(); if (_e) { _o->bias.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->bias[_i] = _e->Get(_i); } } };
4196   { auto _e = scale(); if (_e) { _o->scale.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->scale[_i] = _e->Get(_i); } } };
4197   { auto _e = tensorScale(); if (_e) { _o->tensorScale.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->tensorScale[_i] = _e->Get(_i); } } };
4198   { auto _e = method(); _o->method = _e; };
4199   { auto _e = nbits(); _o->nbits = _e; };
4200   { auto _e = zeroPoint(); _o->zeroPoint = _e; };
4201   { auto _e = outputZeroPoint(); _o->outputZeroPoint = _e; };
4202   { auto _e = clampMin(); _o->clampMin = _e; };
4203   { auto _e = clampMax(); _o->clampMax = _e; };
4204 }
4205 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const QuantizedFloatParamT * _o,const flatbuffers::rehasher_function_t * _rehasher)4206 inline flatbuffers::Offset<QuantizedFloatParam> QuantizedFloatParam::Pack(flatbuffers::FlatBufferBuilder &_fbb, const QuantizedFloatParamT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
4207   return CreateQuantizedFloatParam(_fbb, _o, _rehasher);
4208 }
4209 
CreateQuantizedFloatParam(flatbuffers::FlatBufferBuilder & _fbb,const QuantizedFloatParamT * _o,const flatbuffers::rehasher_function_t * _rehasher)4210 inline flatbuffers::Offset<QuantizedFloatParam> CreateQuantizedFloatParam(flatbuffers::FlatBufferBuilder &_fbb, const QuantizedFloatParamT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
4211   (void)_rehasher;
4212   (void)_o;
4213   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const QuantizedFloatParamT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
4214   auto _weight = _o->weight.size() ? _fbb.CreateVector(_o->weight) : 0;
4215   auto _bias = _o->bias.size() ? _fbb.CreateVector(_o->bias) : 0;
4216   auto _scale = _o->scale.size() ? _fbb.CreateVector(_o->scale) : 0;
4217   auto _tensorScale = _o->tensorScale.size() ? _fbb.CreateVector(_o->tensorScale) : 0;
4218   auto _method = _o->method;
4219   auto _nbits = _o->nbits;
4220   auto _zeroPoint = _o->zeroPoint;
4221   auto _outputZeroPoint = _o->outputZeroPoint;
4222   auto _clampMin = _o->clampMin;
4223   auto _clampMax = _o->clampMax;
4224   return MNN::CreateQuantizedFloatParam(
4225       _fbb,
4226       _weight,
4227       _bias,
4228       _scale,
4229       _tensorScale,
4230       _method,
4231       _nbits,
4232       _zeroPoint,
4233       _outputZeroPoint,
4234       _clampMin,
4235       _clampMax);
4236 }
4237 
UnPack(const flatbuffers::resolver_function_t * _resolver)4238 inline Convolution2DT *Convolution2D::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
4239   auto _o = new Convolution2DT();
4240   UnPackTo(_o, _resolver);
4241   return _o;
4242 }
4243 
UnPackTo(Convolution2DT * _o,const flatbuffers::resolver_function_t * _resolver)4244 inline void Convolution2D::UnPackTo(Convolution2DT *_o, const flatbuffers::resolver_function_t *_resolver) const {
4245   (void)_o;
4246   (void)_resolver;
4247   { auto _e = common(); if (_e) _o->common = std::unique_ptr<Convolution2DCommonT>(_e->UnPack(_resolver)); };
4248   { auto _e = weight(); if (_e) { _o->weight.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->weight[_i] = _e->Get(_i); } } };
4249   { auto _e = bias(); if (_e) { _o->bias.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->bias[_i] = _e->Get(_i); } } };
4250   { auto _e = quanParameter(); if (_e) _o->quanParameter = std::unique_ptr<IDSTQuanT>(_e->UnPack(_resolver)); };
4251   { auto _e = symmetricQuan(); if (_e) _o->symmetricQuan = std::unique_ptr<QuantizedFloatParamT>(_e->UnPack(_resolver)); };
4252   { auto _e = sparseParameter(); if (_e) _o->sparseParameter = std::unique_ptr<SparseCommonT>(_e->UnPack(_resolver)); };
4253 }
4254 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const Convolution2DT * _o,const flatbuffers::rehasher_function_t * _rehasher)4255 inline flatbuffers::Offset<Convolution2D> Convolution2D::Pack(flatbuffers::FlatBufferBuilder &_fbb, const Convolution2DT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
4256   return CreateConvolution2D(_fbb, _o, _rehasher);
4257 }
4258 
CreateConvolution2D(flatbuffers::FlatBufferBuilder & _fbb,const Convolution2DT * _o,const flatbuffers::rehasher_function_t * _rehasher)4259 inline flatbuffers::Offset<Convolution2D> CreateConvolution2D(flatbuffers::FlatBufferBuilder &_fbb, const Convolution2DT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
4260   (void)_rehasher;
4261   (void)_o;
4262   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const Convolution2DT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
4263   auto _common = _o->common ? CreateConvolution2DCommon(_fbb, _o->common.get(), _rehasher) : 0;
4264   auto _weight = _o->weight.size() ? _fbb.CreateVector(_o->weight) : 0;
4265   auto _bias = _o->bias.size() ? _fbb.CreateVector(_o->bias) : 0;
4266   auto _quanParameter = _o->quanParameter ? CreateIDSTQuan(_fbb, _o->quanParameter.get(), _rehasher) : 0;
4267   auto _symmetricQuan = _o->symmetricQuan ? CreateQuantizedFloatParam(_fbb, _o->symmetricQuan.get(), _rehasher) : 0;
4268   auto _sparseParameter = _o->sparseParameter ? CreateSparseCommon(_fbb, _o->sparseParameter.get(), _rehasher) : 0;
4269   return MNN::CreateConvolution2D(
4270       _fbb,
4271       _common,
4272       _weight,
4273       _bias,
4274       _quanParameter,
4275       _symmetricQuan,
4276       _sparseParameter);
4277 }
4278 
UnPack(const flatbuffers::resolver_function_t * _resolver)4279 inline Convolution3DT *Convolution3D::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
4280   auto _o = new Convolution3DT();
4281   UnPackTo(_o, _resolver);
4282   return _o;
4283 }
4284 
UnPackTo(Convolution3DT * _o,const flatbuffers::resolver_function_t * _resolver)4285 inline void Convolution3D::UnPackTo(Convolution3DT *_o, const flatbuffers::resolver_function_t *_resolver) const {
4286   (void)_o;
4287   (void)_resolver;
4288   { auto _e = common(); if (_e) _o->common = std::unique_ptr<Convolution3DCommonT>(_e->UnPack(_resolver)); };
4289   { auto _e = weight(); if (_e) { _o->weight.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->weight[_i] = _e->Get(_i); } } };
4290   { auto _e = bias(); if (_e) { _o->bias.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->bias[_i] = _e->Get(_i); } } };
4291 }
4292 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const Convolution3DT * _o,const flatbuffers::rehasher_function_t * _rehasher)4293 inline flatbuffers::Offset<Convolution3D> Convolution3D::Pack(flatbuffers::FlatBufferBuilder &_fbb, const Convolution3DT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
4294   return CreateConvolution3D(_fbb, _o, _rehasher);
4295 }
4296 
CreateConvolution3D(flatbuffers::FlatBufferBuilder & _fbb,const Convolution3DT * _o,const flatbuffers::rehasher_function_t * _rehasher)4297 inline flatbuffers::Offset<Convolution3D> CreateConvolution3D(flatbuffers::FlatBufferBuilder &_fbb, const Convolution3DT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
4298   (void)_rehasher;
4299   (void)_o;
4300   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const Convolution3DT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
4301   auto _common = _o->common ? CreateConvolution3DCommon(_fbb, _o->common.get(), _rehasher) : 0;
4302   auto _weight = _o->weight.size() ? _fbb.CreateVector(_o->weight) : 0;
4303   auto _bias = _o->bias.size() ? _fbb.CreateVector(_o->bias) : 0;
4304   return MNN::CreateConvolution3D(
4305       _fbb,
4306       _common,
4307       _weight,
4308       _bias);
4309 }
4310 
UnPack(const flatbuffers::resolver_function_t * _resolver)4311 inline InnerProductT *InnerProduct::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
4312   auto _o = new InnerProductT();
4313   UnPackTo(_o, _resolver);
4314   return _o;
4315 }
4316 
UnPackTo(InnerProductT * _o,const flatbuffers::resolver_function_t * _resolver)4317 inline void InnerProduct::UnPackTo(InnerProductT *_o, const flatbuffers::resolver_function_t *_resolver) const {
4318   (void)_o;
4319   (void)_resolver;
4320   { auto _e = outputCount(); _o->outputCount = _e; };
4321   { auto _e = biasTerm(); _o->biasTerm = _e; };
4322   { auto _e = weightSize(); _o->weightSize = _e; };
4323   { auto _e = weight(); if (_e) { _o->weight.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->weight[_i] = _e->Get(_i); } } };
4324   { auto _e = bias(); if (_e) { _o->bias.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->bias[_i] = _e->Get(_i); } } };
4325   { auto _e = axis(); _o->axis = _e; };
4326   { auto _e = transpose(); _o->transpose = _e; };
4327   { auto _e = quanParameter(); if (_e) _o->quanParameter = std::unique_ptr<IDSTQuanT>(_e->UnPack(_resolver)); };
4328 }
4329 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const InnerProductT * _o,const flatbuffers::rehasher_function_t * _rehasher)4330 inline flatbuffers::Offset<InnerProduct> InnerProduct::Pack(flatbuffers::FlatBufferBuilder &_fbb, const InnerProductT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
4331   return CreateInnerProduct(_fbb, _o, _rehasher);
4332 }
4333 
CreateInnerProduct(flatbuffers::FlatBufferBuilder & _fbb,const InnerProductT * _o,const flatbuffers::rehasher_function_t * _rehasher)4334 inline flatbuffers::Offset<InnerProduct> CreateInnerProduct(flatbuffers::FlatBufferBuilder &_fbb, const InnerProductT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
4335   (void)_rehasher;
4336   (void)_o;
4337   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const InnerProductT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
4338   auto _outputCount = _o->outputCount;
4339   auto _biasTerm = _o->biasTerm;
4340   auto _weightSize = _o->weightSize;
4341   auto _weight = _o->weight.size() ? _fbb.CreateVector(_o->weight) : 0;
4342   auto _bias = _o->bias.size() ? _fbb.CreateVector(_o->bias) : 0;
4343   auto _axis = _o->axis;
4344   auto _transpose = _o->transpose;
4345   auto _quanParameter = _o->quanParameter ? CreateIDSTQuan(_fbb, _o->quanParameter.get(), _rehasher) : 0;
4346   return MNN::CreateInnerProduct(
4347       _fbb,
4348       _outputCount,
4349       _biasTerm,
4350       _weightSize,
4351       _weight,
4352       _bias,
4353       _axis,
4354       _transpose,
4355       _quanParameter);
4356 }
4357 
UnPack(const flatbuffers::resolver_function_t * _resolver)4358 inline PoolT *Pool::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
4359   auto _o = new PoolT();
4360   UnPackTo(_o, _resolver);
4361   return _o;
4362 }
4363 
UnPackTo(PoolT * _o,const flatbuffers::resolver_function_t * _resolver)4364 inline void Pool::UnPackTo(PoolT *_o, const flatbuffers::resolver_function_t *_resolver) const {
4365   (void)_o;
4366   (void)_resolver;
4367   { auto _e = padX(); _o->padX = _e; };
4368   { auto _e = padY(); _o->padY = _e; };
4369   { auto _e = isGlobal(); _o->isGlobal = _e; };
4370   { auto _e = kernelX(); _o->kernelX = _e; };
4371   { auto _e = kernelY(); _o->kernelY = _e; };
4372   { auto _e = strideX(); _o->strideX = _e; };
4373   { auto _e = strideY(); _o->strideY = _e; };
4374   { auto _e = type(); _o->type = _e; };
4375   { auto _e = padType(); _o->padType = _e; };
4376   { auto _e = dataType(); _o->dataType = _e; };
4377   { auto _e = ceilModel(); _o->ceilModel = _e; };
4378   { auto _e = pads(); if (_e) { _o->pads.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->pads[_i] = _e->Get(_i); } } };
4379   { auto _e = countType(); _o->countType = _e; };
4380 }
4381 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const PoolT * _o,const flatbuffers::rehasher_function_t * _rehasher)4382 inline flatbuffers::Offset<Pool> Pool::Pack(flatbuffers::FlatBufferBuilder &_fbb, const PoolT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
4383   return CreatePool(_fbb, _o, _rehasher);
4384 }
4385 
CreatePool(flatbuffers::FlatBufferBuilder & _fbb,const PoolT * _o,const flatbuffers::rehasher_function_t * _rehasher)4386 inline flatbuffers::Offset<Pool> CreatePool(flatbuffers::FlatBufferBuilder &_fbb, const PoolT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
4387   (void)_rehasher;
4388   (void)_o;
4389   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const PoolT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
4390   auto _padX = _o->padX;
4391   auto _padY = _o->padY;
4392   auto _isGlobal = _o->isGlobal;
4393   auto _kernelX = _o->kernelX;
4394   auto _kernelY = _o->kernelY;
4395   auto _strideX = _o->strideX;
4396   auto _strideY = _o->strideY;
4397   auto _type = _o->type;
4398   auto _padType = _o->padType;
4399   auto _dataType = _o->dataType;
4400   auto _ceilModel = _o->ceilModel;
4401   auto _pads = _o->pads.size() ? _fbb.CreateVector(_o->pads) : 0;
4402   auto _countType = _o->countType;
4403   return MNN::CreatePool(
4404       _fbb,
4405       _padX,
4406       _padY,
4407       _isGlobal,
4408       _kernelX,
4409       _kernelY,
4410       _strideX,
4411       _strideY,
4412       _type,
4413       _padType,
4414       _dataType,
4415       _ceilModel,
4416       _pads,
4417       _countType);
4418 }
4419 
UnPack(const flatbuffers::resolver_function_t * _resolver)4420 inline Pool3DT *Pool3D::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
4421   auto _o = new Pool3DT();
4422   UnPackTo(_o, _resolver);
4423   return _o;
4424 }
4425 
UnPackTo(Pool3DT * _o,const flatbuffers::resolver_function_t * _resolver)4426 inline void Pool3D::UnPackTo(Pool3DT *_o, const flatbuffers::resolver_function_t *_resolver) const {
4427   (void)_o;
4428   (void)_resolver;
4429   { auto _e = strides(); if (_e) { _o->strides.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->strides[_i] = _e->Get(_i); } } };
4430   { auto _e = kernels(); if (_e) { _o->kernels.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->kernels[_i] = _e->Get(_i); } } };
4431   { auto _e = pads(); if (_e) { _o->pads.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->pads[_i] = _e->Get(_i); } } };
4432   { auto _e = type(); _o->type = _e; };
4433   { auto _e = padType(); _o->padType = _e; };
4434   { auto _e = isGlobal(); _o->isGlobal = _e; };
4435 }
4436 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const Pool3DT * _o,const flatbuffers::rehasher_function_t * _rehasher)4437 inline flatbuffers::Offset<Pool3D> Pool3D::Pack(flatbuffers::FlatBufferBuilder &_fbb, const Pool3DT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
4438   return CreatePool3D(_fbb, _o, _rehasher);
4439 }
4440 
CreatePool3D(flatbuffers::FlatBufferBuilder & _fbb,const Pool3DT * _o,const flatbuffers::rehasher_function_t * _rehasher)4441 inline flatbuffers::Offset<Pool3D> CreatePool3D(flatbuffers::FlatBufferBuilder &_fbb, const Pool3DT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
4442   (void)_rehasher;
4443   (void)_o;
4444   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const Pool3DT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
4445   auto _strides = _o->strides.size() ? _fbb.CreateVector(_o->strides) : 0;
4446   auto _kernels = _o->kernels.size() ? _fbb.CreateVector(_o->kernels) : 0;
4447   auto _pads = _o->pads.size() ? _fbb.CreateVector(_o->pads) : 0;
4448   auto _type = _o->type;
4449   auto _padType = _o->padType;
4450   auto _isGlobal = _o->isGlobal;
4451   return MNN::CreatePool3D(
4452       _fbb,
4453       _strides,
4454       _kernels,
4455       _pads,
4456       _type,
4457       _padType,
4458       _isGlobal);
4459 }
4460 
UnPack(const flatbuffers::resolver_function_t * _resolver)4461 inline ReluT *Relu::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
4462   auto _o = new ReluT();
4463   UnPackTo(_o, _resolver);
4464   return _o;
4465 }
4466 
UnPackTo(ReluT * _o,const flatbuffers::resolver_function_t * _resolver)4467 inline void Relu::UnPackTo(ReluT *_o, const flatbuffers::resolver_function_t *_resolver) const {
4468   (void)_o;
4469   (void)_resolver;
4470   { auto _e = slope(); _o->slope = _e; };
4471 }
4472 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const ReluT * _o,const flatbuffers::rehasher_function_t * _rehasher)4473 inline flatbuffers::Offset<Relu> Relu::Pack(flatbuffers::FlatBufferBuilder &_fbb, const ReluT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
4474   return CreateRelu(_fbb, _o, _rehasher);
4475 }
4476 
CreateRelu(flatbuffers::FlatBufferBuilder & _fbb,const ReluT * _o,const flatbuffers::rehasher_function_t * _rehasher)4477 inline flatbuffers::Offset<Relu> CreateRelu(flatbuffers::FlatBufferBuilder &_fbb, const ReluT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
4478   (void)_rehasher;
4479   (void)_o;
4480   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const ReluT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
4481   auto _slope = _o->slope;
4482   return MNN::CreateRelu(
4483       _fbb,
4484       _slope);
4485 }
4486 
UnPack(const flatbuffers::resolver_function_t * _resolver)4487 inline Relu6T *Relu6::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
4488   auto _o = new Relu6T();
4489   UnPackTo(_o, _resolver);
4490   return _o;
4491 }
4492 
UnPackTo(Relu6T * _o,const flatbuffers::resolver_function_t * _resolver)4493 inline void Relu6::UnPackTo(Relu6T *_o, const flatbuffers::resolver_function_t *_resolver) const {
4494   (void)_o;
4495   (void)_resolver;
4496   { auto _e = minValue(); _o->minValue = _e; };
4497   { auto _e = maxValue(); _o->maxValue = _e; };
4498 }
4499 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const Relu6T * _o,const flatbuffers::rehasher_function_t * _rehasher)4500 inline flatbuffers::Offset<Relu6> Relu6::Pack(flatbuffers::FlatBufferBuilder &_fbb, const Relu6T* _o, const flatbuffers::rehasher_function_t *_rehasher) {
4501   return CreateRelu6(_fbb, _o, _rehasher);
4502 }
4503 
CreateRelu6(flatbuffers::FlatBufferBuilder & _fbb,const Relu6T * _o,const flatbuffers::rehasher_function_t * _rehasher)4504 inline flatbuffers::Offset<Relu6> CreateRelu6(flatbuffers::FlatBufferBuilder &_fbb, const Relu6T *_o, const flatbuffers::rehasher_function_t *_rehasher) {
4505   (void)_rehasher;
4506   (void)_o;
4507   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const Relu6T* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
4508   auto _minValue = _o->minValue;
4509   auto _maxValue = _o->maxValue;
4510   return MNN::CreateRelu6(
4511       _fbb,
4512       _minValue,
4513       _maxValue);
4514 }
4515 
UnPack(const flatbuffers::resolver_function_t * _resolver)4516 inline PReluT *PRelu::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
4517   auto _o = new PReluT();
4518   UnPackTo(_o, _resolver);
4519   return _o;
4520 }
4521 
UnPackTo(PReluT * _o,const flatbuffers::resolver_function_t * _resolver)4522 inline void PRelu::UnPackTo(PReluT *_o, const flatbuffers::resolver_function_t *_resolver) const {
4523   (void)_o;
4524   (void)_resolver;
4525   { auto _e = slopeCount(); _o->slopeCount = _e; };
4526   { auto _e = slope(); if (_e) { _o->slope.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->slope[_i] = _e->Get(_i); } } };
4527 }
4528 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const PReluT * _o,const flatbuffers::rehasher_function_t * _rehasher)4529 inline flatbuffers::Offset<PRelu> PRelu::Pack(flatbuffers::FlatBufferBuilder &_fbb, const PReluT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
4530   return CreatePRelu(_fbb, _o, _rehasher);
4531 }
4532 
CreatePRelu(flatbuffers::FlatBufferBuilder & _fbb,const PReluT * _o,const flatbuffers::rehasher_function_t * _rehasher)4533 inline flatbuffers::Offset<PRelu> CreatePRelu(flatbuffers::FlatBufferBuilder &_fbb, const PReluT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
4534   (void)_rehasher;
4535   (void)_o;
4536   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const PReluT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
4537   auto _slopeCount = _o->slopeCount;
4538   auto _slope = _o->slope.size() ? _fbb.CreateVector(_o->slope) : 0;
4539   return MNN::CreatePRelu(
4540       _fbb,
4541       _slopeCount,
4542       _slope);
4543 }
4544 
UnPack(const flatbuffers::resolver_function_t * _resolver)4545 inline ELUT *ELU::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
4546   auto _o = new ELUT();
4547   UnPackTo(_o, _resolver);
4548   return _o;
4549 }
4550 
UnPackTo(ELUT * _o,const flatbuffers::resolver_function_t * _resolver)4551 inline void ELU::UnPackTo(ELUT *_o, const flatbuffers::resolver_function_t *_resolver) const {
4552   (void)_o;
4553   (void)_resolver;
4554   { auto _e = alpha(); _o->alpha = _e; };
4555 }
4556 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const ELUT * _o,const flatbuffers::rehasher_function_t * _rehasher)4557 inline flatbuffers::Offset<ELU> ELU::Pack(flatbuffers::FlatBufferBuilder &_fbb, const ELUT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
4558   return CreateELU(_fbb, _o, _rehasher);
4559 }
4560 
CreateELU(flatbuffers::FlatBufferBuilder & _fbb,const ELUT * _o,const flatbuffers::rehasher_function_t * _rehasher)4561 inline flatbuffers::Offset<ELU> CreateELU(flatbuffers::FlatBufferBuilder &_fbb, const ELUT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
4562   (void)_rehasher;
4563   (void)_o;
4564   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const ELUT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
4565   auto _alpha = _o->alpha;
4566   return MNN::CreateELU(
4567       _fbb,
4568       _alpha);
4569 }
4570 
UnPack(const flatbuffers::resolver_function_t * _resolver)4571 inline LRNT *LRN::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
4572   auto _o = new LRNT();
4573   UnPackTo(_o, _resolver);
4574   return _o;
4575 }
4576 
UnPackTo(LRNT * _o,const flatbuffers::resolver_function_t * _resolver)4577 inline void LRN::UnPackTo(LRNT *_o, const flatbuffers::resolver_function_t *_resolver) const {
4578   (void)_o;
4579   (void)_resolver;
4580   { auto _e = regionType(); _o->regionType = _e; };
4581   { auto _e = localSize(); _o->localSize = _e; };
4582   { auto _e = alpha(); _o->alpha = _e; };
4583   { auto _e = beta(); _o->beta = _e; };
4584 }
4585 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const LRNT * _o,const flatbuffers::rehasher_function_t * _rehasher)4586 inline flatbuffers::Offset<LRN> LRN::Pack(flatbuffers::FlatBufferBuilder &_fbb, const LRNT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
4587   return CreateLRN(_fbb, _o, _rehasher);
4588 }
4589 
CreateLRN(flatbuffers::FlatBufferBuilder & _fbb,const LRNT * _o,const flatbuffers::rehasher_function_t * _rehasher)4590 inline flatbuffers::Offset<LRN> CreateLRN(flatbuffers::FlatBufferBuilder &_fbb, const LRNT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
4591   (void)_rehasher;
4592   (void)_o;
4593   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const LRNT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
4594   auto _regionType = _o->regionType;
4595   auto _localSize = _o->localSize;
4596   auto _alpha = _o->alpha;
4597   auto _beta = _o->beta;
4598   return MNN::CreateLRN(
4599       _fbb,
4600       _regionType,
4601       _localSize,
4602       _alpha,
4603       _beta);
4604 }
4605 
UnPack(const flatbuffers::resolver_function_t * _resolver)4606 inline ArgMaxT *ArgMax::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
4607   auto _o = new ArgMaxT();
4608   UnPackTo(_o, _resolver);
4609   return _o;
4610 }
4611 
UnPackTo(ArgMaxT * _o,const flatbuffers::resolver_function_t * _resolver)4612 inline void ArgMax::UnPackTo(ArgMaxT *_o, const flatbuffers::resolver_function_t *_resolver) const {
4613   (void)_o;
4614   (void)_resolver;
4615   { auto _e = outMaxVal(); _o->outMaxVal = _e; };
4616   { auto _e = topK(); _o->topK = _e; };
4617   { auto _e = axis(); _o->axis = _e; };
4618   { auto _e = softmaxThreshold(); _o->softmaxThreshold = _e; };
4619 }
4620 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const ArgMaxT * _o,const flatbuffers::rehasher_function_t * _rehasher)4621 inline flatbuffers::Offset<ArgMax> ArgMax::Pack(flatbuffers::FlatBufferBuilder &_fbb, const ArgMaxT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
4622   return CreateArgMax(_fbb, _o, _rehasher);
4623 }
4624 
CreateArgMax(flatbuffers::FlatBufferBuilder & _fbb,const ArgMaxT * _o,const flatbuffers::rehasher_function_t * _rehasher)4625 inline flatbuffers::Offset<ArgMax> CreateArgMax(flatbuffers::FlatBufferBuilder &_fbb, const ArgMaxT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
4626   (void)_rehasher;
4627   (void)_o;
4628   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const ArgMaxT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
4629   auto _outMaxVal = _o->outMaxVal;
4630   auto _topK = _o->topK;
4631   auto _axis = _o->axis;
4632   auto _softmaxThreshold = _o->softmaxThreshold;
4633   return MNN::CreateArgMax(
4634       _fbb,
4635       _outMaxVal,
4636       _topK,
4637       _axis,
4638       _softmaxThreshold);
4639 }
4640 
UnPack(const flatbuffers::resolver_function_t * _resolver)4641 inline AxisT *Axis::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
4642   auto _o = new AxisT();
4643   UnPackTo(_o, _resolver);
4644   return _o;
4645 }
4646 
UnPackTo(AxisT * _o,const flatbuffers::resolver_function_t * _resolver)4647 inline void Axis::UnPackTo(AxisT *_o, const flatbuffers::resolver_function_t *_resolver) const {
4648   (void)_o;
4649   (void)_resolver;
4650   { auto _e = axis(); _o->axis = _e; };
4651 }
4652 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const AxisT * _o,const flatbuffers::rehasher_function_t * _rehasher)4653 inline flatbuffers::Offset<Axis> Axis::Pack(flatbuffers::FlatBufferBuilder &_fbb, const AxisT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
4654   return CreateAxis(_fbb, _o, _rehasher);
4655 }
4656 
CreateAxis(flatbuffers::FlatBufferBuilder & _fbb,const AxisT * _o,const flatbuffers::rehasher_function_t * _rehasher)4657 inline flatbuffers::Offset<Axis> CreateAxis(flatbuffers::FlatBufferBuilder &_fbb, const AxisT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
4658   (void)_rehasher;
4659   (void)_o;
4660   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const AxisT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
4661   auto _axis = _o->axis;
4662   return MNN::CreateAxis(
4663       _fbb,
4664       _axis);
4665 }
4666 
UnPack(const flatbuffers::resolver_function_t * _resolver)4667 inline InputT *Input::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
4668   auto _o = new InputT();
4669   UnPackTo(_o, _resolver);
4670   return _o;
4671 }
4672 
UnPackTo(InputT * _o,const flatbuffers::resolver_function_t * _resolver)4673 inline void Input::UnPackTo(InputT *_o, const flatbuffers::resolver_function_t *_resolver) const {
4674   (void)_o;
4675   (void)_resolver;
4676   { auto _e = dims(); if (_e) { _o->dims.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->dims[_i] = _e->Get(_i); } } };
4677   { auto _e = dtype(); _o->dtype = _e; };
4678   { auto _e = dformat(); _o->dformat = _e; };
4679 }
4680 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const InputT * _o,const flatbuffers::rehasher_function_t * _rehasher)4681 inline flatbuffers::Offset<Input> Input::Pack(flatbuffers::FlatBufferBuilder &_fbb, const InputT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
4682   return CreateInput(_fbb, _o, _rehasher);
4683 }
4684 
CreateInput(flatbuffers::FlatBufferBuilder & _fbb,const InputT * _o,const flatbuffers::rehasher_function_t * _rehasher)4685 inline flatbuffers::Offset<Input> CreateInput(flatbuffers::FlatBufferBuilder &_fbb, const InputT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
4686   (void)_rehasher;
4687   (void)_o;
4688   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const InputT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
4689   auto _dims = _o->dims.size() ? _fbb.CreateVector(_o->dims) : 0;
4690   auto _dtype = _o->dtype;
4691   auto _dformat = _o->dformat;
4692   return MNN::CreateInput(
4693       _fbb,
4694       _dims,
4695       _dtype,
4696       _dformat);
4697 }
4698 
UnPack(const flatbuffers::resolver_function_t * _resolver)4699 inline LSTMT *LSTM::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
4700   auto _o = new LSTMT();
4701   UnPackTo(_o, _resolver);
4702   return _o;
4703 }
4704 
UnPackTo(LSTMT * _o,const flatbuffers::resolver_function_t * _resolver)4705 inline void LSTM::UnPackTo(LSTMT *_o, const flatbuffers::resolver_function_t *_resolver) const {
4706   (void)_o;
4707   (void)_resolver;
4708   { auto _e = outputCount(); _o->outputCount = _e; };
4709   { auto _e = weightSize(); _o->weightSize = _e; };
4710   { auto _e = clippingThreshold(); _o->clippingThreshold = _e; };
4711   { auto _e = weightI(); if (_e) _o->weightI = std::unique_ptr<BlobT>(_e->UnPack(_resolver)); };
4712   { auto _e = weightH(); if (_e) _o->weightH = std::unique_ptr<BlobT>(_e->UnPack(_resolver)); };
4713   { auto _e = bias(); if (_e) _o->bias = std::unique_ptr<BlobT>(_e->UnPack(_resolver)); };
4714   { auto _e = weightIQ(); if (_e) _o->weightIQ = std::unique_ptr<BlobT>(_e->UnPack(_resolver)); };
4715   { auto _e = weightIA(); if (_e) _o->weightIA = std::unique_ptr<BlobT>(_e->UnPack(_resolver)); };
4716   { auto _e = quantScale(); _o->quantScale = _e; };
4717 }
4718 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const LSTMT * _o,const flatbuffers::rehasher_function_t * _rehasher)4719 inline flatbuffers::Offset<LSTM> LSTM::Pack(flatbuffers::FlatBufferBuilder &_fbb, const LSTMT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
4720   return CreateLSTM(_fbb, _o, _rehasher);
4721 }
4722 
CreateLSTM(flatbuffers::FlatBufferBuilder & _fbb,const LSTMT * _o,const flatbuffers::rehasher_function_t * _rehasher)4723 inline flatbuffers::Offset<LSTM> CreateLSTM(flatbuffers::FlatBufferBuilder &_fbb, const LSTMT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
4724   (void)_rehasher;
4725   (void)_o;
4726   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const LSTMT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
4727   auto _outputCount = _o->outputCount;
4728   auto _weightSize = _o->weightSize;
4729   auto _clippingThreshold = _o->clippingThreshold;
4730   auto _weightI = _o->weightI ? CreateBlob(_fbb, _o->weightI.get(), _rehasher) : 0;
4731   auto _weightH = _o->weightH ? CreateBlob(_fbb, _o->weightH.get(), _rehasher) : 0;
4732   auto _bias = _o->bias ? CreateBlob(_fbb, _o->bias.get(), _rehasher) : 0;
4733   auto _weightIQ = _o->weightIQ ? CreateBlob(_fbb, _o->weightIQ.get(), _rehasher) : 0;
4734   auto _weightIA = _o->weightIA ? CreateBlob(_fbb, _o->weightIA.get(), _rehasher) : 0;
4735   auto _quantScale = _o->quantScale;
4736   return MNN::CreateLSTM(
4737       _fbb,
4738       _outputCount,
4739       _weightSize,
4740       _clippingThreshold,
4741       _weightI,
4742       _weightH,
4743       _bias,
4744       _weightIQ,
4745       _weightIA,
4746       _quantScale);
4747 }
4748 
UnPack(const flatbuffers::resolver_function_t * _resolver)4749 inline SliceT *Slice::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
4750   auto _o = new SliceT();
4751   UnPackTo(_o, _resolver);
4752   return _o;
4753 }
4754 
UnPackTo(SliceT * _o,const flatbuffers::resolver_function_t * _resolver)4755 inline void Slice::UnPackTo(SliceT *_o, const flatbuffers::resolver_function_t *_resolver) const {
4756   (void)_o;
4757   (void)_resolver;
4758   { auto _e = axis(); _o->axis = _e; };
4759   { auto _e = slicePoints(); if (_e) { _o->slicePoints.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->slicePoints[_i] = _e->Get(_i); } } };
4760   { auto _e = sourceType(); _o->sourceType = _e; };
4761 }
4762 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const SliceT * _o,const flatbuffers::rehasher_function_t * _rehasher)4763 inline flatbuffers::Offset<Slice> Slice::Pack(flatbuffers::FlatBufferBuilder &_fbb, const SliceT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
4764   return CreateSlice(_fbb, _o, _rehasher);
4765 }
4766 
CreateSlice(flatbuffers::FlatBufferBuilder & _fbb,const SliceT * _o,const flatbuffers::rehasher_function_t * _rehasher)4767 inline flatbuffers::Offset<Slice> CreateSlice(flatbuffers::FlatBufferBuilder &_fbb, const SliceT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
4768   (void)_rehasher;
4769   (void)_o;
4770   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const SliceT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
4771   auto _axis = _o->axis;
4772   auto _slicePoints = _o->slicePoints.size() ? _fbb.CreateVector(_o->slicePoints) : 0;
4773   auto _sourceType = _o->sourceType;
4774   return MNN::CreateSlice(
4775       _fbb,
4776       _axis,
4777       _slicePoints,
4778       _sourceType);
4779 }
4780 
UnPack(const flatbuffers::resolver_function_t * _resolver)4781 inline BatchNormT *BatchNorm::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
4782   auto _o = new BatchNormT();
4783   UnPackTo(_o, _resolver);
4784   return _o;
4785 }
4786 
UnPackTo(BatchNormT * _o,const flatbuffers::resolver_function_t * _resolver)4787 inline void BatchNorm::UnPackTo(BatchNormT *_o, const flatbuffers::resolver_function_t *_resolver) const {
4788   (void)_o;
4789   (void)_resolver;
4790   { auto _e = channels(); _o->channels = _e; };
4791   { auto _e = slopeData(); if (_e) { _o->slopeData.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->slopeData[_i] = _e->Get(_i); } } };
4792   { auto _e = meanData(); if (_e) { _o->meanData.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->meanData[_i] = _e->Get(_i); } } };
4793   { auto _e = varData(); if (_e) { _o->varData.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->varData[_i] = _e->Get(_i); } } };
4794   { auto _e = biasData(); if (_e) { _o->biasData.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->biasData[_i] = _e->Get(_i); } } };
4795   { auto _e = Adata(); if (_e) { _o->Adata.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->Adata[_i] = _e->Get(_i); } } };
4796   { auto _e = Bdata(); if (_e) { _o->Bdata.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->Bdata[_i] = _e->Get(_i); } } };
4797   { auto _e = epsilon(); _o->epsilon = _e; };
4798 }
4799 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const BatchNormT * _o,const flatbuffers::rehasher_function_t * _rehasher)4800 inline flatbuffers::Offset<BatchNorm> BatchNorm::Pack(flatbuffers::FlatBufferBuilder &_fbb, const BatchNormT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
4801   return CreateBatchNorm(_fbb, _o, _rehasher);
4802 }
4803 
CreateBatchNorm(flatbuffers::FlatBufferBuilder & _fbb,const BatchNormT * _o,const flatbuffers::rehasher_function_t * _rehasher)4804 inline flatbuffers::Offset<BatchNorm> CreateBatchNorm(flatbuffers::FlatBufferBuilder &_fbb, const BatchNormT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
4805   (void)_rehasher;
4806   (void)_o;
4807   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const BatchNormT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
4808   auto _channels = _o->channels;
4809   auto _slopeData = _o->slopeData.size() ? _fbb.CreateVector(_o->slopeData) : 0;
4810   auto _meanData = _o->meanData.size() ? _fbb.CreateVector(_o->meanData) : 0;
4811   auto _varData = _o->varData.size() ? _fbb.CreateVector(_o->varData) : 0;
4812   auto _biasData = _o->biasData.size() ? _fbb.CreateVector(_o->biasData) : 0;
4813   auto _Adata = _o->Adata.size() ? _fbb.CreateVector(_o->Adata) : 0;
4814   auto _Bdata = _o->Bdata.size() ? _fbb.CreateVector(_o->Bdata) : 0;
4815   auto _epsilon = _o->epsilon;
4816   return MNN::CreateBatchNorm(
4817       _fbb,
4818       _channels,
4819       _slopeData,
4820       _meanData,
4821       _varData,
4822       _biasData,
4823       _Adata,
4824       _Bdata,
4825       _epsilon);
4826 }
4827 
UnPack(const flatbuffers::resolver_function_t * _resolver)4828 inline ScaleT *Scale::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
4829   auto _o = new ScaleT();
4830   UnPackTo(_o, _resolver);
4831   return _o;
4832 }
4833 
UnPackTo(ScaleT * _o,const flatbuffers::resolver_function_t * _resolver)4834 inline void Scale::UnPackTo(ScaleT *_o, const flatbuffers::resolver_function_t *_resolver) const {
4835   (void)_o;
4836   (void)_resolver;
4837   { auto _e = channels(); _o->channels = _e; };
4838   { auto _e = scaleData(); if (_e) { _o->scaleData.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->scaleData[_i] = _e->Get(_i); } } };
4839   { auto _e = biasData(); if (_e) { _o->biasData.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->biasData[_i] = _e->Get(_i); } } };
4840 }
4841 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const ScaleT * _o,const flatbuffers::rehasher_function_t * _rehasher)4842 inline flatbuffers::Offset<Scale> Scale::Pack(flatbuffers::FlatBufferBuilder &_fbb, const ScaleT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
4843   return CreateScale(_fbb, _o, _rehasher);
4844 }
4845 
CreateScale(flatbuffers::FlatBufferBuilder & _fbb,const ScaleT * _o,const flatbuffers::rehasher_function_t * _rehasher)4846 inline flatbuffers::Offset<Scale> CreateScale(flatbuffers::FlatBufferBuilder &_fbb, const ScaleT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
4847   (void)_rehasher;
4848   (void)_o;
4849   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const ScaleT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
4850   auto _channels = _o->channels;
4851   auto _scaleData = _o->scaleData.size() ? _fbb.CreateVector(_o->scaleData) : 0;
4852   auto _biasData = _o->biasData.size() ? _fbb.CreateVector(_o->biasData) : 0;
4853   return MNN::CreateScale(
4854       _fbb,
4855       _channels,
4856       _scaleData,
4857       _biasData);
4858 }
4859 
UnPack(const flatbuffers::resolver_function_t * _resolver)4860 inline EltwiseT *Eltwise::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
4861   auto _o = new EltwiseT();
4862   UnPackTo(_o, _resolver);
4863   return _o;
4864 }
4865 
UnPackTo(EltwiseT * _o,const flatbuffers::resolver_function_t * _resolver)4866 inline void Eltwise::UnPackTo(EltwiseT *_o, const flatbuffers::resolver_function_t *_resolver) const {
4867   (void)_o;
4868   (void)_resolver;
4869   { auto _e = type(); _o->type = _e; };
4870   { auto _e = coeff(); if (_e) { _o->coeff.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->coeff[_i] = _e->Get(_i); } } };
4871 }
4872 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const EltwiseT * _o,const flatbuffers::rehasher_function_t * _rehasher)4873 inline flatbuffers::Offset<Eltwise> Eltwise::Pack(flatbuffers::FlatBufferBuilder &_fbb, const EltwiseT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
4874   return CreateEltwise(_fbb, _o, _rehasher);
4875 }
4876 
CreateEltwise(flatbuffers::FlatBufferBuilder & _fbb,const EltwiseT * _o,const flatbuffers::rehasher_function_t * _rehasher)4877 inline flatbuffers::Offset<Eltwise> CreateEltwise(flatbuffers::FlatBufferBuilder &_fbb, const EltwiseT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
4878   (void)_rehasher;
4879   (void)_o;
4880   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const EltwiseT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
4881   auto _type = _o->type;
4882   auto _coeff = _o->coeff.size() ? _fbb.CreateVector(_o->coeff) : 0;
4883   return MNN::CreateEltwise(
4884       _fbb,
4885       _type,
4886       _coeff);
4887 }
4888 
UnPack(const flatbuffers::resolver_function_t * _resolver)4889 inline FlattenT *Flatten::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
4890   auto _o = new FlattenT();
4891   UnPackTo(_o, _resolver);
4892   return _o;
4893 }
4894 
UnPackTo(FlattenT * _o,const flatbuffers::resolver_function_t * _resolver)4895 inline void Flatten::UnPackTo(FlattenT *_o, const flatbuffers::resolver_function_t *_resolver) const {
4896   (void)_o;
4897   (void)_resolver;
4898   { auto _e = axis(); _o->axis = _e; };
4899   { auto _e = endAxis(); _o->endAxis = _e; };
4900 }
4901 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const FlattenT * _o,const flatbuffers::rehasher_function_t * _rehasher)4902 inline flatbuffers::Offset<Flatten> Flatten::Pack(flatbuffers::FlatBufferBuilder &_fbb, const FlattenT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
4903   return CreateFlatten(_fbb, _o, _rehasher);
4904 }
4905 
CreateFlatten(flatbuffers::FlatBufferBuilder & _fbb,const FlattenT * _o,const flatbuffers::rehasher_function_t * _rehasher)4906 inline flatbuffers::Offset<Flatten> CreateFlatten(flatbuffers::FlatBufferBuilder &_fbb, const FlattenT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
4907   (void)_rehasher;
4908   (void)_o;
4909   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const FlattenT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
4910   auto _axis = _o->axis;
4911   auto _endAxis = _o->endAxis;
4912   return MNN::CreateFlatten(
4913       _fbb,
4914       _axis,
4915       _endAxis);
4916 }
4917 
UnPack(const flatbuffers::resolver_function_t * _resolver)4918 inline PermuteT *Permute::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
4919   auto _o = new PermuteT();
4920   UnPackTo(_o, _resolver);
4921   return _o;
4922 }
4923 
UnPackTo(PermuteT * _o,const flatbuffers::resolver_function_t * _resolver)4924 inline void Permute::UnPackTo(PermuteT *_o, const flatbuffers::resolver_function_t *_resolver) const {
4925   (void)_o;
4926   (void)_resolver;
4927   { auto _e = dims(); if (_e) { _o->dims.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->dims[_i] = _e->Get(_i); } } };
4928 }
4929 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const PermuteT * _o,const flatbuffers::rehasher_function_t * _rehasher)4930 inline flatbuffers::Offset<Permute> Permute::Pack(flatbuffers::FlatBufferBuilder &_fbb, const PermuteT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
4931   return CreatePermute(_fbb, _o, _rehasher);
4932 }
4933 
CreatePermute(flatbuffers::FlatBufferBuilder & _fbb,const PermuteT * _o,const flatbuffers::rehasher_function_t * _rehasher)4934 inline flatbuffers::Offset<Permute> CreatePermute(flatbuffers::FlatBufferBuilder &_fbb, const PermuteT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
4935   (void)_rehasher;
4936   (void)_o;
4937   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const PermuteT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
4938   auto _dims = _o->dims.size() ? _fbb.CreateVector(_o->dims) : 0;
4939   return MNN::CreatePermute(
4940       _fbb,
4941       _dims);
4942 }
4943 
UnPack(const flatbuffers::resolver_function_t * _resolver)4944 inline ReshapeT *Reshape::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
4945   auto _o = new ReshapeT();
4946   UnPackTo(_o, _resolver);
4947   return _o;
4948 }
4949 
UnPackTo(ReshapeT * _o,const flatbuffers::resolver_function_t * _resolver)4950 inline void Reshape::UnPackTo(ReshapeT *_o, const flatbuffers::resolver_function_t *_resolver) const {
4951   (void)_o;
4952   (void)_resolver;
4953   { auto _e = dims(); if (_e) { _o->dims.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->dims[_i] = _e->Get(_i); } } };
4954   { auto _e = dimType(); _o->dimType = _e; };
4955 }
4956 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const ReshapeT * _o,const flatbuffers::rehasher_function_t * _rehasher)4957 inline flatbuffers::Offset<Reshape> Reshape::Pack(flatbuffers::FlatBufferBuilder &_fbb, const ReshapeT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
4958   return CreateReshape(_fbb, _o, _rehasher);
4959 }
4960 
CreateReshape(flatbuffers::FlatBufferBuilder & _fbb,const ReshapeT * _o,const flatbuffers::rehasher_function_t * _rehasher)4961 inline flatbuffers::Offset<Reshape> CreateReshape(flatbuffers::FlatBufferBuilder &_fbb, const ReshapeT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
4962   (void)_rehasher;
4963   (void)_o;
4964   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const ReshapeT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
4965   auto _dims = _o->dims.size() ? _fbb.CreateVector(_o->dims) : 0;
4966   auto _dimType = _o->dimType;
4967   return MNN::CreateReshape(
4968       _fbb,
4969       _dims,
4970       _dimType);
4971 }
4972 
UnPack(const flatbuffers::resolver_function_t * _resolver)4973 inline DetectionOutputT *DetectionOutput::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
4974   auto _o = new DetectionOutputT();
4975   UnPackTo(_o, _resolver);
4976   return _o;
4977 }
4978 
UnPackTo(DetectionOutputT * _o,const flatbuffers::resolver_function_t * _resolver)4979 inline void DetectionOutput::UnPackTo(DetectionOutputT *_o, const flatbuffers::resolver_function_t *_resolver) const {
4980   (void)_o;
4981   (void)_resolver;
4982   { auto _e = classCount(); _o->classCount = _e; };
4983   { auto _e = nmsThresholdold(); _o->nmsThresholdold = _e; };
4984   { auto _e = nmsTopK(); _o->nmsTopK = _e; };
4985   { auto _e = keepTopK(); _o->keepTopK = _e; };
4986   { auto _e = confidenceThreshold(); _o->confidenceThreshold = _e; };
4987   { auto _e = shareLocation(); _o->shareLocation = _e; };
4988   { auto _e = backgroundLable(); _o->backgroundLable = _e; };
4989   { auto _e = varianceEncodedTarget(); _o->varianceEncodedTarget = _e; };
4990   { auto _e = codeType(); _o->codeType = _e; };
4991   { auto _e = objectnessScore(); _o->objectnessScore = _e; };
4992 }
4993 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const DetectionOutputT * _o,const flatbuffers::rehasher_function_t * _rehasher)4994 inline flatbuffers::Offset<DetectionOutput> DetectionOutput::Pack(flatbuffers::FlatBufferBuilder &_fbb, const DetectionOutputT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
4995   return CreateDetectionOutput(_fbb, _o, _rehasher);
4996 }
4997 
CreateDetectionOutput(flatbuffers::FlatBufferBuilder & _fbb,const DetectionOutputT * _o,const flatbuffers::rehasher_function_t * _rehasher)4998 inline flatbuffers::Offset<DetectionOutput> CreateDetectionOutput(flatbuffers::FlatBufferBuilder &_fbb, const DetectionOutputT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
4999   (void)_rehasher;
5000   (void)_o;
5001   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const DetectionOutputT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
5002   auto _classCount = _o->classCount;
5003   auto _nmsThresholdold = _o->nmsThresholdold;
5004   auto _nmsTopK = _o->nmsTopK;
5005   auto _keepTopK = _o->keepTopK;
5006   auto _confidenceThreshold = _o->confidenceThreshold;
5007   auto _shareLocation = _o->shareLocation;
5008   auto _backgroundLable = _o->backgroundLable;
5009   auto _varianceEncodedTarget = _o->varianceEncodedTarget;
5010   auto _codeType = _o->codeType;
5011   auto _objectnessScore = _o->objectnessScore;
5012   return MNN::CreateDetectionOutput(
5013       _fbb,
5014       _classCount,
5015       _nmsThresholdold,
5016       _nmsTopK,
5017       _keepTopK,
5018       _confidenceThreshold,
5019       _shareLocation,
5020       _backgroundLable,
5021       _varianceEncodedTarget,
5022       _codeType,
5023       _objectnessScore);
5024 }
5025 
UnPack(const flatbuffers::resolver_function_t * _resolver)5026 inline RoiPoolingT *RoiPooling::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
5027   auto _o = new RoiPoolingT();
5028   UnPackTo(_o, _resolver);
5029   return _o;
5030 }
5031 
UnPackTo(RoiPoolingT * _o,const flatbuffers::resolver_function_t * _resolver)5032 inline void RoiPooling::UnPackTo(RoiPoolingT *_o, const flatbuffers::resolver_function_t *_resolver) const {
5033   (void)_o;
5034   (void)_resolver;
5035   { auto _e = pooledWidth(); _o->pooledWidth = _e; };
5036   { auto _e = pooledHeight(); _o->pooledHeight = _e; };
5037   { auto _e = spatialScale(); _o->spatialScale = _e; };
5038 }
5039 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const RoiPoolingT * _o,const flatbuffers::rehasher_function_t * _rehasher)5040 inline flatbuffers::Offset<RoiPooling> RoiPooling::Pack(flatbuffers::FlatBufferBuilder &_fbb, const RoiPoolingT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
5041   return CreateRoiPooling(_fbb, _o, _rehasher);
5042 }
5043 
CreateRoiPooling(flatbuffers::FlatBufferBuilder & _fbb,const RoiPoolingT * _o,const flatbuffers::rehasher_function_t * _rehasher)5044 inline flatbuffers::Offset<RoiPooling> CreateRoiPooling(flatbuffers::FlatBufferBuilder &_fbb, const RoiPoolingT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
5045   (void)_rehasher;
5046   (void)_o;
5047   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const RoiPoolingT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
5048   auto _pooledWidth = _o->pooledWidth;
5049   auto _pooledHeight = _o->pooledHeight;
5050   auto _spatialScale = _o->spatialScale;
5051   return MNN::CreateRoiPooling(
5052       _fbb,
5053       _pooledWidth,
5054       _pooledHeight,
5055       _spatialScale);
5056 }
5057 
UnPack(const flatbuffers::resolver_function_t * _resolver)5058 inline ProposalT *Proposal::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
5059   auto _o = new ProposalT();
5060   UnPackTo(_o, _resolver);
5061   return _o;
5062 }
5063 
UnPackTo(ProposalT * _o,const flatbuffers::resolver_function_t * _resolver)5064 inline void Proposal::UnPackTo(ProposalT *_o, const flatbuffers::resolver_function_t *_resolver) const {
5065   (void)_o;
5066   (void)_resolver;
5067   { auto _e = featStride(); _o->featStride = _e; };
5068   { auto _e = baseSize(); _o->baseSize = _e; };
5069   { auto _e = preNmsTopN(); _o->preNmsTopN = _e; };
5070   { auto _e = afterNmsTopN(); _o->afterNmsTopN = _e; };
5071   { auto _e = nmsThreshold(); _o->nmsThreshold = _e; };
5072   { auto _e = minSize(); _o->minSize = _e; };
5073   { auto _e = ratios(); if (_e) _o->ratios = std::unique_ptr<BlobT>(_e->UnPack(_resolver)); };
5074   { auto _e = scales(); if (_e) _o->scales = std::unique_ptr<BlobT>(_e->UnPack(_resolver)); };
5075   { auto _e = anchors(); if (_e) _o->anchors = std::unique_ptr<BlobT>(_e->UnPack(_resolver)); };
5076 }
5077 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const ProposalT * _o,const flatbuffers::rehasher_function_t * _rehasher)5078 inline flatbuffers::Offset<Proposal> Proposal::Pack(flatbuffers::FlatBufferBuilder &_fbb, const ProposalT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
5079   return CreateProposal(_fbb, _o, _rehasher);
5080 }
5081 
CreateProposal(flatbuffers::FlatBufferBuilder & _fbb,const ProposalT * _o,const flatbuffers::rehasher_function_t * _rehasher)5082 inline flatbuffers::Offset<Proposal> CreateProposal(flatbuffers::FlatBufferBuilder &_fbb, const ProposalT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
5083   (void)_rehasher;
5084   (void)_o;
5085   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const ProposalT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
5086   auto _featStride = _o->featStride;
5087   auto _baseSize = _o->baseSize;
5088   auto _preNmsTopN = _o->preNmsTopN;
5089   auto _afterNmsTopN = _o->afterNmsTopN;
5090   auto _nmsThreshold = _o->nmsThreshold;
5091   auto _minSize = _o->minSize;
5092   auto _ratios = _o->ratios ? CreateBlob(_fbb, _o->ratios.get(), _rehasher) : 0;
5093   auto _scales = _o->scales ? CreateBlob(_fbb, _o->scales.get(), _rehasher) : 0;
5094   auto _anchors = _o->anchors ? CreateBlob(_fbb, _o->anchors.get(), _rehasher) : 0;
5095   return MNN::CreateProposal(
5096       _fbb,
5097       _featStride,
5098       _baseSize,
5099       _preNmsTopN,
5100       _afterNmsTopN,
5101       _nmsThreshold,
5102       _minSize,
5103       _ratios,
5104       _scales,
5105       _anchors);
5106 }
5107 
UnPack(const flatbuffers::resolver_function_t * _resolver)5108 inline InterpT *Interp::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
5109   auto _o = new InterpT();
5110   UnPackTo(_o, _resolver);
5111   return _o;
5112 }
5113 
UnPackTo(InterpT * _o,const flatbuffers::resolver_function_t * _resolver)5114 inline void Interp::UnPackTo(InterpT *_o, const flatbuffers::resolver_function_t *_resolver) const {
5115   (void)_o;
5116   (void)_resolver;
5117   { auto _e = widthScale(); _o->widthScale = _e; };
5118   { auto _e = heightScale(); _o->heightScale = _e; };
5119   { auto _e = outputWidth(); _o->outputWidth = _e; };
5120   { auto _e = outputHeight(); _o->outputHeight = _e; };
5121   { auto _e = resizeType(); _o->resizeType = _e; };
5122   { auto _e = alignCorners(); _o->alignCorners = _e; };
5123   { auto _e = halfPixelCenters(); _o->halfPixelCenters = _e; };
5124   { auto _e = widthOffset(); _o->widthOffset = _e; };
5125   { auto _e = heightOffset(); _o->heightOffset = _e; };
5126   { auto _e = cubicCoeffA(); _o->cubicCoeffA = _e; };
5127   { auto _e = ctm(); _o->ctm = _e; };
5128 }
5129 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const InterpT * _o,const flatbuffers::rehasher_function_t * _rehasher)5130 inline flatbuffers::Offset<Interp> Interp::Pack(flatbuffers::FlatBufferBuilder &_fbb, const InterpT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
5131   return CreateInterp(_fbb, _o, _rehasher);
5132 }
5133 
CreateInterp(flatbuffers::FlatBufferBuilder & _fbb,const InterpT * _o,const flatbuffers::rehasher_function_t * _rehasher)5134 inline flatbuffers::Offset<Interp> CreateInterp(flatbuffers::FlatBufferBuilder &_fbb, const InterpT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
5135   (void)_rehasher;
5136   (void)_o;
5137   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const InterpT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
5138   auto _widthScale = _o->widthScale;
5139   auto _heightScale = _o->heightScale;
5140   auto _outputWidth = _o->outputWidth;
5141   auto _outputHeight = _o->outputHeight;
5142   auto _resizeType = _o->resizeType;
5143   auto _alignCorners = _o->alignCorners;
5144   auto _halfPixelCenters = _o->halfPixelCenters;
5145   auto _widthOffset = _o->widthOffset;
5146   auto _heightOffset = _o->heightOffset;
5147   auto _cubicCoeffA = _o->cubicCoeffA;
5148   auto _ctm = _o->ctm;
5149   return MNN::CreateInterp(
5150       _fbb,
5151       _widthScale,
5152       _heightScale,
5153       _outputWidth,
5154       _outputHeight,
5155       _resizeType,
5156       _alignCorners,
5157       _halfPixelCenters,
5158       _widthOffset,
5159       _heightOffset,
5160       _cubicCoeffA,
5161       _ctm);
5162 }
5163 
UnPack(const flatbuffers::resolver_function_t * _resolver)5164 inline ResizeT *Resize::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
5165   auto _o = new ResizeT();
5166   UnPackTo(_o, _resolver);
5167   return _o;
5168 }
5169 
UnPackTo(ResizeT * _o,const flatbuffers::resolver_function_t * _resolver)5170 inline void Resize::UnPackTo(ResizeT *_o, const flatbuffers::resolver_function_t *_resolver) const {
5171   (void)_o;
5172   (void)_resolver;
5173   { auto _e = xScale(); _o->xScale = _e; };
5174   { auto _e = yScale(); _o->yScale = _e; };
5175 }
5176 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const ResizeT * _o,const flatbuffers::rehasher_function_t * _rehasher)5177 inline flatbuffers::Offset<Resize> Resize::Pack(flatbuffers::FlatBufferBuilder &_fbb, const ResizeT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
5178   return CreateResize(_fbb, _o, _rehasher);
5179 }
5180 
CreateResize(flatbuffers::FlatBufferBuilder & _fbb,const ResizeT * _o,const flatbuffers::rehasher_function_t * _rehasher)5181 inline flatbuffers::Offset<Resize> CreateResize(flatbuffers::FlatBufferBuilder &_fbb, const ResizeT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
5182   (void)_rehasher;
5183   (void)_o;
5184   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const ResizeT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
5185   auto _xScale = _o->xScale;
5186   auto _yScale = _o->yScale;
5187   return MNN::CreateResize(
5188       _fbb,
5189       _xScale,
5190       _yScale);
5191 }
5192 
UnPack(const flatbuffers::resolver_function_t * _resolver)5193 inline PriorBoxT *PriorBox::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
5194   auto _o = new PriorBoxT();
5195   UnPackTo(_o, _resolver);
5196   return _o;
5197 }
5198 
UnPackTo(PriorBoxT * _o,const flatbuffers::resolver_function_t * _resolver)5199 inline void PriorBox::UnPackTo(PriorBoxT *_o, const flatbuffers::resolver_function_t *_resolver) const {
5200   (void)_o;
5201   (void)_resolver;
5202   { auto _e = minSizes(); if (_e) { _o->minSizes.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->minSizes[_i] = _e->Get(_i); } } };
5203   { auto _e = maxSizes(); if (_e) { _o->maxSizes.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->maxSizes[_i] = _e->Get(_i); } } };
5204   { auto _e = aspectRatios(); if (_e) { _o->aspectRatios.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->aspectRatios[_i] = _e->Get(_i); } } };
5205   { auto _e = variances(); if (_e) { _o->variances.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->variances[_i] = _e->Get(_i); } } };
5206   { auto _e = flip(); _o->flip = _e; };
5207   { auto _e = clip(); _o->clip = _e; };
5208   { auto _e = imageWidth(); _o->imageWidth = _e; };
5209   { auto _e = imageHeight(); _o->imageHeight = _e; };
5210   { auto _e = stepWidth(); _o->stepWidth = _e; };
5211   { auto _e = stepHeight(); _o->stepHeight = _e; };
5212   { auto _e = offset(); _o->offset = _e; };
5213 }
5214 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const PriorBoxT * _o,const flatbuffers::rehasher_function_t * _rehasher)5215 inline flatbuffers::Offset<PriorBox> PriorBox::Pack(flatbuffers::FlatBufferBuilder &_fbb, const PriorBoxT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
5216   return CreatePriorBox(_fbb, _o, _rehasher);
5217 }
5218 
CreatePriorBox(flatbuffers::FlatBufferBuilder & _fbb,const PriorBoxT * _o,const flatbuffers::rehasher_function_t * _rehasher)5219 inline flatbuffers::Offset<PriorBox> CreatePriorBox(flatbuffers::FlatBufferBuilder &_fbb, const PriorBoxT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
5220   (void)_rehasher;
5221   (void)_o;
5222   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const PriorBoxT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
5223   auto _minSizes = _o->minSizes.size() ? _fbb.CreateVector(_o->minSizes) : 0;
5224   auto _maxSizes = _o->maxSizes.size() ? _fbb.CreateVector(_o->maxSizes) : 0;
5225   auto _aspectRatios = _o->aspectRatios.size() ? _fbb.CreateVector(_o->aspectRatios) : 0;
5226   auto _variances = _o->variances.size() ? _fbb.CreateVector(_o->variances) : 0;
5227   auto _flip = _o->flip;
5228   auto _clip = _o->clip;
5229   auto _imageWidth = _o->imageWidth;
5230   auto _imageHeight = _o->imageHeight;
5231   auto _stepWidth = _o->stepWidth;
5232   auto _stepHeight = _o->stepHeight;
5233   auto _offset = _o->offset;
5234   return MNN::CreatePriorBox(
5235       _fbb,
5236       _minSizes,
5237       _maxSizes,
5238       _aspectRatios,
5239       _variances,
5240       _flip,
5241       _clip,
5242       _imageWidth,
5243       _imageHeight,
5244       _stepWidth,
5245       _stepHeight,
5246       _offset);
5247 }
5248 
UnPack(const flatbuffers::resolver_function_t * _resolver)5249 inline NormalizeT *Normalize::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
5250   auto _o = new NormalizeT();
5251   UnPackTo(_o, _resolver);
5252   return _o;
5253 }
5254 
UnPackTo(NormalizeT * _o,const flatbuffers::resolver_function_t * _resolver)5255 inline void Normalize::UnPackTo(NormalizeT *_o, const flatbuffers::resolver_function_t *_resolver) const {
5256   (void)_o;
5257   (void)_resolver;
5258   { auto _e = acrossSpatial(); _o->acrossSpatial = _e; };
5259   { auto _e = channelShared(); _o->channelShared = _e; };
5260   { auto _e = eps(); _o->eps = _e; };
5261   { auto _e = scale(); if (_e) { _o->scale.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->scale[_i] = _e->Get(_i); } } };
5262 }
5263 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const NormalizeT * _o,const flatbuffers::rehasher_function_t * _rehasher)5264 inline flatbuffers::Offset<Normalize> Normalize::Pack(flatbuffers::FlatBufferBuilder &_fbb, const NormalizeT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
5265   return CreateNormalize(_fbb, _o, _rehasher);
5266 }
5267 
CreateNormalize(flatbuffers::FlatBufferBuilder & _fbb,const NormalizeT * _o,const flatbuffers::rehasher_function_t * _rehasher)5268 inline flatbuffers::Offset<Normalize> CreateNormalize(flatbuffers::FlatBufferBuilder &_fbb, const NormalizeT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
5269   (void)_rehasher;
5270   (void)_o;
5271   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const NormalizeT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
5272   auto _acrossSpatial = _o->acrossSpatial;
5273   auto _channelShared = _o->channelShared;
5274   auto _eps = _o->eps;
5275   auto _scale = _o->scale.size() ? _fbb.CreateVector(_o->scale) : 0;
5276   return MNN::CreateNormalize(
5277       _fbb,
5278       _acrossSpatial,
5279       _channelShared,
5280       _eps,
5281       _scale);
5282 }
5283 
UnPack(const flatbuffers::resolver_function_t * _resolver)5284 inline EltwiseInt8T *EltwiseInt8::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
5285   auto _o = new EltwiseInt8T();
5286   UnPackTo(_o, _resolver);
5287   return _o;
5288 }
5289 
UnPackTo(EltwiseInt8T * _o,const flatbuffers::resolver_function_t * _resolver)5290 inline void EltwiseInt8::UnPackTo(EltwiseInt8T *_o, const flatbuffers::resolver_function_t *_resolver) const {
5291   (void)_o;
5292   (void)_resolver;
5293   { auto _e = type(); _o->type = _e; };
5294   { auto _e = inputQuan0(); if (_e) _o->inputQuan0 = std::unique_ptr<QuantizedFloatParamT>(_e->UnPack(_resolver)); };
5295   { auto _e = inputQuan1(); if (_e) _o->inputQuan1 = std::unique_ptr<QuantizedFloatParamT>(_e->UnPack(_resolver)); };
5296   { auto _e = outputQuan(); if (_e) _o->outputQuan = std::unique_ptr<QuantizedFloatParamT>(_e->UnPack(_resolver)); };
5297 }
5298 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const EltwiseInt8T * _o,const flatbuffers::rehasher_function_t * _rehasher)5299 inline flatbuffers::Offset<EltwiseInt8> EltwiseInt8::Pack(flatbuffers::FlatBufferBuilder &_fbb, const EltwiseInt8T* _o, const flatbuffers::rehasher_function_t *_rehasher) {
5300   return CreateEltwiseInt8(_fbb, _o, _rehasher);
5301 }
5302 
CreateEltwiseInt8(flatbuffers::FlatBufferBuilder & _fbb,const EltwiseInt8T * _o,const flatbuffers::rehasher_function_t * _rehasher)5303 inline flatbuffers::Offset<EltwiseInt8> CreateEltwiseInt8(flatbuffers::FlatBufferBuilder &_fbb, const EltwiseInt8T *_o, const flatbuffers::rehasher_function_t *_rehasher) {
5304   (void)_rehasher;
5305   (void)_o;
5306   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const EltwiseInt8T* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
5307   auto _type = _o->type;
5308   auto _inputQuan0 = _o->inputQuan0 ? CreateQuantizedFloatParam(_fbb, _o->inputQuan0.get(), _rehasher) : 0;
5309   auto _inputQuan1 = _o->inputQuan1 ? CreateQuantizedFloatParam(_fbb, _o->inputQuan1.get(), _rehasher) : 0;
5310   auto _outputQuan = _o->outputQuan ? CreateQuantizedFloatParam(_fbb, _o->outputQuan.get(), _rehasher) : 0;
5311   return MNN::CreateEltwiseInt8(
5312       _fbb,
5313       _type,
5314       _inputQuan0,
5315       _inputQuan1,
5316       _outputQuan);
5317 }
5318 
PadModeTypeTable()5319 inline const flatbuffers::TypeTable *PadModeTypeTable() {
5320   static const flatbuffers::TypeCode type_codes[] = {
5321     { flatbuffers::ET_CHAR, 0, 0 },
5322     { flatbuffers::ET_CHAR, 0, 0 },
5323     { flatbuffers::ET_CHAR, 0, 0 }
5324   };
5325   static const flatbuffers::TypeFunction type_refs[] = {
5326     PadModeTypeTable
5327   };
5328   static const char * const names[] = {
5329     "CAFFE",
5330     "VALID",
5331     "SAME"
5332   };
5333   static const flatbuffers::TypeTable tt = {
5334     flatbuffers::ST_ENUM, 3, type_codes, type_refs, nullptr, names
5335   };
5336   return &tt;
5337 }
5338 
SparseAlgoTypeTable()5339 inline const flatbuffers::TypeTable *SparseAlgoTypeTable() {
5340   static const flatbuffers::TypeCode type_codes[] = {
5341     { flatbuffers::ET_CHAR, 0, 0 },
5342     { flatbuffers::ET_CHAR, 0, 0 }
5343   };
5344   static const flatbuffers::TypeFunction type_refs[] = {
5345     SparseAlgoTypeTable
5346   };
5347   static const char * const names[] = {
5348     "RANDOM",
5349     "SIMD_OC"
5350   };
5351   static const flatbuffers::TypeTable tt = {
5352     flatbuffers::ST_ENUM, 2, type_codes, type_refs, nullptr, names
5353   };
5354   return &tt;
5355 }
5356 
QuantizeAlgoTypeTable()5357 inline const flatbuffers::TypeTable *QuantizeAlgoTypeTable() {
5358   static const flatbuffers::TypeCode type_codes[] = {
5359     { flatbuffers::ET_CHAR, 0, 0 },
5360     { flatbuffers::ET_CHAR, 0, 0 },
5361     { flatbuffers::ET_CHAR, 0, 0 }
5362   };
5363   static const flatbuffers::TypeFunction type_refs[] = {
5364     QuantizeAlgoTypeTable
5365   };
5366   static const char * const names[] = {
5367     "DEFAULT",
5368     "OVERFLOW_AWARE",
5369     "WINOGRAD_AWARE"
5370   };
5371   static const flatbuffers::TypeTable tt = {
5372     flatbuffers::ST_ENUM, 3, type_codes, type_refs, nullptr, names
5373   };
5374   return &tt;
5375 }
5376 
PoolTypeTypeTable()5377 inline const flatbuffers::TypeTable *PoolTypeTypeTable() {
5378   static const flatbuffers::TypeCode type_codes[] = {
5379     { flatbuffers::ET_CHAR, 0, 0 },
5380     { flatbuffers::ET_CHAR, 0, 0 }
5381   };
5382   static const flatbuffers::TypeFunction type_refs[] = {
5383     PoolTypeTypeTable
5384   };
5385   static const char * const names[] = {
5386     "MAXPOOL",
5387     "AVEPOOL"
5388   };
5389   static const flatbuffers::TypeTable tt = {
5390     flatbuffers::ST_ENUM, 2, type_codes, type_refs, nullptr, names
5391   };
5392   return &tt;
5393 }
5394 
PoolPadTypeTypeTable()5395 inline const flatbuffers::TypeTable *PoolPadTypeTypeTable() {
5396   static const flatbuffers::TypeCode type_codes[] = {
5397     { flatbuffers::ET_CHAR, 0, 0 },
5398     { flatbuffers::ET_CHAR, 0, 0 },
5399     { flatbuffers::ET_CHAR, 0, 0 }
5400   };
5401   static const flatbuffers::TypeFunction type_refs[] = {
5402     PoolPadTypeTypeTable
5403   };
5404   static const char * const names[] = {
5405     "CAFFE",
5406     "VALID",
5407     "SAME"
5408   };
5409   static const flatbuffers::TypeTable tt = {
5410     flatbuffers::ST_ENUM, 3, type_codes, type_refs, nullptr, names
5411   };
5412   return &tt;
5413 }
5414 
AvgPoolCountTypeTypeTable()5415 inline const flatbuffers::TypeTable *AvgPoolCountTypeTypeTable() {
5416   static const flatbuffers::TypeCode type_codes[] = {
5417     { flatbuffers::ET_CHAR, 0, 0 },
5418     { flatbuffers::ET_CHAR, 0, 0 },
5419     { flatbuffers::ET_CHAR, 0, 0 }
5420   };
5421   static const flatbuffers::TypeFunction type_refs[] = {
5422     AvgPoolCountTypeTypeTable
5423   };
5424   static const char * const names[] = {
5425     "DEFAULT",
5426     "INCLUDE_PADDING",
5427     "EXCLUDE_PADDING"
5428   };
5429   static const flatbuffers::TypeTable tt = {
5430     flatbuffers::ST_ENUM, 3, type_codes, type_refs, nullptr, names
5431   };
5432   return &tt;
5433 }
5434 
EltwiseTypeTypeTable()5435 inline const flatbuffers::TypeTable *EltwiseTypeTypeTable() {
5436   static const flatbuffers::TypeCode type_codes[] = {
5437     { flatbuffers::ET_CHAR, 0, 0 },
5438     { flatbuffers::ET_CHAR, 0, 0 },
5439     { flatbuffers::ET_CHAR, 0, 0 },
5440     { flatbuffers::ET_CHAR, 0, 0 }
5441   };
5442   static const flatbuffers::TypeFunction type_refs[] = {
5443     EltwiseTypeTypeTable
5444   };
5445   static const char * const names[] = {
5446     "PROD",
5447     "SUM",
5448     "MAXIMUM",
5449     "SUB"
5450   };
5451   static const flatbuffers::TypeTable tt = {
5452     flatbuffers::ST_ENUM, 4, type_codes, type_refs, nullptr, names
5453   };
5454   return &tt;
5455 }
5456 
CoordinateTransformationModeTypeTable()5457 inline const flatbuffers::TypeTable *CoordinateTransformationModeTypeTable() {
5458   static const flatbuffers::TypeCode type_codes[] = {
5459     { flatbuffers::ET_CHAR, 0, 0 },
5460     { flatbuffers::ET_CHAR, 0, 0 },
5461     { flatbuffers::ET_CHAR, 0, 0 },
5462     { flatbuffers::ET_CHAR, 0, 0 },
5463     { flatbuffers::ET_CHAR, 0, 0 },
5464     { flatbuffers::ET_CHAR, 0, 0 },
5465     { flatbuffers::ET_CHAR, 0, 0 }
5466   };
5467   static const flatbuffers::TypeFunction type_refs[] = {
5468     CoordinateTransformationModeTypeTable
5469   };
5470   static const char * const names[] = {
5471     "NotSet",
5472     "AlignCorners",
5473     "HalfPixels",
5474     "PytorchHalfPixels",
5475     "Asymmetric",
5476     "TensorflowHalfPixels",
5477     "TensorflowCropAndResize"
5478   };
5479   static const flatbuffers::TypeTable tt = {
5480     flatbuffers::ST_ENUM, 7, type_codes, type_refs, nullptr, names
5481   };
5482   return &tt;
5483 }
5484 
Convolution2DCommonTypeTable()5485 inline const flatbuffers::TypeTable *Convolution2DCommonTypeTable() {
5486   static const flatbuffers::TypeCode type_codes[] = {
5487     { flatbuffers::ET_INT, 0, -1 },
5488     { flatbuffers::ET_INT, 0, -1 },
5489     { flatbuffers::ET_INT, 0, -1 },
5490     { flatbuffers::ET_INT, 0, -1 },
5491     { flatbuffers::ET_INT, 0, -1 },
5492     { flatbuffers::ET_INT, 0, -1 },
5493     { flatbuffers::ET_INT, 0, -1 },
5494     { flatbuffers::ET_INT, 0, -1 },
5495     { flatbuffers::ET_CHAR, 0, 0 },
5496     { flatbuffers::ET_INT, 0, -1 },
5497     { flatbuffers::ET_INT, 0, -1 },
5498     { flatbuffers::ET_INT, 0, -1 },
5499     { flatbuffers::ET_BOOL, 0, -1 },
5500     { flatbuffers::ET_BOOL, 0, -1 },
5501     { flatbuffers::ET_INT, 1, -1 },
5502     { flatbuffers::ET_INT, 1, -1 },
5503     { flatbuffers::ET_BOOL, 0, -1 }
5504   };
5505   static const flatbuffers::TypeFunction type_refs[] = {
5506     PadModeTypeTable
5507   };
5508   static const char * const names[] = {
5509     "padX",
5510     "padY",
5511     "kernelX",
5512     "kernelY",
5513     "strideX",
5514     "strideY",
5515     "dilateX",
5516     "dilateY",
5517     "padMode",
5518     "group",
5519     "outputCount",
5520     "inputCount",
5521     "relu",
5522     "relu6",
5523     "pads",
5524     "outPads",
5525     "hasOutputShape"
5526   };
5527   static const flatbuffers::TypeTable tt = {
5528     flatbuffers::ST_TABLE, 17, type_codes, type_refs, nullptr, names
5529   };
5530   return &tt;
5531 }
5532 
Convolution3DCommonTypeTable()5533 inline const flatbuffers::TypeTable *Convolution3DCommonTypeTable() {
5534   static const flatbuffers::TypeCode type_codes[] = {
5535     { flatbuffers::ET_INT, 1, -1 },
5536     { flatbuffers::ET_INT, 1, -1 },
5537     { flatbuffers::ET_INT, 1, -1 },
5538     { flatbuffers::ET_INT, 1, -1 },
5539     { flatbuffers::ET_CHAR, 0, 0 },
5540     { flatbuffers::ET_INT, 0, -1 },
5541     { flatbuffers::ET_INT, 0, -1 },
5542     { flatbuffers::ET_BOOL, 0, -1 },
5543     { flatbuffers::ET_BOOL, 0, -1 }
5544   };
5545   static const flatbuffers::TypeFunction type_refs[] = {
5546     PadModeTypeTable
5547   };
5548   static const char * const names[] = {
5549     "dilates",
5550     "strides",
5551     "kernels",
5552     "pads",
5553     "padMode",
5554     "inputCount",
5555     "outputCount",
5556     "relu",
5557     "relu6"
5558   };
5559   static const flatbuffers::TypeTable tt = {
5560     flatbuffers::ST_TABLE, 9, type_codes, type_refs, nullptr, names
5561   };
5562   return &tt;
5563 }
5564 
SparseCommonTypeTable()5565 inline const flatbuffers::TypeTable *SparseCommonTypeTable() {
5566   static const flatbuffers::TypeCode type_codes[] = {
5567     { flatbuffers::ET_CHAR, 0, 0 },
5568     { flatbuffers::ET_SEQUENCE, 1, 1 }
5569   };
5570   static const flatbuffers::TypeFunction type_refs[] = {
5571     SparseAlgoTypeTable,
5572     AttributeTypeTable
5573   };
5574   static const char * const names[] = {
5575     "method",
5576     "args"
5577   };
5578   static const flatbuffers::TypeTable tt = {
5579     flatbuffers::ST_TABLE, 2, type_codes, type_refs, nullptr, names
5580   };
5581   return &tt;
5582 }
5583 
IDSTQuanTypeTable()5584 inline const flatbuffers::TypeTable *IDSTQuanTypeTable() {
5585   static const flatbuffers::TypeCode type_codes[] = {
5586     { flatbuffers::ET_CHAR, 1, -1 },
5587     { flatbuffers::ET_FLOAT, 1, -1 },
5588     { flatbuffers::ET_INT, 0, -1 },
5589     { flatbuffers::ET_BOOL, 0, -1 },
5590     { flatbuffers::ET_FLOAT, 0, -1 },
5591     { flatbuffers::ET_FLOAT, 0, -1 },
5592     { flatbuffers::ET_FLOAT, 0, -1 },
5593     { flatbuffers::ET_INT, 0, -1 },
5594     { flatbuffers::ET_INT, 0, -1 },
5595     { flatbuffers::ET_INT, 0, -1 },
5596     { flatbuffers::ET_BOOL, 0, -1 }
5597   };
5598   static const char * const names[] = {
5599     "buffer",
5600     "alpha",
5601     "type",
5602     "useInt32",
5603     "quantScale",
5604     "scaleIn",
5605     "scaleOut",
5606     "aMax",
5607     "aMin",
5608     "readType",
5609     "has_scaleInt"
5610   };
5611   static const flatbuffers::TypeTable tt = {
5612     flatbuffers::ST_TABLE, 11, type_codes, nullptr, nullptr, names
5613   };
5614   return &tt;
5615 }
5616 
QuantizedFloatParamTypeTable()5617 inline const flatbuffers::TypeTable *QuantizedFloatParamTypeTable() {
5618   static const flatbuffers::TypeCode type_codes[] = {
5619     { flatbuffers::ET_CHAR, 1, -1 },
5620     { flatbuffers::ET_INT, 1, -1 },
5621     { flatbuffers::ET_FLOAT, 1, -1 },
5622     { flatbuffers::ET_FLOAT, 1, -1 },
5623     { flatbuffers::ET_CHAR, 0, 0 },
5624     { flatbuffers::ET_INT, 0, -1 },
5625     { flatbuffers::ET_CHAR, 0, -1 },
5626     { flatbuffers::ET_CHAR, 0, -1 },
5627     { flatbuffers::ET_CHAR, 0, -1 },
5628     { flatbuffers::ET_CHAR, 0, -1 }
5629   };
5630   static const flatbuffers::TypeFunction type_refs[] = {
5631     QuantizeAlgoTypeTable
5632   };
5633   static const char * const names[] = {
5634     "weight",
5635     "bias",
5636     "scale",
5637     "tensorScale",
5638     "method",
5639     "nbits",
5640     "zeroPoint",
5641     "outputZeroPoint",
5642     "clampMin",
5643     "clampMax"
5644   };
5645   static const flatbuffers::TypeTable tt = {
5646     flatbuffers::ST_TABLE, 10, type_codes, type_refs, nullptr, names
5647   };
5648   return &tt;
5649 }
5650 
Convolution2DTypeTable()5651 inline const flatbuffers::TypeTable *Convolution2DTypeTable() {
5652   static const flatbuffers::TypeCode type_codes[] = {
5653     { flatbuffers::ET_SEQUENCE, 0, 0 },
5654     { flatbuffers::ET_FLOAT, 1, -1 },
5655     { flatbuffers::ET_FLOAT, 1, -1 },
5656     { flatbuffers::ET_SEQUENCE, 0, 1 },
5657     { flatbuffers::ET_SEQUENCE, 0, 2 },
5658     { flatbuffers::ET_SEQUENCE, 0, 3 }
5659   };
5660   static const flatbuffers::TypeFunction type_refs[] = {
5661     Convolution2DCommonTypeTable,
5662     IDSTQuanTypeTable,
5663     QuantizedFloatParamTypeTable,
5664     SparseCommonTypeTable
5665   };
5666   static const char * const names[] = {
5667     "common",
5668     "weight",
5669     "bias",
5670     "quanParameter",
5671     "symmetricQuan",
5672     "sparseParameter"
5673   };
5674   static const flatbuffers::TypeTable tt = {
5675     flatbuffers::ST_TABLE, 6, type_codes, type_refs, nullptr, names
5676   };
5677   return &tt;
5678 }
5679 
Convolution3DTypeTable()5680 inline const flatbuffers::TypeTable *Convolution3DTypeTable() {
5681   static const flatbuffers::TypeCode type_codes[] = {
5682     { flatbuffers::ET_SEQUENCE, 0, 0 },
5683     { flatbuffers::ET_FLOAT, 1, -1 },
5684     { flatbuffers::ET_FLOAT, 1, -1 }
5685   };
5686   static const flatbuffers::TypeFunction type_refs[] = {
5687     Convolution3DCommonTypeTable
5688   };
5689   static const char * const names[] = {
5690     "common",
5691     "weight",
5692     "bias"
5693   };
5694   static const flatbuffers::TypeTable tt = {
5695     flatbuffers::ST_TABLE, 3, type_codes, type_refs, nullptr, names
5696   };
5697   return &tt;
5698 }
5699 
InnerProductTypeTable()5700 inline const flatbuffers::TypeTable *InnerProductTypeTable() {
5701   static const flatbuffers::TypeCode type_codes[] = {
5702     { flatbuffers::ET_INT, 0, -1 },
5703     { flatbuffers::ET_INT, 0, -1 },
5704     { flatbuffers::ET_INT, 0, -1 },
5705     { flatbuffers::ET_FLOAT, 1, -1 },
5706     { flatbuffers::ET_FLOAT, 1, -1 },
5707     { flatbuffers::ET_INT, 0, -1 },
5708     { flatbuffers::ET_BOOL, 0, -1 },
5709     { flatbuffers::ET_SEQUENCE, 0, 0 }
5710   };
5711   static const flatbuffers::TypeFunction type_refs[] = {
5712     IDSTQuanTypeTable
5713   };
5714   static const char * const names[] = {
5715     "outputCount",
5716     "biasTerm",
5717     "weightSize",
5718     "weight",
5719     "bias",
5720     "axis",
5721     "transpose",
5722     "quanParameter"
5723   };
5724   static const flatbuffers::TypeTable tt = {
5725     flatbuffers::ST_TABLE, 8, type_codes, type_refs, nullptr, names
5726   };
5727   return &tt;
5728 }
5729 
PoolTypeTable()5730 inline const flatbuffers::TypeTable *PoolTypeTable() {
5731   static const flatbuffers::TypeCode type_codes[] = {
5732     { flatbuffers::ET_INT, 0, -1 },
5733     { flatbuffers::ET_INT, 0, -1 },
5734     { flatbuffers::ET_BOOL, 0, -1 },
5735     { flatbuffers::ET_INT, 0, -1 },
5736     { flatbuffers::ET_INT, 0, -1 },
5737     { flatbuffers::ET_INT, 0, -1 },
5738     { flatbuffers::ET_INT, 0, -1 },
5739     { flatbuffers::ET_CHAR, 0, 0 },
5740     { flatbuffers::ET_CHAR, 0, 1 },
5741     { flatbuffers::ET_INT, 0, 2 },
5742     { flatbuffers::ET_BOOL, 0, -1 },
5743     { flatbuffers::ET_INT, 1, -1 },
5744     { flatbuffers::ET_CHAR, 0, 3 }
5745   };
5746   static const flatbuffers::TypeFunction type_refs[] = {
5747     PoolTypeTypeTable,
5748     PoolPadTypeTypeTable,
5749     DataTypeTypeTable,
5750     AvgPoolCountTypeTypeTable
5751   };
5752   static const char * const names[] = {
5753     "padX",
5754     "padY",
5755     "isGlobal",
5756     "kernelX",
5757     "kernelY",
5758     "strideX",
5759     "strideY",
5760     "type",
5761     "padType",
5762     "dataType",
5763     "ceilModel",
5764     "pads",
5765     "countType"
5766   };
5767   static const flatbuffers::TypeTable tt = {
5768     flatbuffers::ST_TABLE, 13, type_codes, type_refs, nullptr, names
5769   };
5770   return &tt;
5771 }
5772 
Pool3DTypeTable()5773 inline const flatbuffers::TypeTable *Pool3DTypeTable() {
5774   static const flatbuffers::TypeCode type_codes[] = {
5775     { flatbuffers::ET_INT, 1, -1 },
5776     { flatbuffers::ET_INT, 1, -1 },
5777     { flatbuffers::ET_INT, 1, -1 },
5778     { flatbuffers::ET_CHAR, 0, 0 },
5779     { flatbuffers::ET_CHAR, 0, 1 },
5780     { flatbuffers::ET_BOOL, 0, -1 }
5781   };
5782   static const flatbuffers::TypeFunction type_refs[] = {
5783     PoolTypeTypeTable,
5784     PoolPadTypeTypeTable
5785   };
5786   static const char * const names[] = {
5787     "strides",
5788     "kernels",
5789     "pads",
5790     "type",
5791     "padType",
5792     "isGlobal"
5793   };
5794   static const flatbuffers::TypeTable tt = {
5795     flatbuffers::ST_TABLE, 6, type_codes, type_refs, nullptr, names
5796   };
5797   return &tt;
5798 }
5799 
ReluTypeTable()5800 inline const flatbuffers::TypeTable *ReluTypeTable() {
5801   static const flatbuffers::TypeCode type_codes[] = {
5802     { flatbuffers::ET_FLOAT, 0, -1 }
5803   };
5804   static const char * const names[] = {
5805     "slope"
5806   };
5807   static const flatbuffers::TypeTable tt = {
5808     flatbuffers::ST_TABLE, 1, type_codes, nullptr, nullptr, names
5809   };
5810   return &tt;
5811 }
5812 
Relu6TypeTable()5813 inline const flatbuffers::TypeTable *Relu6TypeTable() {
5814   static const flatbuffers::TypeCode type_codes[] = {
5815     { flatbuffers::ET_FLOAT, 0, -1 },
5816     { flatbuffers::ET_FLOAT, 0, -1 }
5817   };
5818   static const char * const names[] = {
5819     "minValue",
5820     "maxValue"
5821   };
5822   static const flatbuffers::TypeTable tt = {
5823     flatbuffers::ST_TABLE, 2, type_codes, nullptr, nullptr, names
5824   };
5825   return &tt;
5826 }
5827 
PReluTypeTable()5828 inline const flatbuffers::TypeTable *PReluTypeTable() {
5829   static const flatbuffers::TypeCode type_codes[] = {
5830     { flatbuffers::ET_INT, 0, -1 },
5831     { flatbuffers::ET_FLOAT, 1, -1 }
5832   };
5833   static const char * const names[] = {
5834     "slopeCount",
5835     "slope"
5836   };
5837   static const flatbuffers::TypeTable tt = {
5838     flatbuffers::ST_TABLE, 2, type_codes, nullptr, nullptr, names
5839   };
5840   return &tt;
5841 }
5842 
ELUTypeTable()5843 inline const flatbuffers::TypeTable *ELUTypeTable() {
5844   static const flatbuffers::TypeCode type_codes[] = {
5845     { flatbuffers::ET_FLOAT, 0, -1 }
5846   };
5847   static const char * const names[] = {
5848     "alpha"
5849   };
5850   static const flatbuffers::TypeTable tt = {
5851     flatbuffers::ST_TABLE, 1, type_codes, nullptr, nullptr, names
5852   };
5853   return &tt;
5854 }
5855 
LRNTypeTable()5856 inline const flatbuffers::TypeTable *LRNTypeTable() {
5857   static const flatbuffers::TypeCode type_codes[] = {
5858     { flatbuffers::ET_INT, 0, -1 },
5859     { flatbuffers::ET_INT, 0, -1 },
5860     { flatbuffers::ET_FLOAT, 0, -1 },
5861     { flatbuffers::ET_FLOAT, 0, -1 }
5862   };
5863   static const char * const names[] = {
5864     "regionType",
5865     "localSize",
5866     "alpha",
5867     "beta"
5868   };
5869   static const flatbuffers::TypeTable tt = {
5870     flatbuffers::ST_TABLE, 4, type_codes, nullptr, nullptr, names
5871   };
5872   return &tt;
5873 }
5874 
ArgMaxTypeTable()5875 inline const flatbuffers::TypeTable *ArgMaxTypeTable() {
5876   static const flatbuffers::TypeCode type_codes[] = {
5877     { flatbuffers::ET_INT, 0, -1 },
5878     { flatbuffers::ET_INT, 0, -1 },
5879     { flatbuffers::ET_INT, 0, -1 },
5880     { flatbuffers::ET_INT, 0, -1 }
5881   };
5882   static const char * const names[] = {
5883     "outMaxVal",
5884     "topK",
5885     "axis",
5886     "softmaxThreshold"
5887   };
5888   static const flatbuffers::TypeTable tt = {
5889     flatbuffers::ST_TABLE, 4, type_codes, nullptr, nullptr, names
5890   };
5891   return &tt;
5892 }
5893 
AxisTypeTable()5894 inline const flatbuffers::TypeTable *AxisTypeTable() {
5895   static const flatbuffers::TypeCode type_codes[] = {
5896     { flatbuffers::ET_INT, 0, -1 }
5897   };
5898   static const char * const names[] = {
5899     "axis"
5900   };
5901   static const flatbuffers::TypeTable tt = {
5902     flatbuffers::ST_TABLE, 1, type_codes, nullptr, nullptr, names
5903   };
5904   return &tt;
5905 }
5906 
InputTypeTable()5907 inline const flatbuffers::TypeTable *InputTypeTable() {
5908   static const flatbuffers::TypeCode type_codes[] = {
5909     { flatbuffers::ET_INT, 1, -1 },
5910     { flatbuffers::ET_INT, 0, 0 },
5911     { flatbuffers::ET_CHAR, 0, 1 }
5912   };
5913   static const flatbuffers::TypeFunction type_refs[] = {
5914     DataTypeTypeTable,
5915     MNN_DATA_FORMATTypeTable
5916   };
5917   static const char * const names[] = {
5918     "dims",
5919     "dtype",
5920     "dformat"
5921   };
5922   static const flatbuffers::TypeTable tt = {
5923     flatbuffers::ST_TABLE, 3, type_codes, type_refs, nullptr, names
5924   };
5925   return &tt;
5926 }
5927 
LSTMTypeTable()5928 inline const flatbuffers::TypeTable *LSTMTypeTable() {
5929   static const flatbuffers::TypeCode type_codes[] = {
5930     { flatbuffers::ET_INT, 0, -1 },
5931     { flatbuffers::ET_INT, 0, -1 },
5932     { flatbuffers::ET_FLOAT, 0, -1 },
5933     { flatbuffers::ET_SEQUENCE, 0, 0 },
5934     { flatbuffers::ET_SEQUENCE, 0, 0 },
5935     { flatbuffers::ET_SEQUENCE, 0, 0 },
5936     { flatbuffers::ET_SEQUENCE, 0, 0 },
5937     { flatbuffers::ET_SEQUENCE, 0, 0 },
5938     { flatbuffers::ET_FLOAT, 0, -1 }
5939   };
5940   static const flatbuffers::TypeFunction type_refs[] = {
5941     BlobTypeTable
5942   };
5943   static const char * const names[] = {
5944     "outputCount",
5945     "weightSize",
5946     "clippingThreshold",
5947     "weightI",
5948     "weightH",
5949     "bias",
5950     "weightIQ",
5951     "weightIA",
5952     "quantScale"
5953   };
5954   static const flatbuffers::TypeTable tt = {
5955     flatbuffers::ST_TABLE, 9, type_codes, type_refs, nullptr, names
5956   };
5957   return &tt;
5958 }
5959 
SliceTypeTable()5960 inline const flatbuffers::TypeTable *SliceTypeTable() {
5961   static const flatbuffers::TypeCode type_codes[] = {
5962     { flatbuffers::ET_INT, 0, -1 },
5963     { flatbuffers::ET_INT, 1, -1 },
5964     { flatbuffers::ET_CHAR, 0, 0 }
5965   };
5966   static const flatbuffers::TypeFunction type_refs[] = {
5967     NetSourceTypeTable
5968   };
5969   static const char * const names[] = {
5970     "axis",
5971     "slicePoints",
5972     "sourceType"
5973   };
5974   static const flatbuffers::TypeTable tt = {
5975     flatbuffers::ST_TABLE, 3, type_codes, type_refs, nullptr, names
5976   };
5977   return &tt;
5978 }
5979 
BatchNormTypeTable()5980 inline const flatbuffers::TypeTable *BatchNormTypeTable() {
5981   static const flatbuffers::TypeCode type_codes[] = {
5982     { flatbuffers::ET_INT, 0, -1 },
5983     { flatbuffers::ET_FLOAT, 1, -1 },
5984     { flatbuffers::ET_FLOAT, 1, -1 },
5985     { flatbuffers::ET_FLOAT, 1, -1 },
5986     { flatbuffers::ET_FLOAT, 1, -1 },
5987     { flatbuffers::ET_FLOAT, 1, -1 },
5988     { flatbuffers::ET_FLOAT, 1, -1 },
5989     { flatbuffers::ET_FLOAT, 0, -1 }
5990   };
5991   static const char * const names[] = {
5992     "channels",
5993     "slopeData",
5994     "meanData",
5995     "varData",
5996     "biasData",
5997     "Adata",
5998     "Bdata",
5999     "epsilon"
6000   };
6001   static const flatbuffers::TypeTable tt = {
6002     flatbuffers::ST_TABLE, 8, type_codes, nullptr, nullptr, names
6003   };
6004   return &tt;
6005 }
6006 
ScaleTypeTable()6007 inline const flatbuffers::TypeTable *ScaleTypeTable() {
6008   static const flatbuffers::TypeCode type_codes[] = {
6009     { flatbuffers::ET_INT, 0, -1 },
6010     { flatbuffers::ET_FLOAT, 1, -1 },
6011     { flatbuffers::ET_FLOAT, 1, -1 }
6012   };
6013   static const char * const names[] = {
6014     "channels",
6015     "scaleData",
6016     "biasData"
6017   };
6018   static const flatbuffers::TypeTable tt = {
6019     flatbuffers::ST_TABLE, 3, type_codes, nullptr, nullptr, names
6020   };
6021   return &tt;
6022 }
6023 
EltwiseTypeTable()6024 inline const flatbuffers::TypeTable *EltwiseTypeTable() {
6025   static const flatbuffers::TypeCode type_codes[] = {
6026     { flatbuffers::ET_CHAR, 0, 0 },
6027     { flatbuffers::ET_FLOAT, 1, -1 }
6028   };
6029   static const flatbuffers::TypeFunction type_refs[] = {
6030     EltwiseTypeTypeTable
6031   };
6032   static const char * const names[] = {
6033     "type",
6034     "coeff"
6035   };
6036   static const flatbuffers::TypeTable tt = {
6037     flatbuffers::ST_TABLE, 2, type_codes, type_refs, nullptr, names
6038   };
6039   return &tt;
6040 }
6041 
FlattenTypeTable()6042 inline const flatbuffers::TypeTable *FlattenTypeTable() {
6043   static const flatbuffers::TypeCode type_codes[] = {
6044     { flatbuffers::ET_INT, 0, -1 },
6045     { flatbuffers::ET_INT, 0, -1 }
6046   };
6047   static const char * const names[] = {
6048     "axis",
6049     "endAxis"
6050   };
6051   static const flatbuffers::TypeTable tt = {
6052     flatbuffers::ST_TABLE, 2, type_codes, nullptr, nullptr, names
6053   };
6054   return &tt;
6055 }
6056 
PermuteTypeTable()6057 inline const flatbuffers::TypeTable *PermuteTypeTable() {
6058   static const flatbuffers::TypeCode type_codes[] = {
6059     { flatbuffers::ET_INT, 1, -1 }
6060   };
6061   static const char * const names[] = {
6062     "dims"
6063   };
6064   static const flatbuffers::TypeTable tt = {
6065     flatbuffers::ST_TABLE, 1, type_codes, nullptr, nullptr, names
6066   };
6067   return &tt;
6068 }
6069 
ReshapeTypeTable()6070 inline const flatbuffers::TypeTable *ReshapeTypeTable() {
6071   static const flatbuffers::TypeCode type_codes[] = {
6072     { flatbuffers::ET_INT, 1, -1 },
6073     { flatbuffers::ET_CHAR, 0, 0 }
6074   };
6075   static const flatbuffers::TypeFunction type_refs[] = {
6076     MNN_DATA_FORMATTypeTable
6077   };
6078   static const char * const names[] = {
6079     "dims",
6080     "dimType"
6081   };
6082   static const flatbuffers::TypeTable tt = {
6083     flatbuffers::ST_TABLE, 2, type_codes, type_refs, nullptr, names
6084   };
6085   return &tt;
6086 }
6087 
DetectionOutputTypeTable()6088 inline const flatbuffers::TypeTable *DetectionOutputTypeTable() {
6089   static const flatbuffers::TypeCode type_codes[] = {
6090     { flatbuffers::ET_INT, 0, -1 },
6091     { flatbuffers::ET_FLOAT, 0, -1 },
6092     { flatbuffers::ET_INT, 0, -1 },
6093     { flatbuffers::ET_INT, 0, -1 },
6094     { flatbuffers::ET_FLOAT, 0, -1 },
6095     { flatbuffers::ET_INT, 0, -1 },
6096     { flatbuffers::ET_INT, 0, -1 },
6097     { flatbuffers::ET_INT, 0, -1 },
6098     { flatbuffers::ET_INT, 0, -1 },
6099     { flatbuffers::ET_FLOAT, 0, -1 }
6100   };
6101   static const char * const names[] = {
6102     "classCount",
6103     "nmsThresholdold",
6104     "nmsTopK",
6105     "keepTopK",
6106     "confidenceThreshold",
6107     "shareLocation",
6108     "backgroundLable",
6109     "varianceEncodedTarget",
6110     "codeType",
6111     "objectnessScore"
6112   };
6113   static const flatbuffers::TypeTable tt = {
6114     flatbuffers::ST_TABLE, 10, type_codes, nullptr, nullptr, names
6115   };
6116   return &tt;
6117 }
6118 
RoiPoolingTypeTable()6119 inline const flatbuffers::TypeTable *RoiPoolingTypeTable() {
6120   static const flatbuffers::TypeCode type_codes[] = {
6121     { flatbuffers::ET_INT, 0, -1 },
6122     { flatbuffers::ET_INT, 0, -1 },
6123     { flatbuffers::ET_FLOAT, 0, -1 }
6124   };
6125   static const char * const names[] = {
6126     "pooledWidth",
6127     "pooledHeight",
6128     "spatialScale"
6129   };
6130   static const flatbuffers::TypeTable tt = {
6131     flatbuffers::ST_TABLE, 3, type_codes, nullptr, nullptr, names
6132   };
6133   return &tt;
6134 }
6135 
ProposalTypeTable()6136 inline const flatbuffers::TypeTable *ProposalTypeTable() {
6137   static const flatbuffers::TypeCode type_codes[] = {
6138     { flatbuffers::ET_INT, 0, -1 },
6139     { flatbuffers::ET_INT, 0, -1 },
6140     { flatbuffers::ET_INT, 0, -1 },
6141     { flatbuffers::ET_INT, 0, -1 },
6142     { flatbuffers::ET_FLOAT, 0, -1 },
6143     { flatbuffers::ET_INT, 0, -1 },
6144     { flatbuffers::ET_SEQUENCE, 0, 0 },
6145     { flatbuffers::ET_SEQUENCE, 0, 0 },
6146     { flatbuffers::ET_SEQUENCE, 0, 0 }
6147   };
6148   static const flatbuffers::TypeFunction type_refs[] = {
6149     BlobTypeTable
6150   };
6151   static const char * const names[] = {
6152     "featStride",
6153     "baseSize",
6154     "preNmsTopN",
6155     "afterNmsTopN",
6156     "nmsThreshold",
6157     "minSize",
6158     "ratios",
6159     "scales",
6160     "anchors"
6161   };
6162   static const flatbuffers::TypeTable tt = {
6163     flatbuffers::ST_TABLE, 9, type_codes, type_refs, nullptr, names
6164   };
6165   return &tt;
6166 }
6167 
InterpTypeTable()6168 inline const flatbuffers::TypeTable *InterpTypeTable() {
6169   static const flatbuffers::TypeCode type_codes[] = {
6170     { flatbuffers::ET_FLOAT, 0, -1 },
6171     { flatbuffers::ET_FLOAT, 0, -1 },
6172     { flatbuffers::ET_INT, 0, -1 },
6173     { flatbuffers::ET_INT, 0, -1 },
6174     { flatbuffers::ET_INT, 0, -1 },
6175     { flatbuffers::ET_BOOL, 0, -1 },
6176     { flatbuffers::ET_BOOL, 0, -1 },
6177     { flatbuffers::ET_FLOAT, 0, -1 },
6178     { flatbuffers::ET_FLOAT, 0, -1 },
6179     { flatbuffers::ET_FLOAT, 0, -1 },
6180     { flatbuffers::ET_CHAR, 0, 0 }
6181   };
6182   static const flatbuffers::TypeFunction type_refs[] = {
6183     CoordinateTransformationModeTypeTable
6184   };
6185   static const char * const names[] = {
6186     "widthScale",
6187     "heightScale",
6188     "outputWidth",
6189     "outputHeight",
6190     "resizeType",
6191     "alignCorners",
6192     "halfPixelCenters",
6193     "widthOffset",
6194     "heightOffset",
6195     "cubicCoeffA",
6196     "ctm"
6197   };
6198   static const flatbuffers::TypeTable tt = {
6199     flatbuffers::ST_TABLE, 11, type_codes, type_refs, nullptr, names
6200   };
6201   return &tt;
6202 }
6203 
ResizeTypeTable()6204 inline const flatbuffers::TypeTable *ResizeTypeTable() {
6205   static const flatbuffers::TypeCode type_codes[] = {
6206     { flatbuffers::ET_FLOAT, 0, -1 },
6207     { flatbuffers::ET_FLOAT, 0, -1 }
6208   };
6209   static const char * const names[] = {
6210     "xScale",
6211     "yScale"
6212   };
6213   static const flatbuffers::TypeTable tt = {
6214     flatbuffers::ST_TABLE, 2, type_codes, nullptr, nullptr, names
6215   };
6216   return &tt;
6217 }
6218 
PriorBoxTypeTable()6219 inline const flatbuffers::TypeTable *PriorBoxTypeTable() {
6220   static const flatbuffers::TypeCode type_codes[] = {
6221     { flatbuffers::ET_FLOAT, 1, -1 },
6222     { flatbuffers::ET_FLOAT, 1, -1 },
6223     { flatbuffers::ET_FLOAT, 1, -1 },
6224     { flatbuffers::ET_FLOAT, 1, -1 },
6225     { flatbuffers::ET_BOOL, 0, -1 },
6226     { flatbuffers::ET_BOOL, 0, -1 },
6227     { flatbuffers::ET_INT, 0, -1 },
6228     { flatbuffers::ET_INT, 0, -1 },
6229     { flatbuffers::ET_INT, 0, -1 },
6230     { flatbuffers::ET_INT, 0, -1 },
6231     { flatbuffers::ET_FLOAT, 0, -1 }
6232   };
6233   static const char * const names[] = {
6234     "minSizes",
6235     "maxSizes",
6236     "aspectRatios",
6237     "variances",
6238     "flip",
6239     "clip",
6240     "imageWidth",
6241     "imageHeight",
6242     "stepWidth",
6243     "stepHeight",
6244     "offset"
6245   };
6246   static const flatbuffers::TypeTable tt = {
6247     flatbuffers::ST_TABLE, 11, type_codes, nullptr, nullptr, names
6248   };
6249   return &tt;
6250 }
6251 
NormalizeTypeTable()6252 inline const flatbuffers::TypeTable *NormalizeTypeTable() {
6253   static const flatbuffers::TypeCode type_codes[] = {
6254     { flatbuffers::ET_INT, 0, -1 },
6255     { flatbuffers::ET_INT, 0, -1 },
6256     { flatbuffers::ET_FLOAT, 0, -1 },
6257     { flatbuffers::ET_FLOAT, 1, -1 }
6258   };
6259   static const char * const names[] = {
6260     "acrossSpatial",
6261     "channelShared",
6262     "eps",
6263     "scale"
6264   };
6265   static const flatbuffers::TypeTable tt = {
6266     flatbuffers::ST_TABLE, 4, type_codes, nullptr, nullptr, names
6267   };
6268   return &tt;
6269 }
6270 
EltwiseInt8TypeTable()6271 inline const flatbuffers::TypeTable *EltwiseInt8TypeTable() {
6272   static const flatbuffers::TypeCode type_codes[] = {
6273     { flatbuffers::ET_CHAR, 0, 0 },
6274     { flatbuffers::ET_SEQUENCE, 0, 1 },
6275     { flatbuffers::ET_SEQUENCE, 0, 1 },
6276     { flatbuffers::ET_SEQUENCE, 0, 1 }
6277   };
6278   static const flatbuffers::TypeFunction type_refs[] = {
6279     EltwiseTypeTypeTable,
6280     QuantizedFloatParamTypeTable
6281   };
6282   static const char * const names[] = {
6283     "type",
6284     "inputQuan0",
6285     "inputQuan1",
6286     "outputQuan"
6287   };
6288   static const flatbuffers::TypeTable tt = {
6289     flatbuffers::ST_TABLE, 4, type_codes, type_refs, nullptr, names
6290   };
6291   return &tt;
6292 }
6293 
6294 }  // namespace MNN
6295 
6296 #endif  // FLATBUFFERS_GENERATED_CAFFEOP_MNN_H_
6297