Daniel Konegen / MNIST_example

Dependencies:   mbed-os

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers schema_generated.h Source File

schema_generated.h

00001 /* Copyright 2018 The TensorFlow Authors. All Rights Reserved.
00002 
00003 Licensed under the Apache License, Version 2.0 (the "License");
00004 you may not use this file except in compliance with the License.
00005 You may obtain a copy of the License at
00006 
00007     http://www.apache.org/licenses/LICENSE-2.0
00008 
00009 Unless required by applicable law or agreed to in writing, software
00010 distributed under the License is distributed on an "AS IS" BASIS,
00011 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00012 See the License for the specific language governing permissions and
00013 limitations under the License.
00014 ==============================================================================*/
00015 // automatically generated by the FlatBuffers compiler, do not modify
00016 
00017 
00018 #ifndef FLATBUFFERS_GENERATED_SCHEMA_TFLITE_H_
00019 #define FLATBUFFERS_GENERATED_SCHEMA_TFLITE_H_
00020 
00021 #include "flatbuffers/flatbuffers.h"
00022 
00023 namespace tflite {
00024 
00025 struct CustomQuantization;
00026 struct CustomQuantizationT;
00027 
00028 struct QuantizationParameters;
00029 struct QuantizationParametersT;
00030 
00031 struct Tensor;
00032 struct TensorT;
00033 
00034 struct Conv2DOptions;
00035 struct Conv2DOptionsT;
00036 
00037 struct Pool2DOptions;
00038 struct Pool2DOptionsT;
00039 
00040 struct DepthwiseConv2DOptions;
00041 struct DepthwiseConv2DOptionsT;
00042 
00043 struct ConcatEmbeddingsOptions;
00044 struct ConcatEmbeddingsOptionsT;
00045 
00046 struct LSHProjectionOptions;
00047 struct LSHProjectionOptionsT;
00048 
00049 struct SVDFOptions;
00050 struct SVDFOptionsT;
00051 
00052 struct RNNOptions;
00053 struct RNNOptionsT;
00054 
00055 struct SequenceRNNOptions;
00056 struct SequenceRNNOptionsT;
00057 
00058 struct BidirectionalSequenceRNNOptions;
00059 struct BidirectionalSequenceRNNOptionsT;
00060 
00061 struct FullyConnectedOptions;
00062 struct FullyConnectedOptionsT;
00063 
00064 struct SoftmaxOptions;
00065 struct SoftmaxOptionsT;
00066 
00067 struct ConcatenationOptions;
00068 struct ConcatenationOptionsT;
00069 
00070 struct AddOptions;
00071 struct AddOptionsT;
00072 
00073 struct MulOptions;
00074 struct MulOptionsT;
00075 
00076 struct L2NormOptions;
00077 struct L2NormOptionsT;
00078 
00079 struct LocalResponseNormalizationOptions;
00080 struct LocalResponseNormalizationOptionsT;
00081 
00082 struct LSTMOptions;
00083 struct LSTMOptionsT;
00084 
00085 struct UnidirectionalSequenceLSTMOptions;
00086 struct UnidirectionalSequenceLSTMOptionsT;
00087 
00088 struct BidirectionalSequenceLSTMOptions;
00089 struct BidirectionalSequenceLSTMOptionsT;
00090 
00091 struct ResizeBilinearOptions;
00092 struct ResizeBilinearOptionsT;
00093 
00094 struct ResizeNearestNeighborOptions;
00095 struct ResizeNearestNeighborOptionsT;
00096 
00097 struct CallOptions;
00098 struct CallOptionsT;
00099 
00100 struct PadOptions;
00101 struct PadOptionsT;
00102 
00103 struct PadV2Options;
00104 struct PadV2OptionsT;
00105 
00106 struct ReshapeOptions;
00107 struct ReshapeOptionsT;
00108 
00109 struct SpaceToBatchNDOptions;
00110 struct SpaceToBatchNDOptionsT;
00111 
00112 struct BatchToSpaceNDOptions;
00113 struct BatchToSpaceNDOptionsT;
00114 
00115 struct SkipGramOptions;
00116 struct SkipGramOptionsT;
00117 
00118 struct SpaceToDepthOptions;
00119 struct SpaceToDepthOptionsT;
00120 
00121 struct DepthToSpaceOptions;
00122 struct DepthToSpaceOptionsT;
00123 
00124 struct SubOptions;
00125 struct SubOptionsT;
00126 
00127 struct DivOptions;
00128 struct DivOptionsT;
00129 
00130 struct TopKV2Options;
00131 struct TopKV2OptionsT;
00132 
00133 struct EmbeddingLookupSparseOptions;
00134 struct EmbeddingLookupSparseOptionsT;
00135 
00136 struct GatherOptions;
00137 struct GatherOptionsT;
00138 
00139 struct TransposeOptions;
00140 struct TransposeOptionsT;
00141 
00142 struct ExpOptions;
00143 struct ExpOptionsT;
00144 
00145 struct CosOptions;
00146 struct CosOptionsT;
00147 
00148 struct ReducerOptions;
00149 struct ReducerOptionsT;
00150 
00151 struct SqueezeOptions;
00152 struct SqueezeOptionsT;
00153 
00154 struct SplitOptions;
00155 struct SplitOptionsT;
00156 
00157 struct SplitVOptions;
00158 struct SplitVOptionsT;
00159 
00160 struct StridedSliceOptions;
00161 struct StridedSliceOptionsT;
00162 
00163 struct LogSoftmaxOptions;
00164 struct LogSoftmaxOptionsT;
00165 
00166 struct CastOptions;
00167 struct CastOptionsT;
00168 
00169 struct DequantizeOptions;
00170 struct DequantizeOptionsT;
00171 
00172 struct MaximumMinimumOptions;
00173 struct MaximumMinimumOptionsT;
00174 
00175 struct TileOptions;
00176 struct TileOptionsT;
00177 
00178 struct ArgMaxOptions;
00179 struct ArgMaxOptionsT;
00180 
00181 struct ArgMinOptions;
00182 struct ArgMinOptionsT;
00183 
00184 struct GreaterOptions;
00185 struct GreaterOptionsT;
00186 
00187 struct GreaterEqualOptions;
00188 struct GreaterEqualOptionsT;
00189 
00190 struct LessOptions;
00191 struct LessOptionsT;
00192 
00193 struct LessEqualOptions;
00194 struct LessEqualOptionsT;
00195 
00196 struct NegOptions;
00197 struct NegOptionsT;
00198 
00199 struct SelectOptions;
00200 struct SelectOptionsT;
00201 
00202 struct SliceOptions;
00203 struct SliceOptionsT;
00204 
00205 struct TransposeConvOptions;
00206 struct TransposeConvOptionsT;
00207 
00208 struct ExpandDimsOptions;
00209 struct ExpandDimsOptionsT;
00210 
00211 struct SparseToDenseOptions;
00212 struct SparseToDenseOptionsT;
00213 
00214 struct EqualOptions;
00215 struct EqualOptionsT;
00216 
00217 struct NotEqualOptions;
00218 struct NotEqualOptionsT;
00219 
00220 struct ShapeOptions;
00221 struct ShapeOptionsT;
00222 
00223 struct RankOptions;
00224 struct RankOptionsT;
00225 
00226 struct PowOptions;
00227 struct PowOptionsT;
00228 
00229 struct FakeQuantOptions;
00230 struct FakeQuantOptionsT;
00231 
00232 struct PackOptions;
00233 struct PackOptionsT;
00234 
00235 struct LogicalOrOptions;
00236 struct LogicalOrOptionsT;
00237 
00238 struct OneHotOptions;
00239 struct OneHotOptionsT;
00240 
00241 struct AbsOptions;
00242 struct AbsOptionsT;
00243 
00244 struct HardSwishOptions;
00245 struct HardSwishOptionsT;
00246 
00247 struct LogicalAndOptions;
00248 struct LogicalAndOptionsT;
00249 
00250 struct LogicalNotOptions;
00251 struct LogicalNotOptionsT;
00252 
00253 struct UnpackOptions;
00254 struct UnpackOptionsT;
00255 
00256 struct FloorDivOptions;
00257 struct FloorDivOptionsT;
00258 
00259 struct SquareOptions;
00260 struct SquareOptionsT;
00261 
00262 struct ZerosLikeOptions;
00263 struct ZerosLikeOptionsT;
00264 
00265 struct FillOptions;
00266 struct FillOptionsT;
00267 
00268 struct FloorModOptions;
00269 struct FloorModOptionsT;
00270 
00271 struct RangeOptions;
00272 struct RangeOptionsT;
00273 
00274 struct LeakyReluOptions;
00275 struct LeakyReluOptionsT;
00276 
00277 struct SquaredDifferenceOptions;
00278 struct SquaredDifferenceOptionsT;
00279 
00280 struct MirrorPadOptions;
00281 struct MirrorPadOptionsT;
00282 
00283 struct UniqueOptions;
00284 struct UniqueOptionsT;
00285 
00286 struct ReverseV2Options;
00287 struct ReverseV2OptionsT;
00288 
00289 struct AddNOptions;
00290 struct AddNOptionsT;
00291 
00292 struct GatherNdOptions;
00293 struct GatherNdOptionsT;
00294 
00295 struct WhereOptions;
00296 struct WhereOptionsT;
00297 
00298 struct ReverseSequenceOptions;
00299 struct ReverseSequenceOptionsT;
00300 
00301 struct MatrixDiagOptions;
00302 struct MatrixDiagOptionsT;
00303 
00304 struct QuantizeOptions;
00305 struct QuantizeOptionsT;
00306 
00307 struct MatrixSetDiagOptions;
00308 struct MatrixSetDiagOptionsT;
00309 
00310 struct IfOptions;
00311 struct IfOptionsT;
00312 
00313 struct WhileOptions;
00314 struct WhileOptionsT;
00315 
00316 struct NonMaxSuppressionV4Options;
00317 struct NonMaxSuppressionV4OptionsT;
00318 
00319 struct NonMaxSuppressionV5Options;
00320 struct NonMaxSuppressionV5OptionsT;
00321 
00322 struct ScatterNdOptions;
00323 struct ScatterNdOptionsT;
00324 
00325 struct OperatorCode;
00326 struct OperatorCodeT;
00327 
00328 struct Operator;
00329 struct OperatorT;
00330 
00331 struct SubGraph;
00332 struct SubGraphT;
00333 
00334 struct Buffer;
00335 struct BufferT;
00336 
00337 struct Metadata;
00338 struct MetadataT;
00339 
00340 struct Model;
00341 struct ModelT;
00342 
00343 enum TensorType {
00344   TensorType_FLOAT32 = 0,
00345   TensorType_FLOAT16 = 1,
00346   TensorType_INT32 = 2,
00347   TensorType_UINT8 = 3,
00348   TensorType_INT64 = 4,
00349   TensorType_STRING = 5,
00350   TensorType_BOOL = 6,
00351   TensorType_INT16 = 7,
00352   TensorType_COMPLEX64 = 8,
00353   TensorType_INT8 = 9,
00354   TensorType_MIN = TensorType_FLOAT32,
00355   TensorType_MAX = TensorType_INT8
00356 };
00357 
00358 inline const TensorType (&EnumValuesTensorType())[10] {
00359   static const TensorType values[] = {
00360     TensorType_FLOAT32,
00361     TensorType_FLOAT16,
00362     TensorType_INT32,
00363     TensorType_UINT8,
00364     TensorType_INT64,
00365     TensorType_STRING,
00366     TensorType_BOOL,
00367     TensorType_INT16,
00368     TensorType_COMPLEX64,
00369     TensorType_INT8
00370   };
00371   return values;
00372 }
00373 
00374 inline const char * const *EnumNamesTensorType() {
00375   static const char * const names[] = {
00376     "FLOAT32",
00377     "FLOAT16",
00378     "INT32",
00379     "UINT8",
00380     "INT64",
00381     "STRING",
00382     "BOOL",
00383     "INT16",
00384     "COMPLEX64",
00385     "INT8",
00386     nullptr
00387   };
00388   return names;
00389 }
00390 
00391 inline const char *EnumNameTensorType(TensorType e) {
00392   if (e < TensorType_FLOAT32 || e > TensorType_INT8) return "";
00393   const size_t index = static_cast<size_t>(e);
00394   return EnumNamesTensorType()[index];
00395 }
00396 
00397 enum QuantizationDetails {
00398   QuantizationDetails_NONE = 0,
00399   QuantizationDetails_CustomQuantization = 1,
00400   QuantizationDetails_MIN = QuantizationDetails_NONE,
00401   QuantizationDetails_MAX = QuantizationDetails_CustomQuantization
00402 };
00403 
00404 inline const QuantizationDetails (&EnumValuesQuantizationDetails())[2] {
00405   static const QuantizationDetails values[] = {
00406     QuantizationDetails_NONE,
00407     QuantizationDetails_CustomQuantization
00408   };
00409   return values;
00410 }
00411 
00412 inline const char * const *EnumNamesQuantizationDetails() {
00413   static const char * const names[] = {
00414     "NONE",
00415     "CustomQuantization",
00416     nullptr
00417   };
00418   return names;
00419 }
00420 
00421 inline const char *EnumNameQuantizationDetails(QuantizationDetails e) {
00422   if (e < QuantizationDetails_NONE || e > QuantizationDetails_CustomQuantization) return "";
00423   const size_t index = static_cast<size_t>(e);
00424   return EnumNamesQuantizationDetails()[index];
00425 }
00426 
00427 template<typename T> struct QuantizationDetailsTraits {
00428   static const QuantizationDetails enum_value = QuantizationDetails_NONE;
00429 };
00430 
00431 template<> struct QuantizationDetailsTraits<CustomQuantization> {
00432   static const QuantizationDetails enum_value = QuantizationDetails_CustomQuantization;
00433 };
00434 
00435 struct QuantizationDetailsUnion {
00436   QuantizationDetails type;
00437   void *value;
00438 
00439   QuantizationDetailsUnion() : type(QuantizationDetails_NONE), value(nullptr) {}
00440   QuantizationDetailsUnion(QuantizationDetailsUnion&& u) FLATBUFFERS_NOEXCEPT :
00441     type(QuantizationDetails_NONE), value(nullptr)
00442     { std::swap(type, u.type); std::swap(value, u.value); }
00443   QuantizationDetailsUnion(const QuantizationDetailsUnion &) FLATBUFFERS_NOEXCEPT;
00444   QuantizationDetailsUnion &operator=(const QuantizationDetailsUnion &u) FLATBUFFERS_NOEXCEPT
00445     { QuantizationDetailsUnion t(u); std::swap(type, t.type); std::swap(value, t.value); return *this; }
00446   QuantizationDetailsUnion &operator=(QuantizationDetailsUnion &&u) FLATBUFFERS_NOEXCEPT
00447     { std::swap(type, u.type); std::swap(value, u.value); return *this; }
00448   ~QuantizationDetailsUnion() { Reset(); }
00449 
00450   void Reset();
00451 
00452 #ifndef FLATBUFFERS_CPP98_STL
00453   template <typename T>
00454   void Set(T&& val) {
00455     using RT = typename std::remove_reference<T>::type;
00456     Reset();
00457     type = QuantizationDetailsTraits<typename RT::TableType>::enum_value;
00458     if (type != QuantizationDetails_NONE) {
00459       value = new RT(std::forward<T>(val));
00460     }
00461   }
00462 #endif  // FLATBUFFERS_CPP98_STL
00463 
00464   static void *UnPack(const void *obj, QuantizationDetails type, const flatbuffers::resolver_function_t *resolver);
00465   flatbuffers::Offset<void> Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher = nullptr) const;
00466 
00467   CustomQuantizationT *AsCustomQuantization() {
00468     return type == QuantizationDetails_CustomQuantization ?
00469       reinterpret_cast<CustomQuantizationT *>(value) : nullptr;
00470   }
00471   const CustomQuantizationT *AsCustomQuantization() const {
00472     return type == QuantizationDetails_CustomQuantization ?
00473       reinterpret_cast<const CustomQuantizationT *>(value) : nullptr;
00474   }
00475 };
00476 
00477 bool VerifyQuantizationDetails(flatbuffers::Verifier &verifier, const void *obj, QuantizationDetails type);
00478 bool VerifyQuantizationDetailsVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<uint8_t> *types);
00479 
00480 enum BuiltinOperator {
00481   BuiltinOperator_ADD = 0,
00482   BuiltinOperator_AVERAGE_POOL_2D = 1,
00483   BuiltinOperator_CONCATENATION = 2,
00484   BuiltinOperator_CONV_2D = 3,
00485   BuiltinOperator_DEPTHWISE_CONV_2D = 4,
00486   BuiltinOperator_DEPTH_TO_SPACE = 5,
00487   BuiltinOperator_DEQUANTIZE = 6,
00488   BuiltinOperator_EMBEDDING_LOOKUP = 7,
00489   BuiltinOperator_FLOOR = 8,
00490   BuiltinOperator_FULLY_CONNECTED = 9,
00491   BuiltinOperator_HASHTABLE_LOOKUP = 10,
00492   BuiltinOperator_L2_NORMALIZATION = 11,
00493   BuiltinOperator_L2_POOL_2D = 12,
00494   BuiltinOperator_LOCAL_RESPONSE_NORMALIZATION = 13,
00495   BuiltinOperator_LOGISTIC = 14,
00496   BuiltinOperator_LSH_PROJECTION = 15,
00497   BuiltinOperator_LSTM = 16,
00498   BuiltinOperator_MAX_POOL_2D = 17,
00499   BuiltinOperator_MUL = 18,
00500   BuiltinOperator_RELU = 19,
00501   BuiltinOperator_RELU_N1_TO_1 = 20,
00502   BuiltinOperator_RELU6 = 21,
00503   BuiltinOperator_RESHAPE = 22,
00504   BuiltinOperator_RESIZE_BILINEAR = 23,
00505   BuiltinOperator_RNN = 24,
00506   BuiltinOperator_SOFTMAX = 25,
00507   BuiltinOperator_SPACE_TO_DEPTH = 26,
00508   BuiltinOperator_SVDF = 27,
00509   BuiltinOperator_TANH = 28,
00510   BuiltinOperator_CONCAT_EMBEDDINGS = 29,
00511   BuiltinOperator_SKIP_GRAM = 30,
00512   BuiltinOperator_CALL = 31,
00513   BuiltinOperator_CUSTOM = 32,
00514   BuiltinOperator_EMBEDDING_LOOKUP_SPARSE = 33,
00515   BuiltinOperator_PAD = 34,
00516   BuiltinOperator_UNIDIRECTIONAL_SEQUENCE_RNN = 35,
00517   BuiltinOperator_GATHER = 36,
00518   BuiltinOperator_BATCH_TO_SPACE_ND = 37,
00519   BuiltinOperator_SPACE_TO_BATCH_ND = 38,
00520   BuiltinOperator_TRANSPOSE = 39,
00521   BuiltinOperator_MEAN = 40,
00522   BuiltinOperator_SUB = 41,
00523   BuiltinOperator_DIV = 42,
00524   BuiltinOperator_SQUEEZE = 43,
00525   BuiltinOperator_UNIDIRECTIONAL_SEQUENCE_LSTM = 44,
00526   BuiltinOperator_STRIDED_SLICE = 45,
00527   BuiltinOperator_BIDIRECTIONAL_SEQUENCE_RNN = 46,
00528   BuiltinOperator_EXP = 47,
00529   BuiltinOperator_TOPK_V2 = 48,
00530   BuiltinOperator_SPLIT = 49,
00531   BuiltinOperator_LOG_SOFTMAX = 50,
00532   BuiltinOperator_DELEGATE = 51,
00533   BuiltinOperator_BIDIRECTIONAL_SEQUENCE_LSTM = 52,
00534   BuiltinOperator_CAST = 53,
00535   BuiltinOperator_PRELU = 54,
00536   BuiltinOperator_MAXIMUM = 55,
00537   BuiltinOperator_ARG_MAX = 56,
00538   BuiltinOperator_MINIMUM = 57,
00539   BuiltinOperator_LESS = 58,
00540   BuiltinOperator_NEG = 59,
00541   BuiltinOperator_PADV2 = 60,
00542   BuiltinOperator_GREATER = 61,
00543   BuiltinOperator_GREATER_EQUAL = 62,
00544   BuiltinOperator_LESS_EQUAL = 63,
00545   BuiltinOperator_SELECT = 64,
00546   BuiltinOperator_SLICE = 65,
00547   BuiltinOperator_SIN = 66,
00548   BuiltinOperator_TRANSPOSE_CONV = 67,
00549   BuiltinOperator_SPARSE_TO_DENSE = 68,
00550   BuiltinOperator_TILE = 69,
00551   BuiltinOperator_EXPAND_DIMS = 70,
00552   BuiltinOperator_EQUAL = 71,
00553   BuiltinOperator_NOT_EQUAL = 72,
00554   BuiltinOperator_LOG = 73,
00555   BuiltinOperator_SUM = 74,
00556   BuiltinOperator_SQRT = 75,
00557   BuiltinOperator_RSQRT = 76,
00558   BuiltinOperator_SHAPE = 77,
00559   BuiltinOperator_POW = 78,
00560   BuiltinOperator_ARG_MIN = 79,
00561   BuiltinOperator_FAKE_QUANT = 80,
00562   BuiltinOperator_REDUCE_PROD = 81,
00563   BuiltinOperator_REDUCE_MAX = 82,
00564   BuiltinOperator_PACK = 83,
00565   BuiltinOperator_LOGICAL_OR = 84,
00566   BuiltinOperator_ONE_HOT = 85,
00567   BuiltinOperator_LOGICAL_AND = 86,
00568   BuiltinOperator_LOGICAL_NOT = 87,
00569   BuiltinOperator_UNPACK = 88,
00570   BuiltinOperator_REDUCE_MIN = 89,
00571   BuiltinOperator_FLOOR_DIV = 90,
00572   BuiltinOperator_REDUCE_ANY = 91,
00573   BuiltinOperator_SQUARE = 92,
00574   BuiltinOperator_ZEROS_LIKE = 93,
00575   BuiltinOperator_FILL = 94,
00576   BuiltinOperator_FLOOR_MOD = 95,
00577   BuiltinOperator_RANGE = 96,
00578   BuiltinOperator_RESIZE_NEAREST_NEIGHBOR = 97,
00579   BuiltinOperator_LEAKY_RELU = 98,
00580   BuiltinOperator_SQUARED_DIFFERENCE = 99,
00581   BuiltinOperator_MIRROR_PAD = 100,
00582   BuiltinOperator_ABS = 101,
00583   BuiltinOperator_SPLIT_V = 102,
00584   BuiltinOperator_UNIQUE = 103,
00585   BuiltinOperator_CEIL = 104,
00586   BuiltinOperator_REVERSE_V2 = 105,
00587   BuiltinOperator_ADD_N = 106,
00588   BuiltinOperator_GATHER_ND = 107,
00589   BuiltinOperator_COS = 108,
00590   BuiltinOperator_WHERE = 109,
00591   BuiltinOperator_RANK = 110,
00592   BuiltinOperator_ELU = 111,
00593   BuiltinOperator_REVERSE_SEQUENCE = 112,
00594   BuiltinOperator_MATRIX_DIAG = 113,
00595   BuiltinOperator_QUANTIZE = 114,
00596   BuiltinOperator_MATRIX_SET_DIAG = 115,
00597   BuiltinOperator_ROUND = 116,
00598   BuiltinOperator_HARD_SWISH = 117,
00599   BuiltinOperator_IF = 118,
00600   BuiltinOperator_WHILE = 119,
00601   BuiltinOperator_NON_MAX_SUPPRESSION_V4 = 120,
00602   BuiltinOperator_NON_MAX_SUPPRESSION_V5 = 121,
00603   BuiltinOperator_SCATTER_ND = 122,
00604   BuiltinOperator_MIN = BuiltinOperator_ADD,
00605   BuiltinOperator_MAX = BuiltinOperator_SCATTER_ND
00606 };
00607 
00608 inline const BuiltinOperator (&EnumValuesBuiltinOperator())[123] {
00609   static const BuiltinOperator values[] = {
00610     BuiltinOperator_ADD,
00611     BuiltinOperator_AVERAGE_POOL_2D,
00612     BuiltinOperator_CONCATENATION,
00613     BuiltinOperator_CONV_2D,
00614     BuiltinOperator_DEPTHWISE_CONV_2D,
00615     BuiltinOperator_DEPTH_TO_SPACE,
00616     BuiltinOperator_DEQUANTIZE,
00617     BuiltinOperator_EMBEDDING_LOOKUP,
00618     BuiltinOperator_FLOOR,
00619     BuiltinOperator_FULLY_CONNECTED,
00620     BuiltinOperator_HASHTABLE_LOOKUP,
00621     BuiltinOperator_L2_NORMALIZATION,
00622     BuiltinOperator_L2_POOL_2D,
00623     BuiltinOperator_LOCAL_RESPONSE_NORMALIZATION,
00624     BuiltinOperator_LOGISTIC,
00625     BuiltinOperator_LSH_PROJECTION,
00626     BuiltinOperator_LSTM,
00627     BuiltinOperator_MAX_POOL_2D,
00628     BuiltinOperator_MUL,
00629     BuiltinOperator_RELU,
00630     BuiltinOperator_RELU_N1_TO_1,
00631     BuiltinOperator_RELU6,
00632     BuiltinOperator_RESHAPE,
00633     BuiltinOperator_RESIZE_BILINEAR,
00634     BuiltinOperator_RNN,
00635     BuiltinOperator_SOFTMAX,
00636     BuiltinOperator_SPACE_TO_DEPTH,
00637     BuiltinOperator_SVDF,
00638     BuiltinOperator_TANH,
00639     BuiltinOperator_CONCAT_EMBEDDINGS,
00640     BuiltinOperator_SKIP_GRAM,
00641     BuiltinOperator_CALL,
00642     BuiltinOperator_CUSTOM,
00643     BuiltinOperator_EMBEDDING_LOOKUP_SPARSE,
00644     BuiltinOperator_PAD,
00645     BuiltinOperator_UNIDIRECTIONAL_SEQUENCE_RNN,
00646     BuiltinOperator_GATHER,
00647     BuiltinOperator_BATCH_TO_SPACE_ND,
00648     BuiltinOperator_SPACE_TO_BATCH_ND,
00649     BuiltinOperator_TRANSPOSE,
00650     BuiltinOperator_MEAN,
00651     BuiltinOperator_SUB,
00652     BuiltinOperator_DIV,
00653     BuiltinOperator_SQUEEZE,
00654     BuiltinOperator_UNIDIRECTIONAL_SEQUENCE_LSTM,
00655     BuiltinOperator_STRIDED_SLICE,
00656     BuiltinOperator_BIDIRECTIONAL_SEQUENCE_RNN,
00657     BuiltinOperator_EXP,
00658     BuiltinOperator_TOPK_V2,
00659     BuiltinOperator_SPLIT,
00660     BuiltinOperator_LOG_SOFTMAX,
00661     BuiltinOperator_DELEGATE,
00662     BuiltinOperator_BIDIRECTIONAL_SEQUENCE_LSTM,
00663     BuiltinOperator_CAST,
00664     BuiltinOperator_PRELU,
00665     BuiltinOperator_MAXIMUM,
00666     BuiltinOperator_ARG_MAX,
00667     BuiltinOperator_MINIMUM,
00668     BuiltinOperator_LESS,
00669     BuiltinOperator_NEG,
00670     BuiltinOperator_PADV2,
00671     BuiltinOperator_GREATER,
00672     BuiltinOperator_GREATER_EQUAL,
00673     BuiltinOperator_LESS_EQUAL,
00674     BuiltinOperator_SELECT,
00675     BuiltinOperator_SLICE,
00676     BuiltinOperator_SIN,
00677     BuiltinOperator_TRANSPOSE_CONV,
00678     BuiltinOperator_SPARSE_TO_DENSE,
00679     BuiltinOperator_TILE,
00680     BuiltinOperator_EXPAND_DIMS,
00681     BuiltinOperator_EQUAL,
00682     BuiltinOperator_NOT_EQUAL,
00683     BuiltinOperator_LOG,
00684     BuiltinOperator_SUM,
00685     BuiltinOperator_SQRT,
00686     BuiltinOperator_RSQRT,
00687     BuiltinOperator_SHAPE,
00688     BuiltinOperator_POW,
00689     BuiltinOperator_ARG_MIN,
00690     BuiltinOperator_FAKE_QUANT,
00691     BuiltinOperator_REDUCE_PROD,
00692     BuiltinOperator_REDUCE_MAX,
00693     BuiltinOperator_PACK,
00694     BuiltinOperator_LOGICAL_OR,
00695     BuiltinOperator_ONE_HOT,
00696     BuiltinOperator_LOGICAL_AND,
00697     BuiltinOperator_LOGICAL_NOT,
00698     BuiltinOperator_UNPACK,
00699     BuiltinOperator_REDUCE_MIN,
00700     BuiltinOperator_FLOOR_DIV,
00701     BuiltinOperator_REDUCE_ANY,
00702     BuiltinOperator_SQUARE,
00703     BuiltinOperator_ZEROS_LIKE,
00704     BuiltinOperator_FILL,
00705     BuiltinOperator_FLOOR_MOD,
00706     BuiltinOperator_RANGE,
00707     BuiltinOperator_RESIZE_NEAREST_NEIGHBOR,
00708     BuiltinOperator_LEAKY_RELU,
00709     BuiltinOperator_SQUARED_DIFFERENCE,
00710     BuiltinOperator_MIRROR_PAD,
00711     BuiltinOperator_ABS,
00712     BuiltinOperator_SPLIT_V,
00713     BuiltinOperator_UNIQUE,
00714     BuiltinOperator_CEIL,
00715     BuiltinOperator_REVERSE_V2,
00716     BuiltinOperator_ADD_N,
00717     BuiltinOperator_GATHER_ND,
00718     BuiltinOperator_COS,
00719     BuiltinOperator_WHERE,
00720     BuiltinOperator_RANK,
00721     BuiltinOperator_ELU,
00722     BuiltinOperator_REVERSE_SEQUENCE,
00723     BuiltinOperator_MATRIX_DIAG,
00724     BuiltinOperator_QUANTIZE,
00725     BuiltinOperator_MATRIX_SET_DIAG,
00726     BuiltinOperator_ROUND,
00727     BuiltinOperator_HARD_SWISH,
00728     BuiltinOperator_IF,
00729     BuiltinOperator_WHILE,
00730     BuiltinOperator_NON_MAX_SUPPRESSION_V4,
00731     BuiltinOperator_NON_MAX_SUPPRESSION_V5,
00732     BuiltinOperator_SCATTER_ND
00733   };
00734   return values;
00735 }
00736 
00737 inline const char * const *EnumNamesBuiltinOperator() {
00738   static const char * const names[] = {
00739     "ADD",
00740     "AVERAGE_POOL_2D",
00741     "CONCATENATION",
00742     "CONV_2D",
00743     "DEPTHWISE_CONV_2D",
00744     "DEPTH_TO_SPACE",
00745     "DEQUANTIZE",
00746     "EMBEDDING_LOOKUP",
00747     "FLOOR",
00748     "FULLY_CONNECTED",
00749     "HASHTABLE_LOOKUP",
00750     "L2_NORMALIZATION",
00751     "L2_POOL_2D",
00752     "LOCAL_RESPONSE_NORMALIZATION",
00753     "LOGISTIC",
00754     "LSH_PROJECTION",
00755     "LSTM",
00756     "MAX_POOL_2D",
00757     "MUL",
00758     "RELU",
00759     "RELU_N1_TO_1",
00760     "RELU6",
00761     "RESHAPE",
00762     "RESIZE_BILINEAR",
00763     "RNN",
00764     "SOFTMAX",
00765     "SPACE_TO_DEPTH",
00766     "SVDF",
00767     "TANH",
00768     "CONCAT_EMBEDDINGS",
00769     "SKIP_GRAM",
00770     "CALL",
00771     "CUSTOM",
00772     "EMBEDDING_LOOKUP_SPARSE",
00773     "PAD",
00774     "UNIDIRECTIONAL_SEQUENCE_RNN",
00775     "GATHER",
00776     "BATCH_TO_SPACE_ND",
00777     "SPACE_TO_BATCH_ND",
00778     "TRANSPOSE",
00779     "MEAN",
00780     "SUB",
00781     "DIV",
00782     "SQUEEZE",
00783     "UNIDIRECTIONAL_SEQUENCE_LSTM",
00784     "STRIDED_SLICE",
00785     "BIDIRECTIONAL_SEQUENCE_RNN",
00786     "EXP",
00787     "TOPK_V2",
00788     "SPLIT",
00789     "LOG_SOFTMAX",
00790     "DELEGATE",
00791     "BIDIRECTIONAL_SEQUENCE_LSTM",
00792     "CAST",
00793     "PRELU",
00794     "MAXIMUM",
00795     "ARG_MAX",
00796     "MINIMUM",
00797     "LESS",
00798     "NEG",
00799     "PADV2",
00800     "GREATER",
00801     "GREATER_EQUAL",
00802     "LESS_EQUAL",
00803     "SELECT",
00804     "SLICE",
00805     "SIN",
00806     "TRANSPOSE_CONV",
00807     "SPARSE_TO_DENSE",
00808     "TILE",
00809     "EXPAND_DIMS",
00810     "EQUAL",
00811     "NOT_EQUAL",
00812     "LOG",
00813     "SUM",
00814     "SQRT",
00815     "RSQRT",
00816     "SHAPE",
00817     "POW",
00818     "ARG_MIN",
00819     "FAKE_QUANT",
00820     "REDUCE_PROD",
00821     "REDUCE_MAX",
00822     "PACK",
00823     "LOGICAL_OR",
00824     "ONE_HOT",
00825     "LOGICAL_AND",
00826     "LOGICAL_NOT",
00827     "UNPACK",
00828     "REDUCE_MIN",
00829     "FLOOR_DIV",
00830     "REDUCE_ANY",
00831     "SQUARE",
00832     "ZEROS_LIKE",
00833     "FILL",
00834     "FLOOR_MOD",
00835     "RANGE",
00836     "RESIZE_NEAREST_NEIGHBOR",
00837     "LEAKY_RELU",
00838     "SQUARED_DIFFERENCE",
00839     "MIRROR_PAD",
00840     "ABS",
00841     "SPLIT_V",
00842     "UNIQUE",
00843     "CEIL",
00844     "REVERSE_V2",
00845     "ADD_N",
00846     "GATHER_ND",
00847     "COS",
00848     "WHERE",
00849     "RANK",
00850     "ELU",
00851     "REVERSE_SEQUENCE",
00852     "MATRIX_DIAG",
00853     "QUANTIZE",
00854     "MATRIX_SET_DIAG",
00855     "ROUND",
00856     "HARD_SWISH",
00857     "IF",
00858     "WHILE",
00859     "NON_MAX_SUPPRESSION_V4",
00860     "NON_MAX_SUPPRESSION_V5",
00861     "SCATTER_ND",
00862     nullptr
00863   };
00864   return names;
00865 }
00866 
00867 inline const char *EnumNameBuiltinOperator(BuiltinOperator e) {
00868   if (e < BuiltinOperator_ADD || e > BuiltinOperator_SCATTER_ND) return "";
00869   const size_t index = static_cast<size_t>(e);
00870   return EnumNamesBuiltinOperator()[index];
00871 }
00872 
00873 enum BuiltinOptions {
00874   BuiltinOptions_NONE = 0,
00875   BuiltinOptions_Conv2DOptions = 1,
00876   BuiltinOptions_DepthwiseConv2DOptions = 2,
00877   BuiltinOptions_ConcatEmbeddingsOptions = 3,
00878   BuiltinOptions_LSHProjectionOptions = 4,
00879   BuiltinOptions_Pool2DOptions = 5,
00880   BuiltinOptions_SVDFOptions = 6,
00881   BuiltinOptions_RNNOptions = 7,
00882   BuiltinOptions_FullyConnectedOptions = 8,
00883   BuiltinOptions_SoftmaxOptions = 9,
00884   BuiltinOptions_ConcatenationOptions = 10,
00885   BuiltinOptions_AddOptions = 11,
00886   BuiltinOptions_L2NormOptions = 12,
00887   BuiltinOptions_LocalResponseNormalizationOptions = 13,
00888   BuiltinOptions_LSTMOptions = 14,
00889   BuiltinOptions_ResizeBilinearOptions = 15,
00890   BuiltinOptions_CallOptions = 16,
00891   BuiltinOptions_ReshapeOptions = 17,
00892   BuiltinOptions_SkipGramOptions = 18,
00893   BuiltinOptions_SpaceToDepthOptions = 19,
00894   BuiltinOptions_EmbeddingLookupSparseOptions = 20,
00895   BuiltinOptions_MulOptions = 21,
00896   BuiltinOptions_PadOptions = 22,
00897   BuiltinOptions_GatherOptions = 23,
00898   BuiltinOptions_BatchToSpaceNDOptions = 24,
00899   BuiltinOptions_SpaceToBatchNDOptions = 25,
00900   BuiltinOptions_TransposeOptions = 26,
00901   BuiltinOptions_ReducerOptions = 27,
00902   BuiltinOptions_SubOptions = 28,
00903   BuiltinOptions_DivOptions = 29,
00904   BuiltinOptions_SqueezeOptions = 30,
00905   BuiltinOptions_SequenceRNNOptions = 31,
00906   BuiltinOptions_StridedSliceOptions = 32,
00907   BuiltinOptions_ExpOptions = 33,
00908   BuiltinOptions_TopKV2Options = 34,
00909   BuiltinOptions_SplitOptions = 35,
00910   BuiltinOptions_LogSoftmaxOptions = 36,
00911   BuiltinOptions_CastOptions = 37,
00912   BuiltinOptions_DequantizeOptions = 38,
00913   BuiltinOptions_MaximumMinimumOptions = 39,
00914   BuiltinOptions_ArgMaxOptions = 40,
00915   BuiltinOptions_LessOptions = 41,
00916   BuiltinOptions_NegOptions = 42,
00917   BuiltinOptions_PadV2Options = 43,
00918   BuiltinOptions_GreaterOptions = 44,
00919   BuiltinOptions_GreaterEqualOptions = 45,
00920   BuiltinOptions_LessEqualOptions = 46,
00921   BuiltinOptions_SelectOptions = 47,
00922   BuiltinOptions_SliceOptions = 48,
00923   BuiltinOptions_TransposeConvOptions = 49,
00924   BuiltinOptions_SparseToDenseOptions = 50,
00925   BuiltinOptions_TileOptions = 51,
00926   BuiltinOptions_ExpandDimsOptions = 52,
00927   BuiltinOptions_EqualOptions = 53,
00928   BuiltinOptions_NotEqualOptions = 54,
00929   BuiltinOptions_ShapeOptions = 55,
00930   BuiltinOptions_PowOptions = 56,
00931   BuiltinOptions_ArgMinOptions = 57,
00932   BuiltinOptions_FakeQuantOptions = 58,
00933   BuiltinOptions_PackOptions = 59,
00934   BuiltinOptions_LogicalOrOptions = 60,
00935   BuiltinOptions_OneHotOptions = 61,
00936   BuiltinOptions_LogicalAndOptions = 62,
00937   BuiltinOptions_LogicalNotOptions = 63,
00938   BuiltinOptions_UnpackOptions = 64,
00939   BuiltinOptions_FloorDivOptions = 65,
00940   BuiltinOptions_SquareOptions = 66,
00941   BuiltinOptions_ZerosLikeOptions = 67,
00942   BuiltinOptions_FillOptions = 68,
00943   BuiltinOptions_BidirectionalSequenceLSTMOptions = 69,
00944   BuiltinOptions_BidirectionalSequenceRNNOptions = 70,
00945   BuiltinOptions_UnidirectionalSequenceLSTMOptions = 71,
00946   BuiltinOptions_FloorModOptions = 72,
00947   BuiltinOptions_RangeOptions = 73,
00948   BuiltinOptions_ResizeNearestNeighborOptions = 74,
00949   BuiltinOptions_LeakyReluOptions = 75,
00950   BuiltinOptions_SquaredDifferenceOptions = 76,
00951   BuiltinOptions_MirrorPadOptions = 77,
00952   BuiltinOptions_AbsOptions = 78,
00953   BuiltinOptions_SplitVOptions = 79,
00954   BuiltinOptions_UniqueOptions = 80,
00955   BuiltinOptions_ReverseV2Options = 81,
00956   BuiltinOptions_AddNOptions = 82,
00957   BuiltinOptions_GatherNdOptions = 83,
00958   BuiltinOptions_CosOptions = 84,
00959   BuiltinOptions_WhereOptions = 85,
00960   BuiltinOptions_RankOptions = 86,
00961   BuiltinOptions_ReverseSequenceOptions = 87,
00962   BuiltinOptions_MatrixDiagOptions = 88,
00963   BuiltinOptions_QuantizeOptions = 89,
00964   BuiltinOptions_MatrixSetDiagOptions = 90,
00965   BuiltinOptions_HardSwishOptions = 91,
00966   BuiltinOptions_IfOptions = 92,
00967   BuiltinOptions_WhileOptions = 93,
00968   BuiltinOptions_DepthToSpaceOptions = 94,
00969   BuiltinOptions_NonMaxSuppressionV4Options = 95,
00970   BuiltinOptions_NonMaxSuppressionV5Options = 96,
00971   BuiltinOptions_ScatterNdOptions = 97,
00972   BuiltinOptions_MIN = BuiltinOptions_NONE,
00973   BuiltinOptions_MAX = BuiltinOptions_ScatterNdOptions
00974 };
00975 
00976 inline const BuiltinOptions (&EnumValuesBuiltinOptions())[98] {
00977   static const BuiltinOptions values[] = {
00978     BuiltinOptions_NONE,
00979     BuiltinOptions_Conv2DOptions,
00980     BuiltinOptions_DepthwiseConv2DOptions,
00981     BuiltinOptions_ConcatEmbeddingsOptions,
00982     BuiltinOptions_LSHProjectionOptions,
00983     BuiltinOptions_Pool2DOptions,
00984     BuiltinOptions_SVDFOptions,
00985     BuiltinOptions_RNNOptions,
00986     BuiltinOptions_FullyConnectedOptions,
00987     BuiltinOptions_SoftmaxOptions,
00988     BuiltinOptions_ConcatenationOptions,
00989     BuiltinOptions_AddOptions,
00990     BuiltinOptions_L2NormOptions,
00991     BuiltinOptions_LocalResponseNormalizationOptions,
00992     BuiltinOptions_LSTMOptions,
00993     BuiltinOptions_ResizeBilinearOptions,
00994     BuiltinOptions_CallOptions,
00995     BuiltinOptions_ReshapeOptions,
00996     BuiltinOptions_SkipGramOptions,
00997     BuiltinOptions_SpaceToDepthOptions,
00998     BuiltinOptions_EmbeddingLookupSparseOptions,
00999     BuiltinOptions_MulOptions,
01000     BuiltinOptions_PadOptions,
01001     BuiltinOptions_GatherOptions,
01002     BuiltinOptions_BatchToSpaceNDOptions,
01003     BuiltinOptions_SpaceToBatchNDOptions,
01004     BuiltinOptions_TransposeOptions,
01005     BuiltinOptions_ReducerOptions,
01006     BuiltinOptions_SubOptions,
01007     BuiltinOptions_DivOptions,
01008     BuiltinOptions_SqueezeOptions,
01009     BuiltinOptions_SequenceRNNOptions,
01010     BuiltinOptions_StridedSliceOptions,
01011     BuiltinOptions_ExpOptions,
01012     BuiltinOptions_TopKV2Options,
01013     BuiltinOptions_SplitOptions,
01014     BuiltinOptions_LogSoftmaxOptions,
01015     BuiltinOptions_CastOptions,
01016     BuiltinOptions_DequantizeOptions,
01017     BuiltinOptions_MaximumMinimumOptions,
01018     BuiltinOptions_ArgMaxOptions,
01019     BuiltinOptions_LessOptions,
01020     BuiltinOptions_NegOptions,
01021     BuiltinOptions_PadV2Options,
01022     BuiltinOptions_GreaterOptions,
01023     BuiltinOptions_GreaterEqualOptions,
01024     BuiltinOptions_LessEqualOptions,
01025     BuiltinOptions_SelectOptions,
01026     BuiltinOptions_SliceOptions,
01027     BuiltinOptions_TransposeConvOptions,
01028     BuiltinOptions_SparseToDenseOptions,
01029     BuiltinOptions_TileOptions,
01030     BuiltinOptions_ExpandDimsOptions,
01031     BuiltinOptions_EqualOptions,
01032     BuiltinOptions_NotEqualOptions,
01033     BuiltinOptions_ShapeOptions,
01034     BuiltinOptions_PowOptions,
01035     BuiltinOptions_ArgMinOptions,
01036     BuiltinOptions_FakeQuantOptions,
01037     BuiltinOptions_PackOptions,
01038     BuiltinOptions_LogicalOrOptions,
01039     BuiltinOptions_OneHotOptions,
01040     BuiltinOptions_LogicalAndOptions,
01041     BuiltinOptions_LogicalNotOptions,
01042     BuiltinOptions_UnpackOptions,
01043     BuiltinOptions_FloorDivOptions,
01044     BuiltinOptions_SquareOptions,
01045     BuiltinOptions_ZerosLikeOptions,
01046     BuiltinOptions_FillOptions,
01047     BuiltinOptions_BidirectionalSequenceLSTMOptions,
01048     BuiltinOptions_BidirectionalSequenceRNNOptions,
01049     BuiltinOptions_UnidirectionalSequenceLSTMOptions,
01050     BuiltinOptions_FloorModOptions,
01051     BuiltinOptions_RangeOptions,
01052     BuiltinOptions_ResizeNearestNeighborOptions,
01053     BuiltinOptions_LeakyReluOptions,
01054     BuiltinOptions_SquaredDifferenceOptions,
01055     BuiltinOptions_MirrorPadOptions,
01056     BuiltinOptions_AbsOptions,
01057     BuiltinOptions_SplitVOptions,
01058     BuiltinOptions_UniqueOptions,
01059     BuiltinOptions_ReverseV2Options,
01060     BuiltinOptions_AddNOptions,
01061     BuiltinOptions_GatherNdOptions,
01062     BuiltinOptions_CosOptions,
01063     BuiltinOptions_WhereOptions,
01064     BuiltinOptions_RankOptions,
01065     BuiltinOptions_ReverseSequenceOptions,
01066     BuiltinOptions_MatrixDiagOptions,
01067     BuiltinOptions_QuantizeOptions,
01068     BuiltinOptions_MatrixSetDiagOptions,
01069     BuiltinOptions_HardSwishOptions,
01070     BuiltinOptions_IfOptions,
01071     BuiltinOptions_WhileOptions,
01072     BuiltinOptions_DepthToSpaceOptions,
01073     BuiltinOptions_NonMaxSuppressionV4Options,
01074     BuiltinOptions_NonMaxSuppressionV5Options,
01075     BuiltinOptions_ScatterNdOptions
01076   };
01077   return values;
01078 }
01079 
01080 inline const char * const *EnumNamesBuiltinOptions() {
01081   static const char * const names[] = {
01082     "NONE",
01083     "Conv2DOptions",
01084     "DepthwiseConv2DOptions",
01085     "ConcatEmbeddingsOptions",
01086     "LSHProjectionOptions",
01087     "Pool2DOptions",
01088     "SVDFOptions",
01089     "RNNOptions",
01090     "FullyConnectedOptions",
01091     "SoftmaxOptions",
01092     "ConcatenationOptions",
01093     "AddOptions",
01094     "L2NormOptions",
01095     "LocalResponseNormalizationOptions",
01096     "LSTMOptions",
01097     "ResizeBilinearOptions",
01098     "CallOptions",
01099     "ReshapeOptions",
01100     "SkipGramOptions",
01101     "SpaceToDepthOptions",
01102     "EmbeddingLookupSparseOptions",
01103     "MulOptions",
01104     "PadOptions",
01105     "GatherOptions",
01106     "BatchToSpaceNDOptions",
01107     "SpaceToBatchNDOptions",
01108     "TransposeOptions",
01109     "ReducerOptions",
01110     "SubOptions",
01111     "DivOptions",
01112     "SqueezeOptions",
01113     "SequenceRNNOptions",
01114     "StridedSliceOptions",
01115     "ExpOptions",
01116     "TopKV2Options",
01117     "SplitOptions",
01118     "LogSoftmaxOptions",
01119     "CastOptions",
01120     "DequantizeOptions",
01121     "MaximumMinimumOptions",
01122     "ArgMaxOptions",
01123     "LessOptions",
01124     "NegOptions",
01125     "PadV2Options",
01126     "GreaterOptions",
01127     "GreaterEqualOptions",
01128     "LessEqualOptions",
01129     "SelectOptions",
01130     "SliceOptions",
01131     "TransposeConvOptions",
01132     "SparseToDenseOptions",
01133     "TileOptions",
01134     "ExpandDimsOptions",
01135     "EqualOptions",
01136     "NotEqualOptions",
01137     "ShapeOptions",
01138     "PowOptions",
01139     "ArgMinOptions",
01140     "FakeQuantOptions",
01141     "PackOptions",
01142     "LogicalOrOptions",
01143     "OneHotOptions",
01144     "LogicalAndOptions",
01145     "LogicalNotOptions",
01146     "UnpackOptions",
01147     "FloorDivOptions",
01148     "SquareOptions",
01149     "ZerosLikeOptions",
01150     "FillOptions",
01151     "BidirectionalSequenceLSTMOptions",
01152     "BidirectionalSequenceRNNOptions",
01153     "UnidirectionalSequenceLSTMOptions",
01154     "FloorModOptions",
01155     "RangeOptions",
01156     "ResizeNearestNeighborOptions",
01157     "LeakyReluOptions",
01158     "SquaredDifferenceOptions",
01159     "MirrorPadOptions",
01160     "AbsOptions",
01161     "SplitVOptions",
01162     "UniqueOptions",
01163     "ReverseV2Options",
01164     "AddNOptions",
01165     "GatherNdOptions",
01166     "CosOptions",
01167     "WhereOptions",
01168     "RankOptions",
01169     "ReverseSequenceOptions",
01170     "MatrixDiagOptions",
01171     "QuantizeOptions",
01172     "MatrixSetDiagOptions",
01173     "HardSwishOptions",
01174     "IfOptions",
01175     "WhileOptions",
01176     "DepthToSpaceOptions",
01177     "NonMaxSuppressionV4Options",
01178     "NonMaxSuppressionV5Options",
01179     "ScatterNdOptions",
01180     nullptr
01181   };
01182   return names;
01183 }
01184 
01185 inline const char *EnumNameBuiltinOptions(BuiltinOptions e) {
01186   if (e < BuiltinOptions_NONE || e > BuiltinOptions_ScatterNdOptions) return "";
01187   const size_t index = static_cast<size_t>(e);
01188   return EnumNamesBuiltinOptions()[index];
01189 }
01190 
01191 template<typename T> struct BuiltinOptionsTraits {
01192   static const BuiltinOptions enum_value = BuiltinOptions_NONE;
01193 };
01194 
01195 template<> struct BuiltinOptionsTraits<Conv2DOptions> {
01196   static const BuiltinOptions enum_value = BuiltinOptions_Conv2DOptions;
01197 };
01198 
01199 template<> struct BuiltinOptionsTraits<DepthwiseConv2DOptions> {
01200   static const BuiltinOptions enum_value = BuiltinOptions_DepthwiseConv2DOptions;
01201 };
01202 
01203 template<> struct BuiltinOptionsTraits<ConcatEmbeddingsOptions> {
01204   static const BuiltinOptions enum_value = BuiltinOptions_ConcatEmbeddingsOptions;
01205 };
01206 
01207 template<> struct BuiltinOptionsTraits<LSHProjectionOptions> {
01208   static const BuiltinOptions enum_value = BuiltinOptions_LSHProjectionOptions;
01209 };
01210 
01211 template<> struct BuiltinOptionsTraits<Pool2DOptions> {
01212   static const BuiltinOptions enum_value = BuiltinOptions_Pool2DOptions;
01213 };
01214 
01215 template<> struct BuiltinOptionsTraits<SVDFOptions> {
01216   static const BuiltinOptions enum_value = BuiltinOptions_SVDFOptions;
01217 };
01218 
01219 template<> struct BuiltinOptionsTraits<RNNOptions> {
01220   static const BuiltinOptions enum_value = BuiltinOptions_RNNOptions;
01221 };
01222 
01223 template<> struct BuiltinOptionsTraits<FullyConnectedOptions> {
01224   static const BuiltinOptions enum_value = BuiltinOptions_FullyConnectedOptions;
01225 };
01226 
01227 template<> struct BuiltinOptionsTraits<SoftmaxOptions> {
01228   static const BuiltinOptions enum_value = BuiltinOptions_SoftmaxOptions;
01229 };
01230 
01231 template<> struct BuiltinOptionsTraits<ConcatenationOptions> {
01232   static const BuiltinOptions enum_value = BuiltinOptions_ConcatenationOptions;
01233 };
01234 
01235 template<> struct BuiltinOptionsTraits<AddOptions> {
01236   static const BuiltinOptions enum_value = BuiltinOptions_AddOptions;
01237 };
01238 
01239 template<> struct BuiltinOptionsTraits<L2NormOptions> {
01240   static const BuiltinOptions enum_value = BuiltinOptions_L2NormOptions;
01241 };
01242 
01243 template<> struct BuiltinOptionsTraits<LocalResponseNormalizationOptions> {
01244   static const BuiltinOptions enum_value = BuiltinOptions_LocalResponseNormalizationOptions;
01245 };
01246 
01247 template<> struct BuiltinOptionsTraits<LSTMOptions> {
01248   static const BuiltinOptions enum_value = BuiltinOptions_LSTMOptions;
01249 };
01250 
01251 template<> struct BuiltinOptionsTraits<ResizeBilinearOptions> {
01252   static const BuiltinOptions enum_value = BuiltinOptions_ResizeBilinearOptions;
01253 };
01254 
01255 template<> struct BuiltinOptionsTraits<CallOptions> {
01256   static const BuiltinOptions enum_value = BuiltinOptions_CallOptions;
01257 };
01258 
01259 template<> struct BuiltinOptionsTraits<ReshapeOptions> {
01260   static const BuiltinOptions enum_value = BuiltinOptions_ReshapeOptions;
01261 };
01262 
01263 template<> struct BuiltinOptionsTraits<SkipGramOptions> {
01264   static const BuiltinOptions enum_value = BuiltinOptions_SkipGramOptions;
01265 };
01266 
01267 template<> struct BuiltinOptionsTraits<SpaceToDepthOptions> {
01268   static const BuiltinOptions enum_value = BuiltinOptions_SpaceToDepthOptions;
01269 };
01270 
01271 template<> struct BuiltinOptionsTraits<EmbeddingLookupSparseOptions> {
01272   static const BuiltinOptions enum_value = BuiltinOptions_EmbeddingLookupSparseOptions;
01273 };
01274 
01275 template<> struct BuiltinOptionsTraits<MulOptions> {
01276   static const BuiltinOptions enum_value = BuiltinOptions_MulOptions;
01277 };
01278 
01279 template<> struct BuiltinOptionsTraits<PadOptions> {
01280   static const BuiltinOptions enum_value = BuiltinOptions_PadOptions;
01281 };
01282 
01283 template<> struct BuiltinOptionsTraits<GatherOptions> {
01284   static const BuiltinOptions enum_value = BuiltinOptions_GatherOptions;
01285 };
01286 
01287 template<> struct BuiltinOptionsTraits<BatchToSpaceNDOptions> {
01288   static const BuiltinOptions enum_value = BuiltinOptions_BatchToSpaceNDOptions;
01289 };
01290 
01291 template<> struct BuiltinOptionsTraits<SpaceToBatchNDOptions> {
01292   static const BuiltinOptions enum_value = BuiltinOptions_SpaceToBatchNDOptions;
01293 };
01294 
01295 template<> struct BuiltinOptionsTraits<TransposeOptions> {
01296   static const BuiltinOptions enum_value = BuiltinOptions_TransposeOptions;
01297 };
01298 
01299 template<> struct BuiltinOptionsTraits<ReducerOptions> {
01300   static const BuiltinOptions enum_value = BuiltinOptions_ReducerOptions;
01301 };
01302 
01303 template<> struct BuiltinOptionsTraits<SubOptions> {
01304   static const BuiltinOptions enum_value = BuiltinOptions_SubOptions;
01305 };
01306 
01307 template<> struct BuiltinOptionsTraits<DivOptions> {
01308   static const BuiltinOptions enum_value = BuiltinOptions_DivOptions;
01309 };
01310 
01311 template<> struct BuiltinOptionsTraits<SqueezeOptions> {
01312   static const BuiltinOptions enum_value = BuiltinOptions_SqueezeOptions;
01313 };
01314 
01315 template<> struct BuiltinOptionsTraits<SequenceRNNOptions> {
01316   static const BuiltinOptions enum_value = BuiltinOptions_SequenceRNNOptions;
01317 };
01318 
01319 template<> struct BuiltinOptionsTraits<StridedSliceOptions> {
01320   static const BuiltinOptions enum_value = BuiltinOptions_StridedSliceOptions;
01321 };
01322 
01323 template<> struct BuiltinOptionsTraits<ExpOptions> {
01324   static const BuiltinOptions enum_value = BuiltinOptions_ExpOptions;
01325 };
01326 
01327 template<> struct BuiltinOptionsTraits<TopKV2Options> {
01328   static const BuiltinOptions enum_value = BuiltinOptions_TopKV2Options;
01329 };
01330 
01331 template<> struct BuiltinOptionsTraits<SplitOptions> {
01332   static const BuiltinOptions enum_value = BuiltinOptions_SplitOptions;
01333 };
01334 
01335 template<> struct BuiltinOptionsTraits<LogSoftmaxOptions> {
01336   static const BuiltinOptions enum_value = BuiltinOptions_LogSoftmaxOptions;
01337 };
01338 
01339 template<> struct BuiltinOptionsTraits<CastOptions> {
01340   static const BuiltinOptions enum_value = BuiltinOptions_CastOptions;
01341 };
01342 
01343 template<> struct BuiltinOptionsTraits<DequantizeOptions> {
01344   static const BuiltinOptions enum_value = BuiltinOptions_DequantizeOptions;
01345 };
01346 
01347 template<> struct BuiltinOptionsTraits<MaximumMinimumOptions> {
01348   static const BuiltinOptions enum_value = BuiltinOptions_MaximumMinimumOptions;
01349 };
01350 
01351 template<> struct BuiltinOptionsTraits<ArgMaxOptions> {
01352   static const BuiltinOptions enum_value = BuiltinOptions_ArgMaxOptions;
01353 };
01354 
01355 template<> struct BuiltinOptionsTraits<LessOptions> {
01356   static const BuiltinOptions enum_value = BuiltinOptions_LessOptions;
01357 };
01358 
01359 template<> struct BuiltinOptionsTraits<NegOptions> {
01360   static const BuiltinOptions enum_value = BuiltinOptions_NegOptions;
01361 };
01362 
01363 template<> struct BuiltinOptionsTraits<PadV2Options> {
01364   static const BuiltinOptions enum_value = BuiltinOptions_PadV2Options;
01365 };
01366 
01367 template<> struct BuiltinOptionsTraits<GreaterOptions> {
01368   static const BuiltinOptions enum_value = BuiltinOptions_GreaterOptions;
01369 };
01370 
01371 template<> struct BuiltinOptionsTraits<GreaterEqualOptions> {
01372   static const BuiltinOptions enum_value = BuiltinOptions_GreaterEqualOptions;
01373 };
01374 
01375 template<> struct BuiltinOptionsTraits<LessEqualOptions> {
01376   static const BuiltinOptions enum_value = BuiltinOptions_LessEqualOptions;
01377 };
01378 
01379 template<> struct BuiltinOptionsTraits<SelectOptions> {
01380   static const BuiltinOptions enum_value = BuiltinOptions_SelectOptions;
01381 };
01382 
01383 template<> struct BuiltinOptionsTraits<SliceOptions> {
01384   static const BuiltinOptions enum_value = BuiltinOptions_SliceOptions;
01385 };
01386 
01387 template<> struct BuiltinOptionsTraits<TransposeConvOptions> {
01388   static const BuiltinOptions enum_value = BuiltinOptions_TransposeConvOptions;
01389 };
01390 
01391 template<> struct BuiltinOptionsTraits<SparseToDenseOptions> {
01392   static const BuiltinOptions enum_value = BuiltinOptions_SparseToDenseOptions;
01393 };
01394 
01395 template<> struct BuiltinOptionsTraits<TileOptions> {
01396   static const BuiltinOptions enum_value = BuiltinOptions_TileOptions;
01397 };
01398 
01399 template<> struct BuiltinOptionsTraits<ExpandDimsOptions> {
01400   static const BuiltinOptions enum_value = BuiltinOptions_ExpandDimsOptions;
01401 };
01402 
01403 template<> struct BuiltinOptionsTraits<EqualOptions> {
01404   static const BuiltinOptions enum_value = BuiltinOptions_EqualOptions;
01405 };
01406 
01407 template<> struct BuiltinOptionsTraits<NotEqualOptions> {
01408   static const BuiltinOptions enum_value = BuiltinOptions_NotEqualOptions;
01409 };
01410 
01411 template<> struct BuiltinOptionsTraits<ShapeOptions> {
01412   static const BuiltinOptions enum_value = BuiltinOptions_ShapeOptions;
01413 };
01414 
01415 template<> struct BuiltinOptionsTraits<PowOptions> {
01416   static const BuiltinOptions enum_value = BuiltinOptions_PowOptions;
01417 };
01418 
01419 template<> struct BuiltinOptionsTraits<ArgMinOptions> {
01420   static const BuiltinOptions enum_value = BuiltinOptions_ArgMinOptions;
01421 };
01422 
01423 template<> struct BuiltinOptionsTraits<FakeQuantOptions> {
01424   static const BuiltinOptions enum_value = BuiltinOptions_FakeQuantOptions;
01425 };
01426 
01427 template<> struct BuiltinOptionsTraits<PackOptions> {
01428   static const BuiltinOptions enum_value = BuiltinOptions_PackOptions;
01429 };
01430 
01431 template<> struct BuiltinOptionsTraits<LogicalOrOptions> {
01432   static const BuiltinOptions enum_value = BuiltinOptions_LogicalOrOptions;
01433 };
01434 
01435 template<> struct BuiltinOptionsTraits<OneHotOptions> {
01436   static const BuiltinOptions enum_value = BuiltinOptions_OneHotOptions;
01437 };
01438 
01439 template<> struct BuiltinOptionsTraits<LogicalAndOptions> {
01440   static const BuiltinOptions enum_value = BuiltinOptions_LogicalAndOptions;
01441 };
01442 
01443 template<> struct BuiltinOptionsTraits<LogicalNotOptions> {
01444   static const BuiltinOptions enum_value = BuiltinOptions_LogicalNotOptions;
01445 };
01446 
01447 template<> struct BuiltinOptionsTraits<UnpackOptions> {
01448   static const BuiltinOptions enum_value = BuiltinOptions_UnpackOptions;
01449 };
01450 
01451 template<> struct BuiltinOptionsTraits<FloorDivOptions> {
01452   static const BuiltinOptions enum_value = BuiltinOptions_FloorDivOptions;
01453 };
01454 
01455 template<> struct BuiltinOptionsTraits<SquareOptions> {
01456   static const BuiltinOptions enum_value = BuiltinOptions_SquareOptions;
01457 };
01458 
01459 template<> struct BuiltinOptionsTraits<ZerosLikeOptions> {
01460   static const BuiltinOptions enum_value = BuiltinOptions_ZerosLikeOptions;
01461 };
01462 
01463 template<> struct BuiltinOptionsTraits<FillOptions> {
01464   static const BuiltinOptions enum_value = BuiltinOptions_FillOptions;
01465 };
01466 
01467 template<> struct BuiltinOptionsTraits<BidirectionalSequenceLSTMOptions> {
01468   static const BuiltinOptions enum_value = BuiltinOptions_BidirectionalSequenceLSTMOptions;
01469 };
01470 
01471 template<> struct BuiltinOptionsTraits<BidirectionalSequenceRNNOptions> {
01472   static const BuiltinOptions enum_value = BuiltinOptions_BidirectionalSequenceRNNOptions;
01473 };
01474 
01475 template<> struct BuiltinOptionsTraits<UnidirectionalSequenceLSTMOptions> {
01476   static const BuiltinOptions enum_value = BuiltinOptions_UnidirectionalSequenceLSTMOptions;
01477 };
01478 
01479 template<> struct BuiltinOptionsTraits<FloorModOptions> {
01480   static const BuiltinOptions enum_value = BuiltinOptions_FloorModOptions;
01481 };
01482 
01483 template<> struct BuiltinOptionsTraits<RangeOptions> {
01484   static const BuiltinOptions enum_value = BuiltinOptions_RangeOptions;
01485 };
01486 
01487 template<> struct BuiltinOptionsTraits<ResizeNearestNeighborOptions> {
01488   static const BuiltinOptions enum_value = BuiltinOptions_ResizeNearestNeighborOptions;
01489 };
01490 
01491 template<> struct BuiltinOptionsTraits<LeakyReluOptions> {
01492   static const BuiltinOptions enum_value = BuiltinOptions_LeakyReluOptions;
01493 };
01494 
01495 template<> struct BuiltinOptionsTraits<SquaredDifferenceOptions> {
01496   static const BuiltinOptions enum_value = BuiltinOptions_SquaredDifferenceOptions;
01497 };
01498 
01499 template<> struct BuiltinOptionsTraits<MirrorPadOptions> {
01500   static const BuiltinOptions enum_value = BuiltinOptions_MirrorPadOptions;
01501 };
01502 
01503 template<> struct BuiltinOptionsTraits<AbsOptions> {
01504   static const BuiltinOptions enum_value = BuiltinOptions_AbsOptions;
01505 };
01506 
01507 template<> struct BuiltinOptionsTraits<SplitVOptions> {
01508   static const BuiltinOptions enum_value = BuiltinOptions_SplitVOptions;
01509 };
01510 
01511 template<> struct BuiltinOptionsTraits<UniqueOptions> {
01512   static const BuiltinOptions enum_value = BuiltinOptions_UniqueOptions;
01513 };
01514 
01515 template<> struct BuiltinOptionsTraits<ReverseV2Options> {
01516   static const BuiltinOptions enum_value = BuiltinOptions_ReverseV2Options;
01517 };
01518 
01519 template<> struct BuiltinOptionsTraits<AddNOptions> {
01520   static const BuiltinOptions enum_value = BuiltinOptions_AddNOptions;
01521 };
01522 
01523 template<> struct BuiltinOptionsTraits<GatherNdOptions> {
01524   static const BuiltinOptions enum_value = BuiltinOptions_GatherNdOptions;
01525 };
01526 
01527 template<> struct BuiltinOptionsTraits<CosOptions> {
01528   static const BuiltinOptions enum_value = BuiltinOptions_CosOptions;
01529 };
01530 
01531 template<> struct BuiltinOptionsTraits<WhereOptions> {
01532   static const BuiltinOptions enum_value = BuiltinOptions_WhereOptions;
01533 };
01534 
01535 template<> struct BuiltinOptionsTraits<RankOptions> {
01536   static const BuiltinOptions enum_value = BuiltinOptions_RankOptions;
01537 };
01538 
01539 template<> struct BuiltinOptionsTraits<ReverseSequenceOptions> {
01540   static const BuiltinOptions enum_value = BuiltinOptions_ReverseSequenceOptions;
01541 };
01542 
01543 template<> struct BuiltinOptionsTraits<MatrixDiagOptions> {
01544   static const BuiltinOptions enum_value = BuiltinOptions_MatrixDiagOptions;
01545 };
01546 
01547 template<> struct BuiltinOptionsTraits<QuantizeOptions> {
01548   static const BuiltinOptions enum_value = BuiltinOptions_QuantizeOptions;
01549 };
01550 
01551 template<> struct BuiltinOptionsTraits<MatrixSetDiagOptions> {
01552   static const BuiltinOptions enum_value = BuiltinOptions_MatrixSetDiagOptions;
01553 };
01554 
01555 template<> struct BuiltinOptionsTraits<HardSwishOptions> {
01556   static const BuiltinOptions enum_value = BuiltinOptions_HardSwishOptions;
01557 };
01558 
01559 template<> struct BuiltinOptionsTraits<IfOptions> {
01560   static const BuiltinOptions enum_value = BuiltinOptions_IfOptions;
01561 };
01562 
01563 template<> struct BuiltinOptionsTraits<WhileOptions> {
01564   static const BuiltinOptions enum_value = BuiltinOptions_WhileOptions;
01565 };
01566 
01567 template<> struct BuiltinOptionsTraits<DepthToSpaceOptions> {
01568   static const BuiltinOptions enum_value = BuiltinOptions_DepthToSpaceOptions;
01569 };
01570 
01571 template<> struct BuiltinOptionsTraits<NonMaxSuppressionV4Options> {
01572   static const BuiltinOptions enum_value = BuiltinOptions_NonMaxSuppressionV4Options;
01573 };
01574 
01575 template<> struct BuiltinOptionsTraits<NonMaxSuppressionV5Options> {
01576   static const BuiltinOptions enum_value = BuiltinOptions_NonMaxSuppressionV5Options;
01577 };
01578 
01579 template<> struct BuiltinOptionsTraits<ScatterNdOptions> {
01580   static const BuiltinOptions enum_value = BuiltinOptions_ScatterNdOptions;
01581 };
01582 
01583 struct BuiltinOptionsUnion {
01584   BuiltinOptions type;
01585   void *value;
01586 
01587   BuiltinOptionsUnion() : type(BuiltinOptions_NONE), value(nullptr) {}
01588   BuiltinOptionsUnion(BuiltinOptionsUnion&& u) FLATBUFFERS_NOEXCEPT :
01589     type(BuiltinOptions_NONE), value(nullptr)
01590     { std::swap(type, u.type); std::swap(value, u.value); }
01591   BuiltinOptionsUnion(const BuiltinOptionsUnion &) FLATBUFFERS_NOEXCEPT;
01592   BuiltinOptionsUnion &operator=(const BuiltinOptionsUnion &u) FLATBUFFERS_NOEXCEPT
01593     { BuiltinOptionsUnion t(u); std::swap(type, t.type); std::swap(value, t.value); return *this; }
01594   BuiltinOptionsUnion &operator=(BuiltinOptionsUnion &&u) FLATBUFFERS_NOEXCEPT
01595     { std::swap(type, u.type); std::swap(value, u.value); return *this; }
01596   ~BuiltinOptionsUnion() { Reset(); }
01597 
01598   void Reset();
01599 
01600 #ifndef FLATBUFFERS_CPP98_STL
01601   template <typename T>
01602   void Set(T&& val) {
01603     using RT = typename std::remove_reference<T>::type;
01604     Reset();
01605     type = BuiltinOptionsTraits<typename RT::TableType>::enum_value;
01606     if (type != BuiltinOptions_NONE) {
01607       value = new RT(std::forward<T>(val));
01608     }
01609   }
01610 #endif  // FLATBUFFERS_CPP98_STL
01611 
01612   static void *UnPack(const void *obj, BuiltinOptions type, const flatbuffers::resolver_function_t *resolver);
01613   flatbuffers::Offset<void> Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher = nullptr) const;
01614 
01615   Conv2DOptionsT *AsConv2DOptions() {
01616     return type == BuiltinOptions_Conv2DOptions ?
01617       reinterpret_cast<Conv2DOptionsT *>(value) : nullptr;
01618   }
01619   const Conv2DOptionsT *AsConv2DOptions() const {
01620     return type == BuiltinOptions_Conv2DOptions ?
01621       reinterpret_cast<const Conv2DOptionsT *>(value) : nullptr;
01622   }
01623   DepthwiseConv2DOptionsT *AsDepthwiseConv2DOptions() {
01624     return type == BuiltinOptions_DepthwiseConv2DOptions ?
01625       reinterpret_cast<DepthwiseConv2DOptionsT *>(value) : nullptr;
01626   }
01627   const DepthwiseConv2DOptionsT *AsDepthwiseConv2DOptions() const {
01628     return type == BuiltinOptions_DepthwiseConv2DOptions ?
01629       reinterpret_cast<const DepthwiseConv2DOptionsT *>(value) : nullptr;
01630   }
01631   ConcatEmbeddingsOptionsT *AsConcatEmbeddingsOptions() {
01632     return type == BuiltinOptions_ConcatEmbeddingsOptions ?
01633       reinterpret_cast<ConcatEmbeddingsOptionsT *>(value) : nullptr;
01634   }
01635   const ConcatEmbeddingsOptionsT *AsConcatEmbeddingsOptions() const {
01636     return type == BuiltinOptions_ConcatEmbeddingsOptions ?
01637       reinterpret_cast<const ConcatEmbeddingsOptionsT *>(value) : nullptr;
01638   }
01639   LSHProjectionOptionsT *AsLSHProjectionOptions() {
01640     return type == BuiltinOptions_LSHProjectionOptions ?
01641       reinterpret_cast<LSHProjectionOptionsT *>(value) : nullptr;
01642   }
01643   const LSHProjectionOptionsT *AsLSHProjectionOptions() const {
01644     return type == BuiltinOptions_LSHProjectionOptions ?
01645       reinterpret_cast<const LSHProjectionOptionsT *>(value) : nullptr;
01646   }
01647   Pool2DOptionsT *AsPool2DOptions() {
01648     return type == BuiltinOptions_Pool2DOptions ?
01649       reinterpret_cast<Pool2DOptionsT *>(value) : nullptr;
01650   }
01651   const Pool2DOptionsT *AsPool2DOptions() const {
01652     return type == BuiltinOptions_Pool2DOptions ?
01653       reinterpret_cast<const Pool2DOptionsT *>(value) : nullptr;
01654   }
01655   SVDFOptionsT *AsSVDFOptions() {
01656     return type == BuiltinOptions_SVDFOptions ?
01657       reinterpret_cast<SVDFOptionsT *>(value) : nullptr;
01658   }
01659   const SVDFOptionsT *AsSVDFOptions() const {
01660     return type == BuiltinOptions_SVDFOptions ?
01661       reinterpret_cast<const SVDFOptionsT *>(value) : nullptr;
01662   }
01663   RNNOptionsT *AsRNNOptions() {
01664     return type == BuiltinOptions_RNNOptions ?
01665       reinterpret_cast<RNNOptionsT *>(value) : nullptr;
01666   }
01667   const RNNOptionsT *AsRNNOptions() const {
01668     return type == BuiltinOptions_RNNOptions ?
01669       reinterpret_cast<const RNNOptionsT *>(value) : nullptr;
01670   }
01671   FullyConnectedOptionsT *AsFullyConnectedOptions() {
01672     return type == BuiltinOptions_FullyConnectedOptions ?
01673       reinterpret_cast<FullyConnectedOptionsT *>(value) : nullptr;
01674   }
01675   const FullyConnectedOptionsT *AsFullyConnectedOptions() const {
01676     return type == BuiltinOptions_FullyConnectedOptions ?
01677       reinterpret_cast<const FullyConnectedOptionsT *>(value) : nullptr;
01678   }
01679   SoftmaxOptionsT *AsSoftmaxOptions() {
01680     return type == BuiltinOptions_SoftmaxOptions ?
01681       reinterpret_cast<SoftmaxOptionsT *>(value) : nullptr;
01682   }
01683   const SoftmaxOptionsT *AsSoftmaxOptions() const {
01684     return type == BuiltinOptions_SoftmaxOptions ?
01685       reinterpret_cast<const SoftmaxOptionsT *>(value) : nullptr;
01686   }
01687   ConcatenationOptionsT *AsConcatenationOptions() {
01688     return type == BuiltinOptions_ConcatenationOptions ?
01689       reinterpret_cast<ConcatenationOptionsT *>(value) : nullptr;
01690   }
01691   const ConcatenationOptionsT *AsConcatenationOptions() const {
01692     return type == BuiltinOptions_ConcatenationOptions ?
01693       reinterpret_cast<const ConcatenationOptionsT *>(value) : nullptr;
01694   }
01695   AddOptionsT *AsAddOptions() {
01696     return type == BuiltinOptions_AddOptions ?
01697       reinterpret_cast<AddOptionsT *>(value) : nullptr;
01698   }
01699   const AddOptionsT *AsAddOptions() const {
01700     return type == BuiltinOptions_AddOptions ?
01701       reinterpret_cast<const AddOptionsT *>(value) : nullptr;
01702   }
01703   L2NormOptionsT *AsL2NormOptions() {
01704     return type == BuiltinOptions_L2NormOptions ?
01705       reinterpret_cast<L2NormOptionsT *>(value) : nullptr;
01706   }
01707   const L2NormOptionsT *AsL2NormOptions() const {
01708     return type == BuiltinOptions_L2NormOptions ?
01709       reinterpret_cast<const L2NormOptionsT *>(value) : nullptr;
01710   }
01711   LocalResponseNormalizationOptionsT *AsLocalResponseNormalizationOptions() {
01712     return type == BuiltinOptions_LocalResponseNormalizationOptions ?
01713       reinterpret_cast<LocalResponseNormalizationOptionsT *>(value) : nullptr;
01714   }
01715   const LocalResponseNormalizationOptionsT *AsLocalResponseNormalizationOptions() const {
01716     return type == BuiltinOptions_LocalResponseNormalizationOptions ?
01717       reinterpret_cast<const LocalResponseNormalizationOptionsT *>(value) : nullptr;
01718   }
01719   LSTMOptionsT *AsLSTMOptions() {
01720     return type == BuiltinOptions_LSTMOptions ?
01721       reinterpret_cast<LSTMOptionsT *>(value) : nullptr;
01722   }
01723   const LSTMOptionsT *AsLSTMOptions() const {
01724     return type == BuiltinOptions_LSTMOptions ?
01725       reinterpret_cast<const LSTMOptionsT *>(value) : nullptr;
01726   }
01727   ResizeBilinearOptionsT *AsResizeBilinearOptions() {
01728     return type == BuiltinOptions_ResizeBilinearOptions ?
01729       reinterpret_cast<ResizeBilinearOptionsT *>(value) : nullptr;
01730   }
01731   const ResizeBilinearOptionsT *AsResizeBilinearOptions() const {
01732     return type == BuiltinOptions_ResizeBilinearOptions ?
01733       reinterpret_cast<const ResizeBilinearOptionsT *>(value) : nullptr;
01734   }
01735   CallOptionsT *AsCallOptions() {
01736     return type == BuiltinOptions_CallOptions ?
01737       reinterpret_cast<CallOptionsT *>(value) : nullptr;
01738   }
01739   const CallOptionsT *AsCallOptions() const {
01740     return type == BuiltinOptions_CallOptions ?
01741       reinterpret_cast<const CallOptionsT *>(value) : nullptr;
01742   }
01743   ReshapeOptionsT *AsReshapeOptions() {
01744     return type == BuiltinOptions_ReshapeOptions ?
01745       reinterpret_cast<ReshapeOptionsT *>(value) : nullptr;
01746   }
01747   const ReshapeOptionsT *AsReshapeOptions() const {
01748     return type == BuiltinOptions_ReshapeOptions ?
01749       reinterpret_cast<const ReshapeOptionsT *>(value) : nullptr;
01750   }
01751   SkipGramOptionsT *AsSkipGramOptions() {
01752     return type == BuiltinOptions_SkipGramOptions ?
01753       reinterpret_cast<SkipGramOptionsT *>(value) : nullptr;
01754   }
01755   const SkipGramOptionsT *AsSkipGramOptions() const {
01756     return type == BuiltinOptions_SkipGramOptions ?
01757       reinterpret_cast<const SkipGramOptionsT *>(value) : nullptr;
01758   }
01759   SpaceToDepthOptionsT *AsSpaceToDepthOptions() {
01760     return type == BuiltinOptions_SpaceToDepthOptions ?
01761       reinterpret_cast<SpaceToDepthOptionsT *>(value) : nullptr;
01762   }
01763   const SpaceToDepthOptionsT *AsSpaceToDepthOptions() const {
01764     return type == BuiltinOptions_SpaceToDepthOptions ?
01765       reinterpret_cast<const SpaceToDepthOptionsT *>(value) : nullptr;
01766   }
01767   EmbeddingLookupSparseOptionsT *AsEmbeddingLookupSparseOptions() {
01768     return type == BuiltinOptions_EmbeddingLookupSparseOptions ?
01769       reinterpret_cast<EmbeddingLookupSparseOptionsT *>(value) : nullptr;
01770   }
01771   const EmbeddingLookupSparseOptionsT *AsEmbeddingLookupSparseOptions() const {
01772     return type == BuiltinOptions_EmbeddingLookupSparseOptions ?
01773       reinterpret_cast<const EmbeddingLookupSparseOptionsT *>(value) : nullptr;
01774   }
01775   MulOptionsT *AsMulOptions() {
01776     return type == BuiltinOptions_MulOptions ?
01777       reinterpret_cast<MulOptionsT *>(value) : nullptr;
01778   }
01779   const MulOptionsT *AsMulOptions() const {
01780     return type == BuiltinOptions_MulOptions ?
01781       reinterpret_cast<const MulOptionsT *>(value) : nullptr;
01782   }
01783   PadOptionsT *AsPadOptions() {
01784     return type == BuiltinOptions_PadOptions ?
01785       reinterpret_cast<PadOptionsT *>(value) : nullptr;
01786   }
01787   const PadOptionsT *AsPadOptions() const {
01788     return type == BuiltinOptions_PadOptions ?
01789       reinterpret_cast<const PadOptionsT *>(value) : nullptr;
01790   }
01791   GatherOptionsT *AsGatherOptions() {
01792     return type == BuiltinOptions_GatherOptions ?
01793       reinterpret_cast<GatherOptionsT *>(value) : nullptr;
01794   }
01795   const GatherOptionsT *AsGatherOptions() const {
01796     return type == BuiltinOptions_GatherOptions ?
01797       reinterpret_cast<const GatherOptionsT *>(value) : nullptr;
01798   }
01799   BatchToSpaceNDOptionsT *AsBatchToSpaceNDOptions() {
01800     return type == BuiltinOptions_BatchToSpaceNDOptions ?
01801       reinterpret_cast<BatchToSpaceNDOptionsT *>(value) : nullptr;
01802   }
01803   const BatchToSpaceNDOptionsT *AsBatchToSpaceNDOptions() const {
01804     return type == BuiltinOptions_BatchToSpaceNDOptions ?
01805       reinterpret_cast<const BatchToSpaceNDOptionsT *>(value) : nullptr;
01806   }
01807   SpaceToBatchNDOptionsT *AsSpaceToBatchNDOptions() {
01808     return type == BuiltinOptions_SpaceToBatchNDOptions ?
01809       reinterpret_cast<SpaceToBatchNDOptionsT *>(value) : nullptr;
01810   }
01811   const SpaceToBatchNDOptionsT *AsSpaceToBatchNDOptions() const {
01812     return type == BuiltinOptions_SpaceToBatchNDOptions ?
01813       reinterpret_cast<const SpaceToBatchNDOptionsT *>(value) : nullptr;
01814   }
01815   TransposeOptionsT *AsTransposeOptions() {
01816     return type == BuiltinOptions_TransposeOptions ?
01817       reinterpret_cast<TransposeOptionsT *>(value) : nullptr;
01818   }
01819   const TransposeOptionsT *AsTransposeOptions() const {
01820     return type == BuiltinOptions_TransposeOptions ?
01821       reinterpret_cast<const TransposeOptionsT *>(value) : nullptr;
01822   }
01823   ReducerOptionsT *AsReducerOptions() {
01824     return type == BuiltinOptions_ReducerOptions ?
01825       reinterpret_cast<ReducerOptionsT *>(value) : nullptr;
01826   }
01827   const ReducerOptionsT *AsReducerOptions() const {
01828     return type == BuiltinOptions_ReducerOptions ?
01829       reinterpret_cast<const ReducerOptionsT *>(value) : nullptr;
01830   }
01831   SubOptionsT *AsSubOptions() {
01832     return type == BuiltinOptions_SubOptions ?
01833       reinterpret_cast<SubOptionsT *>(value) : nullptr;
01834   }
01835   const SubOptionsT *AsSubOptions() const {
01836     return type == BuiltinOptions_SubOptions ?
01837       reinterpret_cast<const SubOptionsT *>(value) : nullptr;
01838   }
01839   DivOptionsT *AsDivOptions() {
01840     return type == BuiltinOptions_DivOptions ?
01841       reinterpret_cast<DivOptionsT *>(value) : nullptr;
01842   }
01843   const DivOptionsT *AsDivOptions() const {
01844     return type == BuiltinOptions_DivOptions ?
01845       reinterpret_cast<const DivOptionsT *>(value) : nullptr;
01846   }
01847   SqueezeOptionsT *AsSqueezeOptions() {
01848     return type == BuiltinOptions_SqueezeOptions ?
01849       reinterpret_cast<SqueezeOptionsT *>(value) : nullptr;
01850   }
01851   const SqueezeOptionsT *AsSqueezeOptions() const {
01852     return type == BuiltinOptions_SqueezeOptions ?
01853       reinterpret_cast<const SqueezeOptionsT *>(value) : nullptr;
01854   }
01855   SequenceRNNOptionsT *AsSequenceRNNOptions() {
01856     return type == BuiltinOptions_SequenceRNNOptions ?
01857       reinterpret_cast<SequenceRNNOptionsT *>(value) : nullptr;
01858   }
01859   const SequenceRNNOptionsT *AsSequenceRNNOptions() const {
01860     return type == BuiltinOptions_SequenceRNNOptions ?
01861       reinterpret_cast<const SequenceRNNOptionsT *>(value) : nullptr;
01862   }
01863   StridedSliceOptionsT *AsStridedSliceOptions() {
01864     return type == BuiltinOptions_StridedSliceOptions ?
01865       reinterpret_cast<StridedSliceOptionsT *>(value) : nullptr;
01866   }
01867   const StridedSliceOptionsT *AsStridedSliceOptions() const {
01868     return type == BuiltinOptions_StridedSliceOptions ?
01869       reinterpret_cast<const StridedSliceOptionsT *>(value) : nullptr;
01870   }
01871   ExpOptionsT *AsExpOptions() {
01872     return type == BuiltinOptions_ExpOptions ?
01873       reinterpret_cast<ExpOptionsT *>(value) : nullptr;
01874   }
01875   const ExpOptionsT *AsExpOptions() const {
01876     return type == BuiltinOptions_ExpOptions ?
01877       reinterpret_cast<const ExpOptionsT *>(value) : nullptr;
01878   }
01879   TopKV2OptionsT *AsTopKV2Options() {
01880     return type == BuiltinOptions_TopKV2Options ?
01881       reinterpret_cast<TopKV2OptionsT *>(value) : nullptr;
01882   }
01883   const TopKV2OptionsT *AsTopKV2Options() const {
01884     return type == BuiltinOptions_TopKV2Options ?
01885       reinterpret_cast<const TopKV2OptionsT *>(value) : nullptr;
01886   }
01887   SplitOptionsT *AsSplitOptions() {
01888     return type == BuiltinOptions_SplitOptions ?
01889       reinterpret_cast<SplitOptionsT *>(value) : nullptr;
01890   }
01891   const SplitOptionsT *AsSplitOptions() const {
01892     return type == BuiltinOptions_SplitOptions ?
01893       reinterpret_cast<const SplitOptionsT *>(value) : nullptr;
01894   }
01895   LogSoftmaxOptionsT *AsLogSoftmaxOptions() {
01896     return type == BuiltinOptions_LogSoftmaxOptions ?
01897       reinterpret_cast<LogSoftmaxOptionsT *>(value) : nullptr;
01898   }
01899   const LogSoftmaxOptionsT *AsLogSoftmaxOptions() const {
01900     return type == BuiltinOptions_LogSoftmaxOptions ?
01901       reinterpret_cast<const LogSoftmaxOptionsT *>(value) : nullptr;
01902   }
01903   CastOptionsT *AsCastOptions() {
01904     return type == BuiltinOptions_CastOptions ?
01905       reinterpret_cast<CastOptionsT *>(value) : nullptr;
01906   }
01907   const CastOptionsT *AsCastOptions() const {
01908     return type == BuiltinOptions_CastOptions ?
01909       reinterpret_cast<const CastOptionsT *>(value) : nullptr;
01910   }
01911   DequantizeOptionsT *AsDequantizeOptions() {
01912     return type == BuiltinOptions_DequantizeOptions ?
01913       reinterpret_cast<DequantizeOptionsT *>(value) : nullptr;
01914   }
01915   const DequantizeOptionsT *AsDequantizeOptions() const {
01916     return type == BuiltinOptions_DequantizeOptions ?
01917       reinterpret_cast<const DequantizeOptionsT *>(value) : nullptr;
01918   }
01919   MaximumMinimumOptionsT *AsMaximumMinimumOptions() {
01920     return type == BuiltinOptions_MaximumMinimumOptions ?
01921       reinterpret_cast<MaximumMinimumOptionsT *>(value) : nullptr;
01922   }
01923   const MaximumMinimumOptionsT *AsMaximumMinimumOptions() const {
01924     return type == BuiltinOptions_MaximumMinimumOptions ?
01925       reinterpret_cast<const MaximumMinimumOptionsT *>(value) : nullptr;
01926   }
01927   ArgMaxOptionsT *AsArgMaxOptions() {
01928     return type == BuiltinOptions_ArgMaxOptions ?
01929       reinterpret_cast<ArgMaxOptionsT *>(value) : nullptr;
01930   }
01931   const ArgMaxOptionsT *AsArgMaxOptions() const {
01932     return type == BuiltinOptions_ArgMaxOptions ?
01933       reinterpret_cast<const ArgMaxOptionsT *>(value) : nullptr;
01934   }
01935   LessOptionsT *AsLessOptions() {
01936     return type == BuiltinOptions_LessOptions ?
01937       reinterpret_cast<LessOptionsT *>(value) : nullptr;
01938   }
01939   const LessOptionsT *AsLessOptions() const {
01940     return type == BuiltinOptions_LessOptions ?
01941       reinterpret_cast<const LessOptionsT *>(value) : nullptr;
01942   }
01943   NegOptionsT *AsNegOptions() {
01944     return type == BuiltinOptions_NegOptions ?
01945       reinterpret_cast<NegOptionsT *>(value) : nullptr;
01946   }
01947   const NegOptionsT *AsNegOptions() const {
01948     return type == BuiltinOptions_NegOptions ?
01949       reinterpret_cast<const NegOptionsT *>(value) : nullptr;
01950   }
01951   PadV2OptionsT *AsPadV2Options() {
01952     return type == BuiltinOptions_PadV2Options ?
01953       reinterpret_cast<PadV2OptionsT *>(value) : nullptr;
01954   }
01955   const PadV2OptionsT *AsPadV2Options() const {
01956     return type == BuiltinOptions_PadV2Options ?
01957       reinterpret_cast<const PadV2OptionsT *>(value) : nullptr;
01958   }
01959   GreaterOptionsT *AsGreaterOptions() {
01960     return type == BuiltinOptions_GreaterOptions ?
01961       reinterpret_cast<GreaterOptionsT *>(value) : nullptr;
01962   }
01963   const GreaterOptionsT *AsGreaterOptions() const {
01964     return type == BuiltinOptions_GreaterOptions ?
01965       reinterpret_cast<const GreaterOptionsT *>(value) : nullptr;
01966   }
01967   GreaterEqualOptionsT *AsGreaterEqualOptions() {
01968     return type == BuiltinOptions_GreaterEqualOptions ?
01969       reinterpret_cast<GreaterEqualOptionsT *>(value) : nullptr;
01970   }
01971   const GreaterEqualOptionsT *AsGreaterEqualOptions() const {
01972     return type == BuiltinOptions_GreaterEqualOptions ?
01973       reinterpret_cast<const GreaterEqualOptionsT *>(value) : nullptr;
01974   }
01975   LessEqualOptionsT *AsLessEqualOptions() {
01976     return type == BuiltinOptions_LessEqualOptions ?
01977       reinterpret_cast<LessEqualOptionsT *>(value) : nullptr;
01978   }
01979   const LessEqualOptionsT *AsLessEqualOptions() const {
01980     return type == BuiltinOptions_LessEqualOptions ?
01981       reinterpret_cast<const LessEqualOptionsT *>(value) : nullptr;
01982   }
01983   SelectOptionsT *AsSelectOptions() {
01984     return type == BuiltinOptions_SelectOptions ?
01985       reinterpret_cast<SelectOptionsT *>(value) : nullptr;
01986   }
01987   const SelectOptionsT *AsSelectOptions() const {
01988     return type == BuiltinOptions_SelectOptions ?
01989       reinterpret_cast<const SelectOptionsT *>(value) : nullptr;
01990   }
01991   SliceOptionsT *AsSliceOptions() {
01992     return type == BuiltinOptions_SliceOptions ?
01993       reinterpret_cast<SliceOptionsT *>(value) : nullptr;
01994   }
01995   const SliceOptionsT *AsSliceOptions() const {
01996     return type == BuiltinOptions_SliceOptions ?
01997       reinterpret_cast<const SliceOptionsT *>(value) : nullptr;
01998   }
01999   TransposeConvOptionsT *AsTransposeConvOptions() {
02000     return type == BuiltinOptions_TransposeConvOptions ?
02001       reinterpret_cast<TransposeConvOptionsT *>(value) : nullptr;
02002   }
02003   const TransposeConvOptionsT *AsTransposeConvOptions() const {
02004     return type == BuiltinOptions_TransposeConvOptions ?
02005       reinterpret_cast<const TransposeConvOptionsT *>(value) : nullptr;
02006   }
02007   SparseToDenseOptionsT *AsSparseToDenseOptions() {
02008     return type == BuiltinOptions_SparseToDenseOptions ?
02009       reinterpret_cast<SparseToDenseOptionsT *>(value) : nullptr;
02010   }
02011   const SparseToDenseOptionsT *AsSparseToDenseOptions() const {
02012     return type == BuiltinOptions_SparseToDenseOptions ?
02013       reinterpret_cast<const SparseToDenseOptionsT *>(value) : nullptr;
02014   }
02015   TileOptionsT *AsTileOptions() {
02016     return type == BuiltinOptions_TileOptions ?
02017       reinterpret_cast<TileOptionsT *>(value) : nullptr;
02018   }
02019   const TileOptionsT *AsTileOptions() const {
02020     return type == BuiltinOptions_TileOptions ?
02021       reinterpret_cast<const TileOptionsT *>(value) : nullptr;
02022   }
02023   ExpandDimsOptionsT *AsExpandDimsOptions() {
02024     return type == BuiltinOptions_ExpandDimsOptions ?
02025       reinterpret_cast<ExpandDimsOptionsT *>(value) : nullptr;
02026   }
02027   const ExpandDimsOptionsT *AsExpandDimsOptions() const {
02028     return type == BuiltinOptions_ExpandDimsOptions ?
02029       reinterpret_cast<const ExpandDimsOptionsT *>(value) : nullptr;
02030   }
02031   EqualOptionsT *AsEqualOptions() {
02032     return type == BuiltinOptions_EqualOptions ?
02033       reinterpret_cast<EqualOptionsT *>(value) : nullptr;
02034   }
02035   const EqualOptionsT *AsEqualOptions() const {
02036     return type == BuiltinOptions_EqualOptions ?
02037       reinterpret_cast<const EqualOptionsT *>(value) : nullptr;
02038   }
02039   NotEqualOptionsT *AsNotEqualOptions() {
02040     return type == BuiltinOptions_NotEqualOptions ?
02041       reinterpret_cast<NotEqualOptionsT *>(value) : nullptr;
02042   }
02043   const NotEqualOptionsT *AsNotEqualOptions() const {
02044     return type == BuiltinOptions_NotEqualOptions ?
02045       reinterpret_cast<const NotEqualOptionsT *>(value) : nullptr;
02046   }
02047   ShapeOptionsT *AsShapeOptions() {
02048     return type == BuiltinOptions_ShapeOptions ?
02049       reinterpret_cast<ShapeOptionsT *>(value) : nullptr;
02050   }
02051   const ShapeOptionsT *AsShapeOptions() const {
02052     return type == BuiltinOptions_ShapeOptions ?
02053       reinterpret_cast<const ShapeOptionsT *>(value) : nullptr;
02054   }
02055   PowOptionsT *AsPowOptions() {
02056     return type == BuiltinOptions_PowOptions ?
02057       reinterpret_cast<PowOptionsT *>(value) : nullptr;
02058   }
02059   const PowOptionsT *AsPowOptions() const {
02060     return type == BuiltinOptions_PowOptions ?
02061       reinterpret_cast<const PowOptionsT *>(value) : nullptr;
02062   }
02063   ArgMinOptionsT *AsArgMinOptions() {
02064     return type == BuiltinOptions_ArgMinOptions ?
02065       reinterpret_cast<ArgMinOptionsT *>(value) : nullptr;
02066   }
02067   const ArgMinOptionsT *AsArgMinOptions() const {
02068     return type == BuiltinOptions_ArgMinOptions ?
02069       reinterpret_cast<const ArgMinOptionsT *>(value) : nullptr;
02070   }
02071   FakeQuantOptionsT *AsFakeQuantOptions() {
02072     return type == BuiltinOptions_FakeQuantOptions ?
02073       reinterpret_cast<FakeQuantOptionsT *>(value) : nullptr;
02074   }
02075   const FakeQuantOptionsT *AsFakeQuantOptions() const {
02076     return type == BuiltinOptions_FakeQuantOptions ?
02077       reinterpret_cast<const FakeQuantOptionsT *>(value) : nullptr;
02078   }
02079   PackOptionsT *AsPackOptions() {
02080     return type == BuiltinOptions_PackOptions ?
02081       reinterpret_cast<PackOptionsT *>(value) : nullptr;
02082   }
02083   const PackOptionsT *AsPackOptions() const {
02084     return type == BuiltinOptions_PackOptions ?
02085       reinterpret_cast<const PackOptionsT *>(value) : nullptr;
02086   }
02087   LogicalOrOptionsT *AsLogicalOrOptions() {
02088     return type == BuiltinOptions_LogicalOrOptions ?
02089       reinterpret_cast<LogicalOrOptionsT *>(value) : nullptr;
02090   }
02091   const LogicalOrOptionsT *AsLogicalOrOptions() const {
02092     return type == BuiltinOptions_LogicalOrOptions ?
02093       reinterpret_cast<const LogicalOrOptionsT *>(value) : nullptr;
02094   }
02095   OneHotOptionsT *AsOneHotOptions() {
02096     return type == BuiltinOptions_OneHotOptions ?
02097       reinterpret_cast<OneHotOptionsT *>(value) : nullptr;
02098   }
02099   const OneHotOptionsT *AsOneHotOptions() const {
02100     return type == BuiltinOptions_OneHotOptions ?
02101       reinterpret_cast<const OneHotOptionsT *>(value) : nullptr;
02102   }
02103   LogicalAndOptionsT *AsLogicalAndOptions() {
02104     return type == BuiltinOptions_LogicalAndOptions ?
02105       reinterpret_cast<LogicalAndOptionsT *>(value) : nullptr;
02106   }
02107   const LogicalAndOptionsT *AsLogicalAndOptions() const {
02108     return type == BuiltinOptions_LogicalAndOptions ?
02109       reinterpret_cast<const LogicalAndOptionsT *>(value) : nullptr;
02110   }
02111   LogicalNotOptionsT *AsLogicalNotOptions() {
02112     return type == BuiltinOptions_LogicalNotOptions ?
02113       reinterpret_cast<LogicalNotOptionsT *>(value) : nullptr;
02114   }
02115   const LogicalNotOptionsT *AsLogicalNotOptions() const {
02116     return type == BuiltinOptions_LogicalNotOptions ?
02117       reinterpret_cast<const LogicalNotOptionsT *>(value) : nullptr;
02118   }
02119   UnpackOptionsT *AsUnpackOptions() {
02120     return type == BuiltinOptions_UnpackOptions ?
02121       reinterpret_cast<UnpackOptionsT *>(value) : nullptr;
02122   }
02123   const UnpackOptionsT *AsUnpackOptions() const {
02124     return type == BuiltinOptions_UnpackOptions ?
02125       reinterpret_cast<const UnpackOptionsT *>(value) : nullptr;
02126   }
02127   FloorDivOptionsT *AsFloorDivOptions() {
02128     return type == BuiltinOptions_FloorDivOptions ?
02129       reinterpret_cast<FloorDivOptionsT *>(value) : nullptr;
02130   }
02131   const FloorDivOptionsT *AsFloorDivOptions() const {
02132     return type == BuiltinOptions_FloorDivOptions ?
02133       reinterpret_cast<const FloorDivOptionsT *>(value) : nullptr;
02134   }
02135   SquareOptionsT *AsSquareOptions() {
02136     return type == BuiltinOptions_SquareOptions ?
02137       reinterpret_cast<SquareOptionsT *>(value) : nullptr;
02138   }
02139   const SquareOptionsT *AsSquareOptions() const {
02140     return type == BuiltinOptions_SquareOptions ?
02141       reinterpret_cast<const SquareOptionsT *>(value) : nullptr;
02142   }
02143   ZerosLikeOptionsT *AsZerosLikeOptions() {
02144     return type == BuiltinOptions_ZerosLikeOptions ?
02145       reinterpret_cast<ZerosLikeOptionsT *>(value) : nullptr;
02146   }
02147   const ZerosLikeOptionsT *AsZerosLikeOptions() const {
02148     return type == BuiltinOptions_ZerosLikeOptions ?
02149       reinterpret_cast<const ZerosLikeOptionsT *>(value) : nullptr;
02150   }
02151   FillOptionsT *AsFillOptions() {
02152     return type == BuiltinOptions_FillOptions ?
02153       reinterpret_cast<FillOptionsT *>(value) : nullptr;
02154   }
02155   const FillOptionsT *AsFillOptions() const {
02156     return type == BuiltinOptions_FillOptions ?
02157       reinterpret_cast<const FillOptionsT *>(value) : nullptr;
02158   }
02159   BidirectionalSequenceLSTMOptionsT *AsBidirectionalSequenceLSTMOptions() {
02160     return type == BuiltinOptions_BidirectionalSequenceLSTMOptions ?
02161       reinterpret_cast<BidirectionalSequenceLSTMOptionsT *>(value) : nullptr;
02162   }
02163   const BidirectionalSequenceLSTMOptionsT *AsBidirectionalSequenceLSTMOptions() const {
02164     return type == BuiltinOptions_BidirectionalSequenceLSTMOptions ?
02165       reinterpret_cast<const BidirectionalSequenceLSTMOptionsT *>(value) : nullptr;
02166   }
02167   BidirectionalSequenceRNNOptionsT *AsBidirectionalSequenceRNNOptions() {
02168     return type == BuiltinOptions_BidirectionalSequenceRNNOptions ?
02169       reinterpret_cast<BidirectionalSequenceRNNOptionsT *>(value) : nullptr;
02170   }
02171   const BidirectionalSequenceRNNOptionsT *AsBidirectionalSequenceRNNOptions() const {
02172     return type == BuiltinOptions_BidirectionalSequenceRNNOptions ?
02173       reinterpret_cast<const BidirectionalSequenceRNNOptionsT *>(value) : nullptr;
02174   }
02175   UnidirectionalSequenceLSTMOptionsT *AsUnidirectionalSequenceLSTMOptions() {
02176     return type == BuiltinOptions_UnidirectionalSequenceLSTMOptions ?
02177       reinterpret_cast<UnidirectionalSequenceLSTMOptionsT *>(value) : nullptr;
02178   }
02179   const UnidirectionalSequenceLSTMOptionsT *AsUnidirectionalSequenceLSTMOptions() const {
02180     return type == BuiltinOptions_UnidirectionalSequenceLSTMOptions ?
02181       reinterpret_cast<const UnidirectionalSequenceLSTMOptionsT *>(value) : nullptr;
02182   }
02183   FloorModOptionsT *AsFloorModOptions() {
02184     return type == BuiltinOptions_FloorModOptions ?
02185       reinterpret_cast<FloorModOptionsT *>(value) : nullptr;
02186   }
02187   const FloorModOptionsT *AsFloorModOptions() const {
02188     return type == BuiltinOptions_FloorModOptions ?
02189       reinterpret_cast<const FloorModOptionsT *>(value) : nullptr;
02190   }
02191   RangeOptionsT *AsRangeOptions() {
02192     return type == BuiltinOptions_RangeOptions ?
02193       reinterpret_cast<RangeOptionsT *>(value) : nullptr;
02194   }
02195   const RangeOptionsT *AsRangeOptions() const {
02196     return type == BuiltinOptions_RangeOptions ?
02197       reinterpret_cast<const RangeOptionsT *>(value) : nullptr;
02198   }
02199   ResizeNearestNeighborOptionsT *AsResizeNearestNeighborOptions() {
02200     return type == BuiltinOptions_ResizeNearestNeighborOptions ?
02201       reinterpret_cast<ResizeNearestNeighborOptionsT *>(value) : nullptr;
02202   }
02203   const ResizeNearestNeighborOptionsT *AsResizeNearestNeighborOptions() const {
02204     return type == BuiltinOptions_ResizeNearestNeighborOptions ?
02205       reinterpret_cast<const ResizeNearestNeighborOptionsT *>(value) : nullptr;
02206   }
02207   LeakyReluOptionsT *AsLeakyReluOptions() {
02208     return type == BuiltinOptions_LeakyReluOptions ?
02209       reinterpret_cast<LeakyReluOptionsT *>(value) : nullptr;
02210   }
02211   const LeakyReluOptionsT *AsLeakyReluOptions() const {
02212     return type == BuiltinOptions_LeakyReluOptions ?
02213       reinterpret_cast<const LeakyReluOptionsT *>(value) : nullptr;
02214   }
02215   SquaredDifferenceOptionsT *AsSquaredDifferenceOptions() {
02216     return type == BuiltinOptions_SquaredDifferenceOptions ?
02217       reinterpret_cast<SquaredDifferenceOptionsT *>(value) : nullptr;
02218   }
02219   const SquaredDifferenceOptionsT *AsSquaredDifferenceOptions() const {
02220     return type == BuiltinOptions_SquaredDifferenceOptions ?
02221       reinterpret_cast<const SquaredDifferenceOptionsT *>(value) : nullptr;
02222   }
02223   MirrorPadOptionsT *AsMirrorPadOptions() {
02224     return type == BuiltinOptions_MirrorPadOptions ?
02225       reinterpret_cast<MirrorPadOptionsT *>(value) : nullptr;
02226   }
02227   const MirrorPadOptionsT *AsMirrorPadOptions() const {
02228     return type == BuiltinOptions_MirrorPadOptions ?
02229       reinterpret_cast<const MirrorPadOptionsT *>(value) : nullptr;
02230   }
02231   AbsOptionsT *AsAbsOptions() {
02232     return type == BuiltinOptions_AbsOptions ?
02233       reinterpret_cast<AbsOptionsT *>(value) : nullptr;
02234   }
02235   const AbsOptionsT *AsAbsOptions() const {
02236     return type == BuiltinOptions_AbsOptions ?
02237       reinterpret_cast<const AbsOptionsT *>(value) : nullptr;
02238   }
02239   SplitVOptionsT *AsSplitVOptions() {
02240     return type == BuiltinOptions_SplitVOptions ?
02241       reinterpret_cast<SplitVOptionsT *>(value) : nullptr;
02242   }
02243   const SplitVOptionsT *AsSplitVOptions() const {
02244     return type == BuiltinOptions_SplitVOptions ?
02245       reinterpret_cast<const SplitVOptionsT *>(value) : nullptr;
02246   }
02247   UniqueOptionsT *AsUniqueOptions() {
02248     return type == BuiltinOptions_UniqueOptions ?
02249       reinterpret_cast<UniqueOptionsT *>(value) : nullptr;
02250   }
02251   const UniqueOptionsT *AsUniqueOptions() const {
02252     return type == BuiltinOptions_UniqueOptions ?
02253       reinterpret_cast<const UniqueOptionsT *>(value) : nullptr;
02254   }
02255   ReverseV2OptionsT *AsReverseV2Options() {
02256     return type == BuiltinOptions_ReverseV2Options ?
02257       reinterpret_cast<ReverseV2OptionsT *>(value) : nullptr;
02258   }
02259   const ReverseV2OptionsT *AsReverseV2Options() const {
02260     return type == BuiltinOptions_ReverseV2Options ?
02261       reinterpret_cast<const ReverseV2OptionsT *>(value) : nullptr;
02262   }
02263   AddNOptionsT *AsAddNOptions() {
02264     return type == BuiltinOptions_AddNOptions ?
02265       reinterpret_cast<AddNOptionsT *>(value) : nullptr;
02266   }
02267   const AddNOptionsT *AsAddNOptions() const {
02268     return type == BuiltinOptions_AddNOptions ?
02269       reinterpret_cast<const AddNOptionsT *>(value) : nullptr;
02270   }
02271   GatherNdOptionsT *AsGatherNdOptions() {
02272     return type == BuiltinOptions_GatherNdOptions ?
02273       reinterpret_cast<GatherNdOptionsT *>(value) : nullptr;
02274   }
02275   const GatherNdOptionsT *AsGatherNdOptions() const {
02276     return type == BuiltinOptions_GatherNdOptions ?
02277       reinterpret_cast<const GatherNdOptionsT *>(value) : nullptr;
02278   }
02279   CosOptionsT *AsCosOptions() {
02280     return type == BuiltinOptions_CosOptions ?
02281       reinterpret_cast<CosOptionsT *>(value) : nullptr;
02282   }
02283   const CosOptionsT *AsCosOptions() const {
02284     return type == BuiltinOptions_CosOptions ?
02285       reinterpret_cast<const CosOptionsT *>(value) : nullptr;
02286   }
02287   WhereOptionsT *AsWhereOptions() {
02288     return type == BuiltinOptions_WhereOptions ?
02289       reinterpret_cast<WhereOptionsT *>(value) : nullptr;
02290   }
02291   const WhereOptionsT *AsWhereOptions() const {
02292     return type == BuiltinOptions_WhereOptions ?
02293       reinterpret_cast<const WhereOptionsT *>(value) : nullptr;
02294   }
02295   RankOptionsT *AsRankOptions() {
02296     return type == BuiltinOptions_RankOptions ?
02297       reinterpret_cast<RankOptionsT *>(value) : nullptr;
02298   }
02299   const RankOptionsT *AsRankOptions() const {
02300     return type == BuiltinOptions_RankOptions ?
02301       reinterpret_cast<const RankOptionsT *>(value) : nullptr;
02302   }
02303   ReverseSequenceOptionsT *AsReverseSequenceOptions() {
02304     return type == BuiltinOptions_ReverseSequenceOptions ?
02305       reinterpret_cast<ReverseSequenceOptionsT *>(value) : nullptr;
02306   }
02307   const ReverseSequenceOptionsT *AsReverseSequenceOptions() const {
02308     return type == BuiltinOptions_ReverseSequenceOptions ?
02309       reinterpret_cast<const ReverseSequenceOptionsT *>(value) : nullptr;
02310   }
02311   MatrixDiagOptionsT *AsMatrixDiagOptions() {
02312     return type == BuiltinOptions_MatrixDiagOptions ?
02313       reinterpret_cast<MatrixDiagOptionsT *>(value) : nullptr;
02314   }
02315   const MatrixDiagOptionsT *AsMatrixDiagOptions() const {
02316     return type == BuiltinOptions_MatrixDiagOptions ?
02317       reinterpret_cast<const MatrixDiagOptionsT *>(value) : nullptr;
02318   }
02319   QuantizeOptionsT *AsQuantizeOptions() {
02320     return type == BuiltinOptions_QuantizeOptions ?
02321       reinterpret_cast<QuantizeOptionsT *>(value) : nullptr;
02322   }
02323   const QuantizeOptionsT *AsQuantizeOptions() const {
02324     return type == BuiltinOptions_QuantizeOptions ?
02325       reinterpret_cast<const QuantizeOptionsT *>(value) : nullptr;
02326   }
02327   MatrixSetDiagOptionsT *AsMatrixSetDiagOptions() {
02328     return type == BuiltinOptions_MatrixSetDiagOptions ?
02329       reinterpret_cast<MatrixSetDiagOptionsT *>(value) : nullptr;
02330   }
02331   const MatrixSetDiagOptionsT *AsMatrixSetDiagOptions() const {
02332     return type == BuiltinOptions_MatrixSetDiagOptions ?
02333       reinterpret_cast<const MatrixSetDiagOptionsT *>(value) : nullptr;
02334   }
02335   HardSwishOptionsT *AsHardSwishOptions() {
02336     return type == BuiltinOptions_HardSwishOptions ?
02337       reinterpret_cast<HardSwishOptionsT *>(value) : nullptr;
02338   }
02339   const HardSwishOptionsT *AsHardSwishOptions() const {
02340     return type == BuiltinOptions_HardSwishOptions ?
02341       reinterpret_cast<const HardSwishOptionsT *>(value) : nullptr;
02342   }
02343   IfOptionsT *AsIfOptions() {
02344     return type == BuiltinOptions_IfOptions ?
02345       reinterpret_cast<IfOptionsT *>(value) : nullptr;
02346   }
02347   const IfOptionsT *AsIfOptions() const {
02348     return type == BuiltinOptions_IfOptions ?
02349       reinterpret_cast<const IfOptionsT *>(value) : nullptr;
02350   }
02351   WhileOptionsT *AsWhileOptions() {
02352     return type == BuiltinOptions_WhileOptions ?
02353       reinterpret_cast<WhileOptionsT *>(value) : nullptr;
02354   }
02355   const WhileOptionsT *AsWhileOptions() const {
02356     return type == BuiltinOptions_WhileOptions ?
02357       reinterpret_cast<const WhileOptionsT *>(value) : nullptr;
02358   }
02359   DepthToSpaceOptionsT *AsDepthToSpaceOptions() {
02360     return type == BuiltinOptions_DepthToSpaceOptions ?
02361       reinterpret_cast<DepthToSpaceOptionsT *>(value) : nullptr;
02362   }
02363   const DepthToSpaceOptionsT *AsDepthToSpaceOptions() const {
02364     return type == BuiltinOptions_DepthToSpaceOptions ?
02365       reinterpret_cast<const DepthToSpaceOptionsT *>(value) : nullptr;
02366   }
02367   NonMaxSuppressionV4OptionsT *AsNonMaxSuppressionV4Options() {
02368     return type == BuiltinOptions_NonMaxSuppressionV4Options ?
02369       reinterpret_cast<NonMaxSuppressionV4OptionsT *>(value) : nullptr;
02370   }
02371   const NonMaxSuppressionV4OptionsT *AsNonMaxSuppressionV4Options() const {
02372     return type == BuiltinOptions_NonMaxSuppressionV4Options ?
02373       reinterpret_cast<const NonMaxSuppressionV4OptionsT *>(value) : nullptr;
02374   }
02375   NonMaxSuppressionV5OptionsT *AsNonMaxSuppressionV5Options() {
02376     return type == BuiltinOptions_NonMaxSuppressionV5Options ?
02377       reinterpret_cast<NonMaxSuppressionV5OptionsT *>(value) : nullptr;
02378   }
02379   const NonMaxSuppressionV5OptionsT *AsNonMaxSuppressionV5Options() const {
02380     return type == BuiltinOptions_NonMaxSuppressionV5Options ?
02381       reinterpret_cast<const NonMaxSuppressionV5OptionsT *>(value) : nullptr;
02382   }
02383   ScatterNdOptionsT *AsScatterNdOptions() {
02384     return type == BuiltinOptions_ScatterNdOptions ?
02385       reinterpret_cast<ScatterNdOptionsT *>(value) : nullptr;
02386   }
02387   const ScatterNdOptionsT *AsScatterNdOptions() const {
02388     return type == BuiltinOptions_ScatterNdOptions ?
02389       reinterpret_cast<const ScatterNdOptionsT *>(value) : nullptr;
02390   }
02391 };
02392 
02393 bool VerifyBuiltinOptions(flatbuffers::Verifier &verifier, const void *obj, BuiltinOptions type);
02394 bool VerifyBuiltinOptionsVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<uint8_t> *types);
02395 
02396 enum Padding {
02397   Padding_SAME = 0,
02398   Padding_VALID = 1,
02399   Padding_MIN = Padding_SAME,
02400   Padding_MAX = Padding_VALID
02401 };
02402 
02403 inline const Padding (&EnumValuesPadding())[2] {
02404   static const Padding values[] = {
02405     Padding_SAME,
02406     Padding_VALID
02407   };
02408   return values;
02409 }
02410 
02411 inline const char * const *EnumNamesPadding() {
02412   static const char * const names[] = {
02413     "SAME",
02414     "VALID",
02415     nullptr
02416   };
02417   return names;
02418 }
02419 
02420 inline const char *EnumNamePadding(Padding e) {
02421   if (e < Padding_SAME || e > Padding_VALID) return "";
02422   const size_t index = static_cast<size_t>(e);
02423   return EnumNamesPadding()[index];
02424 }
02425 
02426 enum ActivationFunctionType {
02427   ActivationFunctionType_NONE = 0,
02428   ActivationFunctionType_RELU = 1,
02429   ActivationFunctionType_RELU_N1_TO_1 = 2,
02430   ActivationFunctionType_RELU6 = 3,
02431   ActivationFunctionType_TANH = 4,
02432   ActivationFunctionType_SIGN_BIT = 5,
02433   ActivationFunctionType_MIN = ActivationFunctionType_NONE,
02434   ActivationFunctionType_MAX = ActivationFunctionType_SIGN_BIT
02435 };
02436 
02437 inline const ActivationFunctionType (&EnumValuesActivationFunctionType())[6] {
02438   static const ActivationFunctionType values[] = {
02439     ActivationFunctionType_NONE,
02440     ActivationFunctionType_RELU,
02441     ActivationFunctionType_RELU_N1_TO_1,
02442     ActivationFunctionType_RELU6,
02443     ActivationFunctionType_TANH,
02444     ActivationFunctionType_SIGN_BIT
02445   };
02446   return values;
02447 }
02448 
02449 inline const char * const *EnumNamesActivationFunctionType() {
02450   static const char * const names[] = {
02451     "NONE",
02452     "RELU",
02453     "RELU_N1_TO_1",
02454     "RELU6",
02455     "TANH",
02456     "SIGN_BIT",
02457     nullptr
02458   };
02459   return names;
02460 }
02461 
02462 inline const char *EnumNameActivationFunctionType(ActivationFunctionType e) {
02463   if (e < ActivationFunctionType_NONE || e > ActivationFunctionType_SIGN_BIT) return "";
02464   const size_t index = static_cast<size_t>(e);
02465   return EnumNamesActivationFunctionType()[index];
02466 }
02467 
02468 enum LSHProjectionType {
02469   LSHProjectionType_UNKNOWN = 0,
02470   LSHProjectionType_SPARSE = 1,
02471   LSHProjectionType_DENSE = 2,
02472   LSHProjectionType_MIN = LSHProjectionType_UNKNOWN,
02473   LSHProjectionType_MAX = LSHProjectionType_DENSE
02474 };
02475 
02476 inline const LSHProjectionType (&EnumValuesLSHProjectionType())[3] {
02477   static const LSHProjectionType values[] = {
02478     LSHProjectionType_UNKNOWN,
02479     LSHProjectionType_SPARSE,
02480     LSHProjectionType_DENSE
02481   };
02482   return values;
02483 }
02484 
02485 inline const char * const *EnumNamesLSHProjectionType() {
02486   static const char * const names[] = {
02487     "UNKNOWN",
02488     "SPARSE",
02489     "DENSE",
02490     nullptr
02491   };
02492   return names;
02493 }
02494 
02495 inline const char *EnumNameLSHProjectionType(LSHProjectionType e) {
02496   if (e < LSHProjectionType_UNKNOWN || e > LSHProjectionType_DENSE) return "";
02497   const size_t index = static_cast<size_t>(e);
02498   return EnumNamesLSHProjectionType()[index];
02499 }
02500 
02501 enum FullyConnectedOptionsWeightsFormat {
02502   FullyConnectedOptionsWeightsFormat_DEFAULT = 0,
02503   FullyConnectedOptionsWeightsFormat_SHUFFLED4x16INT8 = 1,
02504   FullyConnectedOptionsWeightsFormat_MIN = FullyConnectedOptionsWeightsFormat_DEFAULT,
02505   FullyConnectedOptionsWeightsFormat_MAX = FullyConnectedOptionsWeightsFormat_SHUFFLED4x16INT8
02506 };
02507 
02508 inline const FullyConnectedOptionsWeightsFormat (&EnumValuesFullyConnectedOptionsWeightsFormat())[2] {
02509   static const FullyConnectedOptionsWeightsFormat values[] = {
02510     FullyConnectedOptionsWeightsFormat_DEFAULT,
02511     FullyConnectedOptionsWeightsFormat_SHUFFLED4x16INT8
02512   };
02513   return values;
02514 }
02515 
02516 inline const char * const *EnumNamesFullyConnectedOptionsWeightsFormat() {
02517   static const char * const names[] = {
02518     "DEFAULT",
02519     "SHUFFLED4x16INT8",
02520     nullptr
02521   };
02522   return names;
02523 }
02524 
02525 inline const char *EnumNameFullyConnectedOptionsWeightsFormat(FullyConnectedOptionsWeightsFormat e) {
02526   if (e < FullyConnectedOptionsWeightsFormat_DEFAULT || e > FullyConnectedOptionsWeightsFormat_SHUFFLED4x16INT8) return "";
02527   const size_t index = static_cast<size_t>(e);
02528   return EnumNamesFullyConnectedOptionsWeightsFormat()[index];
02529 }
02530 
02531 enum LSTMKernelType {
02532   LSTMKernelType_FULL = 0,
02533   LSTMKernelType_BASIC = 1,
02534   LSTMKernelType_MIN = LSTMKernelType_FULL,
02535   LSTMKernelType_MAX = LSTMKernelType_BASIC
02536 };
02537 
02538 inline const LSTMKernelType (&EnumValuesLSTMKernelType())[2] {
02539   static const LSTMKernelType values[] = {
02540     LSTMKernelType_FULL,
02541     LSTMKernelType_BASIC
02542   };
02543   return values;
02544 }
02545 
02546 inline const char * const *EnumNamesLSTMKernelType() {
02547   static const char * const names[] = {
02548     "FULL",
02549     "BASIC",
02550     nullptr
02551   };
02552   return names;
02553 }
02554 
02555 inline const char *EnumNameLSTMKernelType(LSTMKernelType e) {
02556   if (e < LSTMKernelType_FULL || e > LSTMKernelType_BASIC) return "";
02557   const size_t index = static_cast<size_t>(e);
02558   return EnumNamesLSTMKernelType()[index];
02559 }
02560 
02561 enum CombinerType {
02562   CombinerType_SUM = 0,
02563   CombinerType_MEAN = 1,
02564   CombinerType_SQRTN = 2,
02565   CombinerType_MIN = CombinerType_SUM,
02566   CombinerType_MAX = CombinerType_SQRTN
02567 };
02568 
02569 inline const CombinerType (&EnumValuesCombinerType())[3] {
02570   static const CombinerType values[] = {
02571     CombinerType_SUM,
02572     CombinerType_MEAN,
02573     CombinerType_SQRTN
02574   };
02575   return values;
02576 }
02577 
02578 inline const char * const *EnumNamesCombinerType() {
02579   static const char * const names[] = {
02580     "SUM",
02581     "MEAN",
02582     "SQRTN",
02583     nullptr
02584   };
02585   return names;
02586 }
02587 
02588 inline const char *EnumNameCombinerType(CombinerType e) {
02589   if (e < CombinerType_SUM || e > CombinerType_SQRTN) return "";
02590   const size_t index = static_cast<size_t>(e);
02591   return EnumNamesCombinerType()[index];
02592 }
02593 
02594 enum MirrorPadMode {
02595   MirrorPadMode_REFLECT = 0,
02596   MirrorPadMode_SYMMETRIC = 1,
02597   MirrorPadMode_MIN = MirrorPadMode_REFLECT,
02598   MirrorPadMode_MAX = MirrorPadMode_SYMMETRIC
02599 };
02600 
02601 inline const MirrorPadMode (&EnumValuesMirrorPadMode())[2] {
02602   static const MirrorPadMode values[] = {
02603     MirrorPadMode_REFLECT,
02604     MirrorPadMode_SYMMETRIC
02605   };
02606   return values;
02607 }
02608 
02609 inline const char * const *EnumNamesMirrorPadMode() {
02610   static const char * const names[] = {
02611     "REFLECT",
02612     "SYMMETRIC",
02613     nullptr
02614   };
02615   return names;
02616 }
02617 
02618 inline const char *EnumNameMirrorPadMode(MirrorPadMode e) {
02619   if (e < MirrorPadMode_REFLECT || e > MirrorPadMode_SYMMETRIC) return "";
02620   const size_t index = static_cast<size_t>(e);
02621   return EnumNamesMirrorPadMode()[index];
02622 }
02623 
02624 enum CustomOptionsFormat {
02625   CustomOptionsFormat_FLEXBUFFERS = 0,
02626   CustomOptionsFormat_MIN = CustomOptionsFormat_FLEXBUFFERS,
02627   CustomOptionsFormat_MAX = CustomOptionsFormat_FLEXBUFFERS
02628 };
02629 
02630 inline const CustomOptionsFormat (&EnumValuesCustomOptionsFormat())[1] {
02631   static const CustomOptionsFormat values[] = {
02632     CustomOptionsFormat_FLEXBUFFERS
02633   };
02634   return values;
02635 }
02636 
02637 inline const char * const *EnumNamesCustomOptionsFormat() {
02638   static const char * const names[] = {
02639     "FLEXBUFFERS",
02640     nullptr
02641   };
02642   return names;
02643 }
02644 
02645 inline const char *EnumNameCustomOptionsFormat(CustomOptionsFormat e) {
02646   if (e < CustomOptionsFormat_FLEXBUFFERS || e > CustomOptionsFormat_FLEXBUFFERS) return "";
02647   const size_t index = static_cast<size_t>(e);
02648   return EnumNamesCustomOptionsFormat()[index];
02649 }
02650 
02651 struct CustomQuantizationT : public flatbuffers::NativeTable {
02652   typedef CustomQuantization TableType;
02653   std::vector<uint8_t> custom;
02654   CustomQuantizationT() {
02655   }
02656 };
02657 
02658 struct CustomQuantization FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
02659   typedef CustomQuantizationT NativeTableType;
02660   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
02661     VT_CUSTOM = 4
02662   };
02663   const flatbuffers::Vector<uint8_t> *custom() const {
02664     return GetPointer<const flatbuffers::Vector<uint8_t> *>(VT_CUSTOM);
02665   }
02666   bool Verify(flatbuffers::Verifier &verifier) const {
02667     return VerifyTableStart(verifier) &&
02668            VerifyOffset(verifier, VT_CUSTOM) &&
02669            verifier.VerifyVector(custom()) &&
02670            verifier.EndTable();
02671   }
02672   CustomQuantizationT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
02673   void UnPackTo(CustomQuantizationT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
02674   static flatbuffers::Offset<CustomQuantization> Pack(flatbuffers::FlatBufferBuilder &_fbb, const CustomQuantizationT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
02675 };
02676 
02677 struct CustomQuantizationBuilder {
02678   flatbuffers::FlatBufferBuilder &fbb_;
02679   flatbuffers::uoffset_t start_;
02680   void add_custom(flatbuffers::Offset<flatbuffers::Vector<uint8_t>> custom) {
02681     fbb_.AddOffset(CustomQuantization::VT_CUSTOM, custom);
02682   }
02683   explicit CustomQuantizationBuilder(flatbuffers::FlatBufferBuilder &_fbb)
02684         : fbb_(_fbb) {
02685     start_ = fbb_.StartTable();
02686   }
02687   CustomQuantizationBuilder &operator=(const CustomQuantizationBuilder &);
02688   flatbuffers::Offset<CustomQuantization> Finish() {
02689     const auto end = fbb_.EndTable(start_);
02690     auto o = flatbuffers::Offset<CustomQuantization>(end);
02691     return o;
02692   }
02693 };
02694 
02695 inline flatbuffers::Offset<CustomQuantization> CreateCustomQuantization(
02696     flatbuffers::FlatBufferBuilder &_fbb,
02697     flatbuffers::Offset<flatbuffers::Vector<uint8_t>> custom = 0) {
02698   CustomQuantizationBuilder builder_(_fbb);
02699   builder_.add_custom(custom);
02700   return builder_.Finish();
02701 }
02702 
02703 inline flatbuffers::Offset<CustomQuantization> CreateCustomQuantizationDirect(
02704     flatbuffers::FlatBufferBuilder &_fbb,
02705     const std::vector<uint8_t> *custom = nullptr) {
02706   auto custom__ = custom ? _fbb.CreateVector<uint8_t>(*custom) : 0;
02707   return tflite::CreateCustomQuantization(
02708       _fbb,
02709       custom__);
02710 }
02711 
02712 flatbuffers::Offset<CustomQuantization> CreateCustomQuantization(flatbuffers::FlatBufferBuilder &_fbb, const CustomQuantizationT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
02713 
02714 struct QuantizationParametersT : public flatbuffers::NativeTable {
02715   typedef QuantizationParameters TableType;
02716   std::vector<float> min;
02717   std::vector<float> max;
02718   std::vector<float> scale;
02719   std::vector<int64_t> zero_point;
02720   QuantizationDetailsUnion details;
02721   int32_t quantized_dimension;
02722   QuantizationParametersT()
02723       : quantized_dimension(0) {
02724   }
02725 };
02726 
02727 struct QuantizationParameters FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
02728   typedef QuantizationParametersT NativeTableType;
02729   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
02730     VT_MIN = 4,
02731     VT_MAX = 6,
02732     VT_SCALE = 8,
02733     VT_ZERO_POINT = 10,
02734     VT_DETAILS_TYPE = 12,
02735     VT_DETAILS = 14,
02736     VT_QUANTIZED_DIMENSION = 16
02737   };
02738   const flatbuffers::Vector<float> *min() const {
02739     return GetPointer<const flatbuffers::Vector<float> *>(VT_MIN);
02740   }
02741   const flatbuffers::Vector<float> *max() const {
02742     return GetPointer<const flatbuffers::Vector<float> *>(VT_MAX);
02743   }
02744   const flatbuffers::Vector<float> *scale() const {
02745     return GetPointer<const flatbuffers::Vector<float> *>(VT_SCALE);
02746   }
02747   const flatbuffers::Vector<int64_t> *zero_point() const {
02748     return GetPointer<const flatbuffers::Vector<int64_t> *>(VT_ZERO_POINT);
02749   }
02750   QuantizationDetails details_type() const {
02751     return static_cast<QuantizationDetails>(GetField<uint8_t>(VT_DETAILS_TYPE, 0));
02752   }
02753   const void *details() const {
02754     return GetPointer<const void *>(VT_DETAILS);
02755   }
02756   template<typename T> const T *details_as() const;
02757   const CustomQuantization *details_as_CustomQuantization() const {
02758     return details_type() == QuantizationDetails_CustomQuantization ? static_cast<const CustomQuantization *>(details()) : nullptr;
02759   }
02760   int32_t quantized_dimension() const {
02761     return GetField<int32_t>(VT_QUANTIZED_DIMENSION, 0);
02762   }
02763   bool Verify(flatbuffers::Verifier &verifier) const {
02764     return VerifyTableStart(verifier) &&
02765            VerifyOffset(verifier, VT_MIN) &&
02766            verifier.VerifyVector(min()) &&
02767            VerifyOffset(verifier, VT_MAX) &&
02768            verifier.VerifyVector(max()) &&
02769            VerifyOffset(verifier, VT_SCALE) &&
02770            verifier.VerifyVector(scale()) &&
02771            VerifyOffset(verifier, VT_ZERO_POINT) &&
02772            verifier.VerifyVector(zero_point()) &&
02773            VerifyField<uint8_t>(verifier, VT_DETAILS_TYPE) &&
02774            VerifyOffset(verifier, VT_DETAILS) &&
02775            VerifyQuantizationDetails(verifier, details(), details_type()) &&
02776            VerifyField<int32_t>(verifier, VT_QUANTIZED_DIMENSION) &&
02777            verifier.EndTable();
02778   }
02779   QuantizationParametersT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
02780   void UnPackTo(QuantizationParametersT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
02781   static flatbuffers::Offset<QuantizationParameters> Pack(flatbuffers::FlatBufferBuilder &_fbb, const QuantizationParametersT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
02782 };
02783 
02784 template<> inline const CustomQuantization *QuantizationParameters::details_as<CustomQuantization>() const {
02785   return details_as_CustomQuantization();
02786 }
02787 
02788 struct QuantizationParametersBuilder {
02789   flatbuffers::FlatBufferBuilder &fbb_;
02790   flatbuffers::uoffset_t start_;
02791   void add_min(flatbuffers::Offset<flatbuffers::Vector<float>> min) {
02792     fbb_.AddOffset(QuantizationParameters::VT_MIN, min);
02793   }
02794   void add_max(flatbuffers::Offset<flatbuffers::Vector<float>> max) {
02795     fbb_.AddOffset(QuantizationParameters::VT_MAX, max);
02796   }
02797   void add_scale(flatbuffers::Offset<flatbuffers::Vector<float>> scale) {
02798     fbb_.AddOffset(QuantizationParameters::VT_SCALE, scale);
02799   }
02800   void add_zero_point(flatbuffers::Offset<flatbuffers::Vector<int64_t>> zero_point) {
02801     fbb_.AddOffset(QuantizationParameters::VT_ZERO_POINT, zero_point);
02802   }
02803   void add_details_type(QuantizationDetails details_type) {
02804     fbb_.AddElement<uint8_t>(QuantizationParameters::VT_DETAILS_TYPE, static_cast<uint8_t>(details_type), 0);
02805   }
02806   void add_details(flatbuffers::Offset<void> details) {
02807     fbb_.AddOffset(QuantizationParameters::VT_DETAILS, details);
02808   }
02809   void add_quantized_dimension(int32_t quantized_dimension) {
02810     fbb_.AddElement<int32_t>(QuantizationParameters::VT_QUANTIZED_DIMENSION, quantized_dimension, 0);
02811   }
02812   explicit QuantizationParametersBuilder(flatbuffers::FlatBufferBuilder &_fbb)
02813         : fbb_(_fbb) {
02814     start_ = fbb_.StartTable();
02815   }
02816   QuantizationParametersBuilder &operator=(const QuantizationParametersBuilder &);
02817   flatbuffers::Offset<QuantizationParameters> Finish() {
02818     const auto end = fbb_.EndTable(start_);
02819     auto o = flatbuffers::Offset<QuantizationParameters>(end);
02820     return o;
02821   }
02822 };
02823 
02824 inline flatbuffers::Offset<QuantizationParameters> CreateQuantizationParameters(
02825     flatbuffers::FlatBufferBuilder &_fbb,
02826     flatbuffers::Offset<flatbuffers::Vector<float>> min = 0,
02827     flatbuffers::Offset<flatbuffers::Vector<float>> max = 0,
02828     flatbuffers::Offset<flatbuffers::Vector<float>> scale = 0,
02829     flatbuffers::Offset<flatbuffers::Vector<int64_t>> zero_point = 0,
02830     QuantizationDetails details_type = QuantizationDetails_NONE,
02831     flatbuffers::Offset<void> details = 0,
02832     int32_t quantized_dimension = 0) {
02833   QuantizationParametersBuilder builder_(_fbb);
02834   builder_.add_quantized_dimension(quantized_dimension);
02835   builder_.add_details(details);
02836   builder_.add_zero_point(zero_point);
02837   builder_.add_scale(scale);
02838   builder_.add_max(max);
02839   builder_.add_min(min);
02840   builder_.add_details_type(details_type);
02841   return builder_.Finish();
02842 }
02843 
02844 inline flatbuffers::Offset<QuantizationParameters> CreateQuantizationParametersDirect(
02845     flatbuffers::FlatBufferBuilder &_fbb,
02846     const std::vector<float> *min = nullptr,
02847     const std::vector<float> *max = nullptr,
02848     const std::vector<float> *scale = nullptr,
02849     const std::vector<int64_t> *zero_point = nullptr,
02850     QuantizationDetails details_type = QuantizationDetails_NONE,
02851     flatbuffers::Offset<void> details = 0,
02852     int32_t quantized_dimension = 0) {
02853   auto min__ = min ? _fbb.CreateVector<float>(*min) : 0;
02854   auto max__ = max ? _fbb.CreateVector<float>(*max) : 0;
02855   auto scale__ = scale ? _fbb.CreateVector<float>(*scale) : 0;
02856   auto zero_point__ = zero_point ? _fbb.CreateVector<int64_t>(*zero_point) : 0;
02857   return tflite::CreateQuantizationParameters(
02858       _fbb,
02859       min__,
02860       max__,
02861       scale__,
02862       zero_point__,
02863       details_type,
02864       details,
02865       quantized_dimension);
02866 }
02867 
02868 flatbuffers::Offset<QuantizationParameters> CreateQuantizationParameters(flatbuffers::FlatBufferBuilder &_fbb, const QuantizationParametersT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
02869 
02870 struct TensorT : public flatbuffers::NativeTable {
02871   typedef Tensor TableType;
02872   std::vector<int32_t> shape;
02873   TensorType type;
02874   uint32_t buffer;
02875   std::string name;
02876   std::unique_ptr<QuantizationParametersT> quantization;
02877   bool is_variable;
02878   TensorT()
02879       : type(TensorType_FLOAT32),
02880         buffer(0),
02881         is_variable(false) {
02882   }
02883 };
02884 
02885 struct Tensor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
02886   typedef TensorT NativeTableType;
02887   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
02888     VT_SHAPE = 4,
02889     VT_TYPE = 6,
02890     VT_BUFFER = 8,
02891     VT_NAME = 10,
02892     VT_QUANTIZATION = 12,
02893     VT_IS_VARIABLE = 14
02894   };
02895   const flatbuffers::Vector<int32_t> *shape() const {
02896     return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_SHAPE);
02897   }
02898   TensorType type() const {
02899     return static_cast<TensorType>(GetField<int8_t>(VT_TYPE, 0));
02900   }
02901   uint32_t buffer() const {
02902     return GetField<uint32_t>(VT_BUFFER, 0);
02903   }
02904   const flatbuffers::String *name() const {
02905     return GetPointer<const flatbuffers::String *>(VT_NAME);
02906   }
02907   const QuantizationParameters *quantization() const {
02908     return GetPointer<const QuantizationParameters *>(VT_QUANTIZATION);
02909   }
02910   bool is_variable() const {
02911     return GetField<uint8_t>(VT_IS_VARIABLE, 0) != 0;
02912   }
02913   bool Verify(flatbuffers::Verifier &verifier) const {
02914     return VerifyTableStart(verifier) &&
02915            VerifyOffset(verifier, VT_SHAPE) &&
02916            verifier.VerifyVector(shape()) &&
02917            VerifyField<int8_t>(verifier, VT_TYPE) &&
02918            VerifyField<uint32_t>(verifier, VT_BUFFER) &&
02919            VerifyOffset(verifier, VT_NAME) &&
02920            verifier.VerifyString(name()) &&
02921            VerifyOffset(verifier, VT_QUANTIZATION) &&
02922            verifier.VerifyTable(quantization()) &&
02923            VerifyField<uint8_t>(verifier, VT_IS_VARIABLE) &&
02924            verifier.EndTable();
02925   }
02926   TensorT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
02927   void UnPackTo(TensorT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
02928   static flatbuffers::Offset<Tensor> Pack(flatbuffers::FlatBufferBuilder &_fbb, const TensorT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
02929 };
02930 
02931 struct TensorBuilder {
02932   flatbuffers::FlatBufferBuilder &fbb_;
02933   flatbuffers::uoffset_t start_;
02934   void add_shape(flatbuffers::Offset<flatbuffers::Vector<int32_t>> shape) {
02935     fbb_.AddOffset(Tensor::VT_SHAPE, shape);
02936   }
02937   void add_type(TensorType type) {
02938     fbb_.AddElement<int8_t>(Tensor::VT_TYPE, static_cast<int8_t>(type), 0);
02939   }
02940   void add_buffer(uint32_t buffer) {
02941     fbb_.AddElement<uint32_t>(Tensor::VT_BUFFER, buffer, 0);
02942   }
02943   void add_name(flatbuffers::Offset<flatbuffers::String> name) {
02944     fbb_.AddOffset(Tensor::VT_NAME, name);
02945   }
02946   void add_quantization(flatbuffers::Offset<QuantizationParameters> quantization) {
02947     fbb_.AddOffset(Tensor::VT_QUANTIZATION, quantization);
02948   }
02949   void add_is_variable(bool is_variable) {
02950     fbb_.AddElement<uint8_t>(Tensor::VT_IS_VARIABLE, static_cast<uint8_t>(is_variable), 0);
02951   }
02952   explicit TensorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
02953         : fbb_(_fbb) {
02954     start_ = fbb_.StartTable();
02955   }
02956   TensorBuilder &operator=(const TensorBuilder &);
02957   flatbuffers::Offset<Tensor> Finish() {
02958     const auto end = fbb_.EndTable(start_);
02959     auto o = flatbuffers::Offset<Tensor>(end);
02960     return o;
02961   }
02962 };
02963 
02964 inline flatbuffers::Offset<Tensor> CreateTensor(
02965     flatbuffers::FlatBufferBuilder &_fbb,
02966     flatbuffers::Offset<flatbuffers::Vector<int32_t>> shape = 0,
02967     TensorType type = TensorType_FLOAT32,
02968     uint32_t buffer = 0,
02969     flatbuffers::Offset<flatbuffers::String> name = 0,
02970     flatbuffers::Offset<QuantizationParameters> quantization = 0,
02971     bool is_variable = false) {
02972   TensorBuilder builder_(_fbb);
02973   builder_.add_quantization(quantization);
02974   builder_.add_name(name);
02975   builder_.add_buffer(buffer);
02976   builder_.add_shape(shape);
02977   builder_.add_is_variable(is_variable);
02978   builder_.add_type(type);
02979   return builder_.Finish();
02980 }
02981 
02982 inline flatbuffers::Offset<Tensor> CreateTensorDirect(
02983     flatbuffers::FlatBufferBuilder &_fbb,
02984     const std::vector<int32_t> *shape = nullptr,
02985     TensorType type = TensorType_FLOAT32,
02986     uint32_t buffer = 0,
02987     const char *name = nullptr,
02988     flatbuffers::Offset<QuantizationParameters> quantization = 0,
02989     bool is_variable = false) {
02990   auto shape__ = shape ? _fbb.CreateVector<int32_t>(*shape) : 0;
02991   auto name__ = name ? _fbb.CreateString(name) : 0;
02992   return tflite::CreateTensor(
02993       _fbb,
02994       shape__,
02995       type,
02996       buffer,
02997       name__,
02998       quantization,
02999       is_variable);
03000 }
03001 
03002 flatbuffers::Offset<Tensor> CreateTensor(flatbuffers::FlatBufferBuilder &_fbb, const TensorT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
03003 
03004 struct Conv2DOptionsT : public flatbuffers::NativeTable {
03005   typedef Conv2DOptions TableType;
03006   Padding padding;
03007   int32_t stride_w;
03008   int32_t stride_h;
03009   ActivationFunctionType fused_activation_function;
03010   int32_t dilation_w_factor;
03011   int32_t dilation_h_factor;
03012   Conv2DOptionsT()
03013       : padding(Padding_SAME),
03014         stride_w(0),
03015         stride_h(0),
03016         fused_activation_function(ActivationFunctionType_NONE),
03017         dilation_w_factor(1),
03018         dilation_h_factor(1) {
03019   }
03020 };
03021 
03022 struct Conv2DOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
03023   typedef Conv2DOptionsT NativeTableType;
03024   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
03025     VT_PADDING = 4,
03026     VT_STRIDE_W = 6,
03027     VT_STRIDE_H = 8,
03028     VT_FUSED_ACTIVATION_FUNCTION = 10,
03029     VT_DILATION_W_FACTOR = 12,
03030     VT_DILATION_H_FACTOR = 14
03031   };
03032   Padding padding() const {
03033     return static_cast<Padding>(GetField<int8_t>(VT_PADDING, 0));
03034   }
03035   int32_t stride_w() const {
03036     return GetField<int32_t>(VT_STRIDE_W, 0);
03037   }
03038   int32_t stride_h() const {
03039     return GetField<int32_t>(VT_STRIDE_H, 0);
03040   }
03041   ActivationFunctionType fused_activation_function() const {
03042     return static_cast<ActivationFunctionType>(GetField<int8_t>(VT_FUSED_ACTIVATION_FUNCTION, 0));
03043   }
03044   int32_t dilation_w_factor() const {
03045     return GetField<int32_t>(VT_DILATION_W_FACTOR, 1);
03046   }
03047   int32_t dilation_h_factor() const {
03048     return GetField<int32_t>(VT_DILATION_H_FACTOR, 1);
03049   }
03050   bool Verify(flatbuffers::Verifier &verifier) const {
03051     return VerifyTableStart(verifier) &&
03052            VerifyField<int8_t>(verifier, VT_PADDING) &&
03053            VerifyField<int32_t>(verifier, VT_STRIDE_W) &&
03054            VerifyField<int32_t>(verifier, VT_STRIDE_H) &&
03055            VerifyField<int8_t>(verifier, VT_FUSED_ACTIVATION_FUNCTION) &&
03056            VerifyField<int32_t>(verifier, VT_DILATION_W_FACTOR) &&
03057            VerifyField<int32_t>(verifier, VT_DILATION_H_FACTOR) &&
03058            verifier.EndTable();
03059   }
03060   Conv2DOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
03061   void UnPackTo(Conv2DOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
03062   static flatbuffers::Offset<Conv2DOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const Conv2DOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
03063 };
03064 
03065 struct Conv2DOptionsBuilder {
03066   flatbuffers::FlatBufferBuilder &fbb_;
03067   flatbuffers::uoffset_t start_;
03068   void add_padding(Padding padding) {
03069     fbb_.AddElement<int8_t>(Conv2DOptions::VT_PADDING, static_cast<int8_t>(padding), 0);
03070   }
03071   void add_stride_w(int32_t stride_w) {
03072     fbb_.AddElement<int32_t>(Conv2DOptions::VT_STRIDE_W, stride_w, 0);
03073   }
03074   void add_stride_h(int32_t stride_h) {
03075     fbb_.AddElement<int32_t>(Conv2DOptions::VT_STRIDE_H, stride_h, 0);
03076   }
03077   void add_fused_activation_function(ActivationFunctionType fused_activation_function) {
03078     fbb_.AddElement<int8_t>(Conv2DOptions::VT_FUSED_ACTIVATION_FUNCTION, static_cast<int8_t>(fused_activation_function), 0);
03079   }
03080   void add_dilation_w_factor(int32_t dilation_w_factor) {
03081     fbb_.AddElement<int32_t>(Conv2DOptions::VT_DILATION_W_FACTOR, dilation_w_factor, 1);
03082   }
03083   void add_dilation_h_factor(int32_t dilation_h_factor) {
03084     fbb_.AddElement<int32_t>(Conv2DOptions::VT_DILATION_H_FACTOR, dilation_h_factor, 1);
03085   }
03086   explicit Conv2DOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
03087         : fbb_(_fbb) {
03088     start_ = fbb_.StartTable();
03089   }
03090   Conv2DOptionsBuilder &operator=(const Conv2DOptionsBuilder &);
03091   flatbuffers::Offset<Conv2DOptions> Finish() {
03092     const auto end = fbb_.EndTable(start_);
03093     auto o = flatbuffers::Offset<Conv2DOptions>(end);
03094     return o;
03095   }
03096 };
03097 
03098 inline flatbuffers::Offset<Conv2DOptions> CreateConv2DOptions(
03099     flatbuffers::FlatBufferBuilder &_fbb,
03100     Padding padding = Padding_SAME,
03101     int32_t stride_w = 0,
03102     int32_t stride_h = 0,
03103     ActivationFunctionType fused_activation_function = ActivationFunctionType_NONE,
03104     int32_t dilation_w_factor = 1,
03105     int32_t dilation_h_factor = 1) {
03106   Conv2DOptionsBuilder builder_(_fbb);
03107   builder_.add_dilation_h_factor(dilation_h_factor);
03108   builder_.add_dilation_w_factor(dilation_w_factor);
03109   builder_.add_stride_h(stride_h);
03110   builder_.add_stride_w(stride_w);
03111   builder_.add_fused_activation_function(fused_activation_function);
03112   builder_.add_padding(padding);
03113   return builder_.Finish();
03114 }
03115 
03116 flatbuffers::Offset<Conv2DOptions> CreateConv2DOptions(flatbuffers::FlatBufferBuilder &_fbb, const Conv2DOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
03117 
03118 struct Pool2DOptionsT : public flatbuffers::NativeTable {
03119   typedef Pool2DOptions TableType;
03120   Padding padding;
03121   int32_t stride_w;
03122   int32_t stride_h;
03123   int32_t filter_width;
03124   int32_t filter_height;
03125   ActivationFunctionType fused_activation_function;
03126   Pool2DOptionsT()
03127       : padding(Padding_SAME),
03128         stride_w(0),
03129         stride_h(0),
03130         filter_width(0),
03131         filter_height(0),
03132         fused_activation_function(ActivationFunctionType_NONE) {
03133   }
03134 };
03135 
03136 struct Pool2DOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
03137   typedef Pool2DOptionsT NativeTableType;
03138   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
03139     VT_PADDING = 4,
03140     VT_STRIDE_W = 6,
03141     VT_STRIDE_H = 8,
03142     VT_FILTER_WIDTH = 10,
03143     VT_FILTER_HEIGHT = 12,
03144     VT_FUSED_ACTIVATION_FUNCTION = 14
03145   };
03146   Padding padding() const {
03147     return static_cast<Padding>(GetField<int8_t>(VT_PADDING, 0));
03148   }
03149   int32_t stride_w() const {
03150     return GetField<int32_t>(VT_STRIDE_W, 0);
03151   }
03152   int32_t stride_h() const {
03153     return GetField<int32_t>(VT_STRIDE_H, 0);
03154   }
03155   int32_t filter_width() const {
03156     return GetField<int32_t>(VT_FILTER_WIDTH, 0);
03157   }
03158   int32_t filter_height() const {
03159     return GetField<int32_t>(VT_FILTER_HEIGHT, 0);
03160   }
03161   ActivationFunctionType fused_activation_function() const {
03162     return static_cast<ActivationFunctionType>(GetField<int8_t>(VT_FUSED_ACTIVATION_FUNCTION, 0));
03163   }
03164   bool Verify(flatbuffers::Verifier &verifier) const {
03165     return VerifyTableStart(verifier) &&
03166            VerifyField<int8_t>(verifier, VT_PADDING) &&
03167            VerifyField<int32_t>(verifier, VT_STRIDE_W) &&
03168            VerifyField<int32_t>(verifier, VT_STRIDE_H) &&
03169            VerifyField<int32_t>(verifier, VT_FILTER_WIDTH) &&
03170            VerifyField<int32_t>(verifier, VT_FILTER_HEIGHT) &&
03171            VerifyField<int8_t>(verifier, VT_FUSED_ACTIVATION_FUNCTION) &&
03172            verifier.EndTable();
03173   }
03174   Pool2DOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
03175   void UnPackTo(Pool2DOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
03176   static flatbuffers::Offset<Pool2DOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const Pool2DOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
03177 };
03178 
03179 struct Pool2DOptionsBuilder {
03180   flatbuffers::FlatBufferBuilder &fbb_;
03181   flatbuffers::uoffset_t start_;
03182   void add_padding(Padding padding) {
03183     fbb_.AddElement<int8_t>(Pool2DOptions::VT_PADDING, static_cast<int8_t>(padding), 0);
03184   }
03185   void add_stride_w(int32_t stride_w) {
03186     fbb_.AddElement<int32_t>(Pool2DOptions::VT_STRIDE_W, stride_w, 0);
03187   }
03188   void add_stride_h(int32_t stride_h) {
03189     fbb_.AddElement<int32_t>(Pool2DOptions::VT_STRIDE_H, stride_h, 0);
03190   }
03191   void add_filter_width(int32_t filter_width) {
03192     fbb_.AddElement<int32_t>(Pool2DOptions::VT_FILTER_WIDTH, filter_width, 0);
03193   }
03194   void add_filter_height(int32_t filter_height) {
03195     fbb_.AddElement<int32_t>(Pool2DOptions::VT_FILTER_HEIGHT, filter_height, 0);
03196   }
03197   void add_fused_activation_function(ActivationFunctionType fused_activation_function) {
03198     fbb_.AddElement<int8_t>(Pool2DOptions::VT_FUSED_ACTIVATION_FUNCTION, static_cast<int8_t>(fused_activation_function), 0);
03199   }
03200   explicit Pool2DOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
03201         : fbb_(_fbb) {
03202     start_ = fbb_.StartTable();
03203   }
03204   Pool2DOptionsBuilder &operator=(const Pool2DOptionsBuilder &);
03205   flatbuffers::Offset<Pool2DOptions> Finish() {
03206     const auto end = fbb_.EndTable(start_);
03207     auto o = flatbuffers::Offset<Pool2DOptions>(end);
03208     return o;
03209   }
03210 };
03211 
03212 inline flatbuffers::Offset<Pool2DOptions> CreatePool2DOptions(
03213     flatbuffers::FlatBufferBuilder &_fbb,
03214     Padding padding = Padding_SAME,
03215     int32_t stride_w = 0,
03216     int32_t stride_h = 0,
03217     int32_t filter_width = 0,
03218     int32_t filter_height = 0,
03219     ActivationFunctionType fused_activation_function = ActivationFunctionType_NONE) {
03220   Pool2DOptionsBuilder builder_(_fbb);
03221   builder_.add_filter_height(filter_height);
03222   builder_.add_filter_width(filter_width);
03223   builder_.add_stride_h(stride_h);
03224   builder_.add_stride_w(stride_w);
03225   builder_.add_fused_activation_function(fused_activation_function);
03226   builder_.add_padding(padding);
03227   return builder_.Finish();
03228 }
03229 
03230 flatbuffers::Offset<Pool2DOptions> CreatePool2DOptions(flatbuffers::FlatBufferBuilder &_fbb, const Pool2DOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
03231 
03232 struct DepthwiseConv2DOptionsT : public flatbuffers::NativeTable {
03233   typedef DepthwiseConv2DOptions TableType;
03234   Padding padding;
03235   int32_t stride_w;
03236   int32_t stride_h;
03237   int32_t depth_multiplier;
03238   ActivationFunctionType fused_activation_function;
03239   int32_t dilation_w_factor;
03240   int32_t dilation_h_factor;
03241   DepthwiseConv2DOptionsT()
03242       : padding(Padding_SAME),
03243         stride_w(0),
03244         stride_h(0),
03245         depth_multiplier(0),
03246         fused_activation_function(ActivationFunctionType_NONE),
03247         dilation_w_factor(1),
03248         dilation_h_factor(1) {
03249   }
03250 };
03251 
03252 struct DepthwiseConv2DOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
03253   typedef DepthwiseConv2DOptionsT NativeTableType;
03254   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
03255     VT_PADDING = 4,
03256     VT_STRIDE_W = 6,
03257     VT_STRIDE_H = 8,
03258     VT_DEPTH_MULTIPLIER = 10,
03259     VT_FUSED_ACTIVATION_FUNCTION = 12,
03260     VT_DILATION_W_FACTOR = 14,
03261     VT_DILATION_H_FACTOR = 16
03262   };
03263   Padding padding() const {
03264     return static_cast<Padding>(GetField<int8_t>(VT_PADDING, 0));
03265   }
03266   int32_t stride_w() const {
03267     return GetField<int32_t>(VT_STRIDE_W, 0);
03268   }
03269   int32_t stride_h() const {
03270     return GetField<int32_t>(VT_STRIDE_H, 0);
03271   }
03272   int32_t depth_multiplier() const {
03273     return GetField<int32_t>(VT_DEPTH_MULTIPLIER, 0);
03274   }
03275   ActivationFunctionType fused_activation_function() const {
03276     return static_cast<ActivationFunctionType>(GetField<int8_t>(VT_FUSED_ACTIVATION_FUNCTION, 0));
03277   }
03278   int32_t dilation_w_factor() const {
03279     return GetField<int32_t>(VT_DILATION_W_FACTOR, 1);
03280   }
03281   int32_t dilation_h_factor() const {
03282     return GetField<int32_t>(VT_DILATION_H_FACTOR, 1);
03283   }
03284   bool Verify(flatbuffers::Verifier &verifier) const {
03285     return VerifyTableStart(verifier) &&
03286            VerifyField<int8_t>(verifier, VT_PADDING) &&
03287            VerifyField<int32_t>(verifier, VT_STRIDE_W) &&
03288            VerifyField<int32_t>(verifier, VT_STRIDE_H) &&
03289            VerifyField<int32_t>(verifier, VT_DEPTH_MULTIPLIER) &&
03290            VerifyField<int8_t>(verifier, VT_FUSED_ACTIVATION_FUNCTION) &&
03291            VerifyField<int32_t>(verifier, VT_DILATION_W_FACTOR) &&
03292            VerifyField<int32_t>(verifier, VT_DILATION_H_FACTOR) &&
03293            verifier.EndTable();
03294   }
03295   DepthwiseConv2DOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
03296   void UnPackTo(DepthwiseConv2DOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
03297   static flatbuffers::Offset<DepthwiseConv2DOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const DepthwiseConv2DOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
03298 };
03299 
03300 struct DepthwiseConv2DOptionsBuilder {
03301   flatbuffers::FlatBufferBuilder &fbb_;
03302   flatbuffers::uoffset_t start_;
03303   void add_padding(Padding padding) {
03304     fbb_.AddElement<int8_t>(DepthwiseConv2DOptions::VT_PADDING, static_cast<int8_t>(padding), 0);
03305   }
03306   void add_stride_w(int32_t stride_w) {
03307     fbb_.AddElement<int32_t>(DepthwiseConv2DOptions::VT_STRIDE_W, stride_w, 0);
03308   }
03309   void add_stride_h(int32_t stride_h) {
03310     fbb_.AddElement<int32_t>(DepthwiseConv2DOptions::VT_STRIDE_H, stride_h, 0);
03311   }
03312   void add_depth_multiplier(int32_t depth_multiplier) {
03313     fbb_.AddElement<int32_t>(DepthwiseConv2DOptions::VT_DEPTH_MULTIPLIER, depth_multiplier, 0);
03314   }
03315   void add_fused_activation_function(ActivationFunctionType fused_activation_function) {
03316     fbb_.AddElement<int8_t>(DepthwiseConv2DOptions::VT_FUSED_ACTIVATION_FUNCTION, static_cast<int8_t>(fused_activation_function), 0);
03317   }
03318   void add_dilation_w_factor(int32_t dilation_w_factor) {
03319     fbb_.AddElement<int32_t>(DepthwiseConv2DOptions::VT_DILATION_W_FACTOR, dilation_w_factor, 1);
03320   }
03321   void add_dilation_h_factor(int32_t dilation_h_factor) {
03322     fbb_.AddElement<int32_t>(DepthwiseConv2DOptions::VT_DILATION_H_FACTOR, dilation_h_factor, 1);
03323   }
03324   explicit DepthwiseConv2DOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
03325         : fbb_(_fbb) {
03326     start_ = fbb_.StartTable();
03327   }
03328   DepthwiseConv2DOptionsBuilder &operator=(const DepthwiseConv2DOptionsBuilder &);
03329   flatbuffers::Offset<DepthwiseConv2DOptions> Finish() {
03330     const auto end = fbb_.EndTable(start_);
03331     auto o = flatbuffers::Offset<DepthwiseConv2DOptions>(end);
03332     return o;
03333   }
03334 };
03335 
03336 inline flatbuffers::Offset<DepthwiseConv2DOptions> CreateDepthwiseConv2DOptions(
03337     flatbuffers::FlatBufferBuilder &_fbb,
03338     Padding padding = Padding_SAME,
03339     int32_t stride_w = 0,
03340     int32_t stride_h = 0,
03341     int32_t depth_multiplier = 0,
03342     ActivationFunctionType fused_activation_function = ActivationFunctionType_NONE,
03343     int32_t dilation_w_factor = 1,
03344     int32_t dilation_h_factor = 1) {
03345   DepthwiseConv2DOptionsBuilder builder_(_fbb);
03346   builder_.add_dilation_h_factor(dilation_h_factor);
03347   builder_.add_dilation_w_factor(dilation_w_factor);
03348   builder_.add_depth_multiplier(depth_multiplier);
03349   builder_.add_stride_h(stride_h);
03350   builder_.add_stride_w(stride_w);
03351   builder_.add_fused_activation_function(fused_activation_function);
03352   builder_.add_padding(padding);
03353   return builder_.Finish();
03354 }
03355 
03356 flatbuffers::Offset<DepthwiseConv2DOptions> CreateDepthwiseConv2DOptions(flatbuffers::FlatBufferBuilder &_fbb, const DepthwiseConv2DOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
03357 
03358 struct ConcatEmbeddingsOptionsT : public flatbuffers::NativeTable {
03359   typedef ConcatEmbeddingsOptions TableType;
03360   int32_t num_channels;
03361   std::vector<int32_t> num_columns_per_channel;
03362   std::vector<int32_t> embedding_dim_per_channel;
03363   ConcatEmbeddingsOptionsT()
03364       : num_channels(0) {
03365   }
03366 };
03367 
03368 struct ConcatEmbeddingsOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
03369   typedef ConcatEmbeddingsOptionsT NativeTableType;
03370   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
03371     VT_NUM_CHANNELS = 4,
03372     VT_NUM_COLUMNS_PER_CHANNEL = 6,
03373     VT_EMBEDDING_DIM_PER_CHANNEL = 8
03374   };
03375   int32_t num_channels() const {
03376     return GetField<int32_t>(VT_NUM_CHANNELS, 0);
03377   }
03378   const flatbuffers::Vector<int32_t> *num_columns_per_channel() const {
03379     return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_NUM_COLUMNS_PER_CHANNEL);
03380   }
03381   const flatbuffers::Vector<int32_t> *embedding_dim_per_channel() const {
03382     return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_EMBEDDING_DIM_PER_CHANNEL);
03383   }
03384   bool Verify(flatbuffers::Verifier &verifier) const {
03385     return VerifyTableStart(verifier) &&
03386            VerifyField<int32_t>(verifier, VT_NUM_CHANNELS) &&
03387            VerifyOffset(verifier, VT_NUM_COLUMNS_PER_CHANNEL) &&
03388            verifier.VerifyVector(num_columns_per_channel()) &&
03389            VerifyOffset(verifier, VT_EMBEDDING_DIM_PER_CHANNEL) &&
03390            verifier.VerifyVector(embedding_dim_per_channel()) &&
03391            verifier.EndTable();
03392   }
03393   ConcatEmbeddingsOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
03394   void UnPackTo(ConcatEmbeddingsOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
03395   static flatbuffers::Offset<ConcatEmbeddingsOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const ConcatEmbeddingsOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
03396 };
03397 
03398 struct ConcatEmbeddingsOptionsBuilder {
03399   flatbuffers::FlatBufferBuilder &fbb_;
03400   flatbuffers::uoffset_t start_;
03401   void add_num_channels(int32_t num_channels) {
03402     fbb_.AddElement<int32_t>(ConcatEmbeddingsOptions::VT_NUM_CHANNELS, num_channels, 0);
03403   }
03404   void add_num_columns_per_channel(flatbuffers::Offset<flatbuffers::Vector<int32_t>> num_columns_per_channel) {
03405     fbb_.AddOffset(ConcatEmbeddingsOptions::VT_NUM_COLUMNS_PER_CHANNEL, num_columns_per_channel);
03406   }
03407   void add_embedding_dim_per_channel(flatbuffers::Offset<flatbuffers::Vector<int32_t>> embedding_dim_per_channel) {
03408     fbb_.AddOffset(ConcatEmbeddingsOptions::VT_EMBEDDING_DIM_PER_CHANNEL, embedding_dim_per_channel);
03409   }
03410   explicit ConcatEmbeddingsOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
03411         : fbb_(_fbb) {
03412     start_ = fbb_.StartTable();
03413   }
03414   ConcatEmbeddingsOptionsBuilder &operator=(const ConcatEmbeddingsOptionsBuilder &);
03415   flatbuffers::Offset<ConcatEmbeddingsOptions> Finish() {
03416     const auto end = fbb_.EndTable(start_);
03417     auto o = flatbuffers::Offset<ConcatEmbeddingsOptions>(end);
03418     return o;
03419   }
03420 };
03421 
03422 inline flatbuffers::Offset<ConcatEmbeddingsOptions> CreateConcatEmbeddingsOptions(
03423     flatbuffers::FlatBufferBuilder &_fbb,
03424     int32_t num_channels = 0,
03425     flatbuffers::Offset<flatbuffers::Vector<int32_t>> num_columns_per_channel = 0,
03426     flatbuffers::Offset<flatbuffers::Vector<int32_t>> embedding_dim_per_channel = 0) {
03427   ConcatEmbeddingsOptionsBuilder builder_(_fbb);
03428   builder_.add_embedding_dim_per_channel(embedding_dim_per_channel);
03429   builder_.add_num_columns_per_channel(num_columns_per_channel);
03430   builder_.add_num_channels(num_channels);
03431   return builder_.Finish();
03432 }
03433 
03434 inline flatbuffers::Offset<ConcatEmbeddingsOptions> CreateConcatEmbeddingsOptionsDirect(
03435     flatbuffers::FlatBufferBuilder &_fbb,
03436     int32_t num_channels = 0,
03437     const std::vector<int32_t> *num_columns_per_channel = nullptr,
03438     const std::vector<int32_t> *embedding_dim_per_channel = nullptr) {
03439   auto num_columns_per_channel__ = num_columns_per_channel ? _fbb.CreateVector<int32_t>(*num_columns_per_channel) : 0;
03440   auto embedding_dim_per_channel__ = embedding_dim_per_channel ? _fbb.CreateVector<int32_t>(*embedding_dim_per_channel) : 0;
03441   return tflite::CreateConcatEmbeddingsOptions(
03442       _fbb,
03443       num_channels,
03444       num_columns_per_channel__,
03445       embedding_dim_per_channel__);
03446 }
03447 
03448 flatbuffers::Offset<ConcatEmbeddingsOptions> CreateConcatEmbeddingsOptions(flatbuffers::FlatBufferBuilder &_fbb, const ConcatEmbeddingsOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
03449 
03450 struct LSHProjectionOptionsT : public flatbuffers::NativeTable {
03451   typedef LSHProjectionOptions TableType;
03452   LSHProjectionType type;
03453   LSHProjectionOptionsT()
03454       : type(LSHProjectionType_UNKNOWN) {
03455   }
03456 };
03457 
03458 struct LSHProjectionOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
03459   typedef LSHProjectionOptionsT NativeTableType;
03460   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
03461     VT_TYPE = 4
03462   };
03463   LSHProjectionType type() const {
03464     return static_cast<LSHProjectionType>(GetField<int8_t>(VT_TYPE, 0));
03465   }
03466   bool Verify(flatbuffers::Verifier &verifier) const {
03467     return VerifyTableStart(verifier) &&
03468            VerifyField<int8_t>(verifier, VT_TYPE) &&
03469            verifier.EndTable();
03470   }
03471   LSHProjectionOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
03472   void UnPackTo(LSHProjectionOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
03473   static flatbuffers::Offset<LSHProjectionOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const LSHProjectionOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
03474 };
03475 
03476 struct LSHProjectionOptionsBuilder {
03477   flatbuffers::FlatBufferBuilder &fbb_;
03478   flatbuffers::uoffset_t start_;
03479   void add_type(LSHProjectionType type) {
03480     fbb_.AddElement<int8_t>(LSHProjectionOptions::VT_TYPE, static_cast<int8_t>(type), 0);
03481   }
03482   explicit LSHProjectionOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
03483         : fbb_(_fbb) {
03484     start_ = fbb_.StartTable();
03485   }
03486   LSHProjectionOptionsBuilder &operator=(const LSHProjectionOptionsBuilder &);
03487   flatbuffers::Offset<LSHProjectionOptions> Finish() {
03488     const auto end = fbb_.EndTable(start_);
03489     auto o = flatbuffers::Offset<LSHProjectionOptions>(end);
03490     return o;
03491   }
03492 };
03493 
03494 inline flatbuffers::Offset<LSHProjectionOptions> CreateLSHProjectionOptions(
03495     flatbuffers::FlatBufferBuilder &_fbb,
03496     LSHProjectionType type = LSHProjectionType_UNKNOWN) {
03497   LSHProjectionOptionsBuilder builder_(_fbb);
03498   builder_.add_type(type);
03499   return builder_.Finish();
03500 }
03501 
03502 flatbuffers::Offset<LSHProjectionOptions> CreateLSHProjectionOptions(flatbuffers::FlatBufferBuilder &_fbb, const LSHProjectionOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
03503 
03504 struct SVDFOptionsT : public flatbuffers::NativeTable {
03505   typedef SVDFOptions TableType;
03506   int32_t rank;
03507   ActivationFunctionType fused_activation_function;
03508   SVDFOptionsT()
03509       : rank(0),
03510         fused_activation_function(ActivationFunctionType_NONE) {
03511   }
03512 };
03513 
03514 struct SVDFOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
03515   typedef SVDFOptionsT NativeTableType;
03516   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
03517     VT_RANK = 4,
03518     VT_FUSED_ACTIVATION_FUNCTION = 6
03519   };
03520   int32_t rank() const {
03521     return GetField<int32_t>(VT_RANK, 0);
03522   }
03523   ActivationFunctionType fused_activation_function() const {
03524     return static_cast<ActivationFunctionType>(GetField<int8_t>(VT_FUSED_ACTIVATION_FUNCTION, 0));
03525   }
03526   bool Verify(flatbuffers::Verifier &verifier) const {
03527     return VerifyTableStart(verifier) &&
03528            VerifyField<int32_t>(verifier, VT_RANK) &&
03529            VerifyField<int8_t>(verifier, VT_FUSED_ACTIVATION_FUNCTION) &&
03530            verifier.EndTable();
03531   }
03532   SVDFOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
03533   void UnPackTo(SVDFOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
03534   static flatbuffers::Offset<SVDFOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const SVDFOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
03535 };
03536 
03537 struct SVDFOptionsBuilder {
03538   flatbuffers::FlatBufferBuilder &fbb_;
03539   flatbuffers::uoffset_t start_;
03540   void add_rank(int32_t rank) {
03541     fbb_.AddElement<int32_t>(SVDFOptions::VT_RANK, rank, 0);
03542   }
03543   void add_fused_activation_function(ActivationFunctionType fused_activation_function) {
03544     fbb_.AddElement<int8_t>(SVDFOptions::VT_FUSED_ACTIVATION_FUNCTION, static_cast<int8_t>(fused_activation_function), 0);
03545   }
03546   explicit SVDFOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
03547         : fbb_(_fbb) {
03548     start_ = fbb_.StartTable();
03549   }
03550   SVDFOptionsBuilder &operator=(const SVDFOptionsBuilder &);
03551   flatbuffers::Offset<SVDFOptions> Finish() {
03552     const auto end = fbb_.EndTable(start_);
03553     auto o = flatbuffers::Offset<SVDFOptions>(end);
03554     return o;
03555   }
03556 };
03557 
03558 inline flatbuffers::Offset<SVDFOptions> CreateSVDFOptions(
03559     flatbuffers::FlatBufferBuilder &_fbb,
03560     int32_t rank = 0,
03561     ActivationFunctionType fused_activation_function = ActivationFunctionType_NONE) {
03562   SVDFOptionsBuilder builder_(_fbb);
03563   builder_.add_rank(rank);
03564   builder_.add_fused_activation_function(fused_activation_function);
03565   return builder_.Finish();
03566 }
03567 
03568 flatbuffers::Offset<SVDFOptions> CreateSVDFOptions(flatbuffers::FlatBufferBuilder &_fbb, const SVDFOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
03569 
03570 struct RNNOptionsT : public flatbuffers::NativeTable {
03571   typedef RNNOptions TableType;
03572   ActivationFunctionType fused_activation_function;
03573   RNNOptionsT()
03574       : fused_activation_function(ActivationFunctionType_NONE) {
03575   }
03576 };
03577 
03578 struct RNNOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
03579   typedef RNNOptionsT NativeTableType;
03580   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
03581     VT_FUSED_ACTIVATION_FUNCTION = 4
03582   };
03583   ActivationFunctionType fused_activation_function() const {
03584     return static_cast<ActivationFunctionType>(GetField<int8_t>(VT_FUSED_ACTIVATION_FUNCTION, 0));
03585   }
03586   bool Verify(flatbuffers::Verifier &verifier) const {
03587     return VerifyTableStart(verifier) &&
03588            VerifyField<int8_t>(verifier, VT_FUSED_ACTIVATION_FUNCTION) &&
03589            verifier.EndTable();
03590   }
03591   RNNOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
03592   void UnPackTo(RNNOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
03593   static flatbuffers::Offset<RNNOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const RNNOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
03594 };
03595 
03596 struct RNNOptionsBuilder {
03597   flatbuffers::FlatBufferBuilder &fbb_;
03598   flatbuffers::uoffset_t start_;
03599   void add_fused_activation_function(ActivationFunctionType fused_activation_function) {
03600     fbb_.AddElement<int8_t>(RNNOptions::VT_FUSED_ACTIVATION_FUNCTION, static_cast<int8_t>(fused_activation_function), 0);
03601   }
03602   explicit RNNOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
03603         : fbb_(_fbb) {
03604     start_ = fbb_.StartTable();
03605   }
03606   RNNOptionsBuilder &operator=(const RNNOptionsBuilder &);
03607   flatbuffers::Offset<RNNOptions> Finish() {
03608     const auto end = fbb_.EndTable(start_);
03609     auto o = flatbuffers::Offset<RNNOptions>(end);
03610     return o;
03611   }
03612 };
03613 
03614 inline flatbuffers::Offset<RNNOptions> CreateRNNOptions(
03615     flatbuffers::FlatBufferBuilder &_fbb,
03616     ActivationFunctionType fused_activation_function = ActivationFunctionType_NONE) {
03617   RNNOptionsBuilder builder_(_fbb);
03618   builder_.add_fused_activation_function(fused_activation_function);
03619   return builder_.Finish();
03620 }
03621 
03622 flatbuffers::Offset<RNNOptions> CreateRNNOptions(flatbuffers::FlatBufferBuilder &_fbb, const RNNOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
03623 
03624 struct SequenceRNNOptionsT : public flatbuffers::NativeTable {
03625   typedef SequenceRNNOptions TableType;
03626   bool time_major;
03627   ActivationFunctionType fused_activation_function;
03628   SequenceRNNOptionsT()
03629       : time_major(false),
03630         fused_activation_function(ActivationFunctionType_NONE) {
03631   }
03632 };
03633 
03634 struct SequenceRNNOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
03635   typedef SequenceRNNOptionsT NativeTableType;
03636   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
03637     VT_TIME_MAJOR = 4,
03638     VT_FUSED_ACTIVATION_FUNCTION = 6
03639   };
03640   bool time_major() const {
03641     return GetField<uint8_t>(VT_TIME_MAJOR, 0) != 0;
03642   }
03643   ActivationFunctionType fused_activation_function() const {
03644     return static_cast<ActivationFunctionType>(GetField<int8_t>(VT_FUSED_ACTIVATION_FUNCTION, 0));
03645   }
03646   bool Verify(flatbuffers::Verifier &verifier) const {
03647     return VerifyTableStart(verifier) &&
03648            VerifyField<uint8_t>(verifier, VT_TIME_MAJOR) &&
03649            VerifyField<int8_t>(verifier, VT_FUSED_ACTIVATION_FUNCTION) &&
03650            verifier.EndTable();
03651   }
03652   SequenceRNNOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
03653   void UnPackTo(SequenceRNNOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
03654   static flatbuffers::Offset<SequenceRNNOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const SequenceRNNOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
03655 };
03656 
03657 struct SequenceRNNOptionsBuilder {
03658   flatbuffers::FlatBufferBuilder &fbb_;
03659   flatbuffers::uoffset_t start_;
03660   void add_time_major(bool time_major) {
03661     fbb_.AddElement<uint8_t>(SequenceRNNOptions::VT_TIME_MAJOR, static_cast<uint8_t>(time_major), 0);
03662   }
03663   void add_fused_activation_function(ActivationFunctionType fused_activation_function) {
03664     fbb_.AddElement<int8_t>(SequenceRNNOptions::VT_FUSED_ACTIVATION_FUNCTION, static_cast<int8_t>(fused_activation_function), 0);
03665   }
03666   explicit SequenceRNNOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
03667         : fbb_(_fbb) {
03668     start_ = fbb_.StartTable();
03669   }
03670   SequenceRNNOptionsBuilder &operator=(const SequenceRNNOptionsBuilder &);
03671   flatbuffers::Offset<SequenceRNNOptions> Finish() {
03672     const auto end = fbb_.EndTable(start_);
03673     auto o = flatbuffers::Offset<SequenceRNNOptions>(end);
03674     return o;
03675   }
03676 };
03677 
03678 inline flatbuffers::Offset<SequenceRNNOptions> CreateSequenceRNNOptions(
03679     flatbuffers::FlatBufferBuilder &_fbb,
03680     bool time_major = false,
03681     ActivationFunctionType fused_activation_function = ActivationFunctionType_NONE) {
03682   SequenceRNNOptionsBuilder builder_(_fbb);
03683   builder_.add_fused_activation_function(fused_activation_function);
03684   builder_.add_time_major(time_major);
03685   return builder_.Finish();
03686 }
03687 
03688 flatbuffers::Offset<SequenceRNNOptions> CreateSequenceRNNOptions(flatbuffers::FlatBufferBuilder &_fbb, const SequenceRNNOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
03689 
03690 struct BidirectionalSequenceRNNOptionsT : public flatbuffers::NativeTable {
03691   typedef BidirectionalSequenceRNNOptions TableType;
03692   bool time_major;
03693   ActivationFunctionType fused_activation_function;
03694   bool merge_outputs;
03695   BidirectionalSequenceRNNOptionsT()
03696       : time_major(false),
03697         fused_activation_function(ActivationFunctionType_NONE),
03698         merge_outputs(false) {
03699   }
03700 };
03701 
03702 struct BidirectionalSequenceRNNOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
03703   typedef BidirectionalSequenceRNNOptionsT NativeTableType;
03704   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
03705     VT_TIME_MAJOR = 4,
03706     VT_FUSED_ACTIVATION_FUNCTION = 6,
03707     VT_MERGE_OUTPUTS = 8
03708   };
03709   bool time_major() const {
03710     return GetField<uint8_t>(VT_TIME_MAJOR, 0) != 0;
03711   }
03712   ActivationFunctionType fused_activation_function() const {
03713     return static_cast<ActivationFunctionType>(GetField<int8_t>(VT_FUSED_ACTIVATION_FUNCTION, 0));
03714   }
03715   bool merge_outputs() const {
03716     return GetField<uint8_t>(VT_MERGE_OUTPUTS, 0) != 0;
03717   }
03718   bool Verify(flatbuffers::Verifier &verifier) const {
03719     return VerifyTableStart(verifier) &&
03720            VerifyField<uint8_t>(verifier, VT_TIME_MAJOR) &&
03721            VerifyField<int8_t>(verifier, VT_FUSED_ACTIVATION_FUNCTION) &&
03722            VerifyField<uint8_t>(verifier, VT_MERGE_OUTPUTS) &&
03723            verifier.EndTable();
03724   }
03725   BidirectionalSequenceRNNOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
03726   void UnPackTo(BidirectionalSequenceRNNOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
03727   static flatbuffers::Offset<BidirectionalSequenceRNNOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const BidirectionalSequenceRNNOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
03728 };
03729 
03730 struct BidirectionalSequenceRNNOptionsBuilder {
03731   flatbuffers::FlatBufferBuilder &fbb_;
03732   flatbuffers::uoffset_t start_;
03733   void add_time_major(bool time_major) {
03734     fbb_.AddElement<uint8_t>(BidirectionalSequenceRNNOptions::VT_TIME_MAJOR, static_cast<uint8_t>(time_major), 0);
03735   }
03736   void add_fused_activation_function(ActivationFunctionType fused_activation_function) {
03737     fbb_.AddElement<int8_t>(BidirectionalSequenceRNNOptions::VT_FUSED_ACTIVATION_FUNCTION, static_cast<int8_t>(fused_activation_function), 0);
03738   }
03739   void add_merge_outputs(bool merge_outputs) {
03740     fbb_.AddElement<uint8_t>(BidirectionalSequenceRNNOptions::VT_MERGE_OUTPUTS, static_cast<uint8_t>(merge_outputs), 0);
03741   }
03742   explicit BidirectionalSequenceRNNOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
03743         : fbb_(_fbb) {
03744     start_ = fbb_.StartTable();
03745   }
03746   BidirectionalSequenceRNNOptionsBuilder &operator=(const BidirectionalSequenceRNNOptionsBuilder &);
03747   flatbuffers::Offset<BidirectionalSequenceRNNOptions> Finish() {
03748     const auto end = fbb_.EndTable(start_);
03749     auto o = flatbuffers::Offset<BidirectionalSequenceRNNOptions>(end);
03750     return o;
03751   }
03752 };
03753 
03754 inline flatbuffers::Offset<BidirectionalSequenceRNNOptions> CreateBidirectionalSequenceRNNOptions(
03755     flatbuffers::FlatBufferBuilder &_fbb,
03756     bool time_major = false,
03757     ActivationFunctionType fused_activation_function = ActivationFunctionType_NONE,
03758     bool merge_outputs = false) {
03759   BidirectionalSequenceRNNOptionsBuilder builder_(_fbb);
03760   builder_.add_merge_outputs(merge_outputs);
03761   builder_.add_fused_activation_function(fused_activation_function);
03762   builder_.add_time_major(time_major);
03763   return builder_.Finish();
03764 }
03765 
03766 flatbuffers::Offset<BidirectionalSequenceRNNOptions> CreateBidirectionalSequenceRNNOptions(flatbuffers::FlatBufferBuilder &_fbb, const BidirectionalSequenceRNNOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
03767 
03768 struct FullyConnectedOptionsT : public flatbuffers::NativeTable {
03769   typedef FullyConnectedOptions TableType;
03770   ActivationFunctionType fused_activation_function;
03771   FullyConnectedOptionsWeightsFormat weights_format;
03772   bool keep_num_dims;
03773   FullyConnectedOptionsT()
03774       : fused_activation_function(ActivationFunctionType_NONE),
03775         weights_format(FullyConnectedOptionsWeightsFormat_DEFAULT),
03776         keep_num_dims(false) {
03777   }
03778 };
03779 
03780 struct FullyConnectedOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
03781   typedef FullyConnectedOptionsT NativeTableType;
03782   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
03783     VT_FUSED_ACTIVATION_FUNCTION = 4,
03784     VT_WEIGHTS_FORMAT = 6,
03785     VT_KEEP_NUM_DIMS = 8
03786   };
03787   ActivationFunctionType fused_activation_function() const {
03788     return static_cast<ActivationFunctionType>(GetField<int8_t>(VT_FUSED_ACTIVATION_FUNCTION, 0));
03789   }
03790   FullyConnectedOptionsWeightsFormat weights_format() const {
03791     return static_cast<FullyConnectedOptionsWeightsFormat>(GetField<int8_t>(VT_WEIGHTS_FORMAT, 0));
03792   }
03793   bool keep_num_dims() const {
03794     return GetField<uint8_t>(VT_KEEP_NUM_DIMS, 0) != 0;
03795   }
03796   bool Verify(flatbuffers::Verifier &verifier) const {
03797     return VerifyTableStart(verifier) &&
03798            VerifyField<int8_t>(verifier, VT_FUSED_ACTIVATION_FUNCTION) &&
03799            VerifyField<int8_t>(verifier, VT_WEIGHTS_FORMAT) &&
03800            VerifyField<uint8_t>(verifier, VT_KEEP_NUM_DIMS) &&
03801            verifier.EndTable();
03802   }
03803   FullyConnectedOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
03804   void UnPackTo(FullyConnectedOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
03805   static flatbuffers::Offset<FullyConnectedOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const FullyConnectedOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
03806 };
03807 
03808 struct FullyConnectedOptionsBuilder {
03809   flatbuffers::FlatBufferBuilder &fbb_;
03810   flatbuffers::uoffset_t start_;
03811   void add_fused_activation_function(ActivationFunctionType fused_activation_function) {
03812     fbb_.AddElement<int8_t>(FullyConnectedOptions::VT_FUSED_ACTIVATION_FUNCTION, static_cast<int8_t>(fused_activation_function), 0);
03813   }
03814   void add_weights_format(FullyConnectedOptionsWeightsFormat weights_format) {
03815     fbb_.AddElement<int8_t>(FullyConnectedOptions::VT_WEIGHTS_FORMAT, static_cast<int8_t>(weights_format), 0);
03816   }
03817   void add_keep_num_dims(bool keep_num_dims) {
03818     fbb_.AddElement<uint8_t>(FullyConnectedOptions::VT_KEEP_NUM_DIMS, static_cast<uint8_t>(keep_num_dims), 0);
03819   }
03820   explicit FullyConnectedOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
03821         : fbb_(_fbb) {
03822     start_ = fbb_.StartTable();
03823   }
03824   FullyConnectedOptionsBuilder &operator=(const FullyConnectedOptionsBuilder &);
03825   flatbuffers::Offset<FullyConnectedOptions> Finish() {
03826     const auto end = fbb_.EndTable(start_);
03827     auto o = flatbuffers::Offset<FullyConnectedOptions>(end);
03828     return o;
03829   }
03830 };
03831 
03832 inline flatbuffers::Offset<FullyConnectedOptions> CreateFullyConnectedOptions(
03833     flatbuffers::FlatBufferBuilder &_fbb,
03834     ActivationFunctionType fused_activation_function = ActivationFunctionType_NONE,
03835     FullyConnectedOptionsWeightsFormat weights_format = FullyConnectedOptionsWeightsFormat_DEFAULT,
03836     bool keep_num_dims = false) {
03837   FullyConnectedOptionsBuilder builder_(_fbb);
03838   builder_.add_keep_num_dims(keep_num_dims);
03839   builder_.add_weights_format(weights_format);
03840   builder_.add_fused_activation_function(fused_activation_function);
03841   return builder_.Finish();
03842 }
03843 
03844 flatbuffers::Offset<FullyConnectedOptions> CreateFullyConnectedOptions(flatbuffers::FlatBufferBuilder &_fbb, const FullyConnectedOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
03845 
03846 struct SoftmaxOptionsT : public flatbuffers::NativeTable {
03847   typedef SoftmaxOptions TableType;
03848   float beta;
03849   SoftmaxOptionsT()
03850       : beta(0.0f) {
03851   }
03852 };
03853 
03854 struct SoftmaxOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
03855   typedef SoftmaxOptionsT NativeTableType;
03856   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
03857     VT_BETA = 4
03858   };
03859   float beta() const {
03860     return GetField<float>(VT_BETA, 0.0f);
03861   }
03862   bool Verify(flatbuffers::Verifier &verifier) const {
03863     return VerifyTableStart(verifier) &&
03864            VerifyField<float>(verifier, VT_BETA) &&
03865            verifier.EndTable();
03866   }
03867   SoftmaxOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
03868   void UnPackTo(SoftmaxOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
03869   static flatbuffers::Offset<SoftmaxOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const SoftmaxOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
03870 };
03871 
03872 struct SoftmaxOptionsBuilder {
03873   flatbuffers::FlatBufferBuilder &fbb_;
03874   flatbuffers::uoffset_t start_;
03875   void add_beta(float beta) {
03876     fbb_.AddElement<float>(SoftmaxOptions::VT_BETA, beta, 0.0f);
03877   }
03878   explicit SoftmaxOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
03879         : fbb_(_fbb) {
03880     start_ = fbb_.StartTable();
03881   }
03882   SoftmaxOptionsBuilder &operator=(const SoftmaxOptionsBuilder &);
03883   flatbuffers::Offset<SoftmaxOptions> Finish() {
03884     const auto end = fbb_.EndTable(start_);
03885     auto o = flatbuffers::Offset<SoftmaxOptions>(end);
03886     return o;
03887   }
03888 };
03889 
03890 inline flatbuffers::Offset<SoftmaxOptions> CreateSoftmaxOptions(
03891     flatbuffers::FlatBufferBuilder &_fbb,
03892     float beta = 0.0f) {
03893   SoftmaxOptionsBuilder builder_(_fbb);
03894   builder_.add_beta(beta);
03895   return builder_.Finish();
03896 }
03897 
03898 flatbuffers::Offset<SoftmaxOptions> CreateSoftmaxOptions(flatbuffers::FlatBufferBuilder &_fbb, const SoftmaxOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
03899 
03900 struct ConcatenationOptionsT : public flatbuffers::NativeTable {
03901   typedef ConcatenationOptions TableType;
03902   int32_t axis;
03903   ActivationFunctionType fused_activation_function;
03904   ConcatenationOptionsT()
03905       : axis(0),
03906         fused_activation_function(ActivationFunctionType_NONE) {
03907   }
03908 };
03909 
03910 struct ConcatenationOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
03911   typedef ConcatenationOptionsT NativeTableType;
03912   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
03913     VT_AXIS = 4,
03914     VT_FUSED_ACTIVATION_FUNCTION = 6
03915   };
03916   int32_t axis() const {
03917     return GetField<int32_t>(VT_AXIS, 0);
03918   }
03919   ActivationFunctionType fused_activation_function() const {
03920     return static_cast<ActivationFunctionType>(GetField<int8_t>(VT_FUSED_ACTIVATION_FUNCTION, 0));
03921   }
03922   bool Verify(flatbuffers::Verifier &verifier) const {
03923     return VerifyTableStart(verifier) &&
03924            VerifyField<int32_t>(verifier, VT_AXIS) &&
03925            VerifyField<int8_t>(verifier, VT_FUSED_ACTIVATION_FUNCTION) &&
03926            verifier.EndTable();
03927   }
03928   ConcatenationOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
03929   void UnPackTo(ConcatenationOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
03930   static flatbuffers::Offset<ConcatenationOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const ConcatenationOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
03931 };
03932 
03933 struct ConcatenationOptionsBuilder {
03934   flatbuffers::FlatBufferBuilder &fbb_;
03935   flatbuffers::uoffset_t start_;
03936   void add_axis(int32_t axis) {
03937     fbb_.AddElement<int32_t>(ConcatenationOptions::VT_AXIS, axis, 0);
03938   }
03939   void add_fused_activation_function(ActivationFunctionType fused_activation_function) {
03940     fbb_.AddElement<int8_t>(ConcatenationOptions::VT_FUSED_ACTIVATION_FUNCTION, static_cast<int8_t>(fused_activation_function), 0);
03941   }
03942   explicit ConcatenationOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
03943         : fbb_(_fbb) {
03944     start_ = fbb_.StartTable();
03945   }
03946   ConcatenationOptionsBuilder &operator=(const ConcatenationOptionsBuilder &);
03947   flatbuffers::Offset<ConcatenationOptions> Finish() {
03948     const auto end = fbb_.EndTable(start_);
03949     auto o = flatbuffers::Offset<ConcatenationOptions>(end);
03950     return o;
03951   }
03952 };
03953 
03954 inline flatbuffers::Offset<ConcatenationOptions> CreateConcatenationOptions(
03955     flatbuffers::FlatBufferBuilder &_fbb,
03956     int32_t axis = 0,
03957     ActivationFunctionType fused_activation_function = ActivationFunctionType_NONE) {
03958   ConcatenationOptionsBuilder builder_(_fbb);
03959   builder_.add_axis(axis);
03960   builder_.add_fused_activation_function(fused_activation_function);
03961   return builder_.Finish();
03962 }
03963 
03964 flatbuffers::Offset<ConcatenationOptions> CreateConcatenationOptions(flatbuffers::FlatBufferBuilder &_fbb, const ConcatenationOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
03965 
03966 struct AddOptionsT : public flatbuffers::NativeTable {
03967   typedef AddOptions TableType;
03968   ActivationFunctionType fused_activation_function;
03969   AddOptionsT()
03970       : fused_activation_function(ActivationFunctionType_NONE) {
03971   }
03972 };
03973 
03974 struct AddOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
03975   typedef AddOptionsT NativeTableType;
03976   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
03977     VT_FUSED_ACTIVATION_FUNCTION = 4
03978   };
03979   ActivationFunctionType fused_activation_function() const {
03980     return static_cast<ActivationFunctionType>(GetField<int8_t>(VT_FUSED_ACTIVATION_FUNCTION, 0));
03981   }
03982   bool Verify(flatbuffers::Verifier &verifier) const {
03983     return VerifyTableStart(verifier) &&
03984            VerifyField<int8_t>(verifier, VT_FUSED_ACTIVATION_FUNCTION) &&
03985            verifier.EndTable();
03986   }
03987   AddOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
03988   void UnPackTo(AddOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
03989   static flatbuffers::Offset<AddOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const AddOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
03990 };
03991 
03992 struct AddOptionsBuilder {
03993   flatbuffers::FlatBufferBuilder &fbb_;
03994   flatbuffers::uoffset_t start_;
03995   void add_fused_activation_function(ActivationFunctionType fused_activation_function) {
03996     fbb_.AddElement<int8_t>(AddOptions::VT_FUSED_ACTIVATION_FUNCTION, static_cast<int8_t>(fused_activation_function), 0);
03997   }
03998   explicit AddOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
03999         : fbb_(_fbb) {
04000     start_ = fbb_.StartTable();
04001   }
04002   AddOptionsBuilder &operator=(const AddOptionsBuilder &);
04003   flatbuffers::Offset<AddOptions> Finish() {
04004     const auto end = fbb_.EndTable(start_);
04005     auto o = flatbuffers::Offset<AddOptions>(end);
04006     return o;
04007   }
04008 };
04009 
04010 inline flatbuffers::Offset<AddOptions> CreateAddOptions(
04011     flatbuffers::FlatBufferBuilder &_fbb,
04012     ActivationFunctionType fused_activation_function = ActivationFunctionType_NONE) {
04013   AddOptionsBuilder builder_(_fbb);
04014   builder_.add_fused_activation_function(fused_activation_function);
04015   return builder_.Finish();
04016 }
04017 
04018 flatbuffers::Offset<AddOptions> CreateAddOptions(flatbuffers::FlatBufferBuilder &_fbb, const AddOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
04019 
04020 struct MulOptionsT : public flatbuffers::NativeTable {
04021   typedef MulOptions TableType;
04022   ActivationFunctionType fused_activation_function;
04023   MulOptionsT()
04024       : fused_activation_function(ActivationFunctionType_NONE) {
04025   }
04026 };
04027 
04028 struct MulOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
04029   typedef MulOptionsT NativeTableType;
04030   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
04031     VT_FUSED_ACTIVATION_FUNCTION = 4
04032   };
04033   ActivationFunctionType fused_activation_function() const {
04034     return static_cast<ActivationFunctionType>(GetField<int8_t>(VT_FUSED_ACTIVATION_FUNCTION, 0));
04035   }
04036   bool Verify(flatbuffers::Verifier &verifier) const {
04037     return VerifyTableStart(verifier) &&
04038            VerifyField<int8_t>(verifier, VT_FUSED_ACTIVATION_FUNCTION) &&
04039            verifier.EndTable();
04040   }
04041   MulOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
04042   void UnPackTo(MulOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
04043   static flatbuffers::Offset<MulOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const MulOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
04044 };
04045 
04046 struct MulOptionsBuilder {
04047   flatbuffers::FlatBufferBuilder &fbb_;
04048   flatbuffers::uoffset_t start_;
04049   void add_fused_activation_function(ActivationFunctionType fused_activation_function) {
04050     fbb_.AddElement<int8_t>(MulOptions::VT_FUSED_ACTIVATION_FUNCTION, static_cast<int8_t>(fused_activation_function), 0);
04051   }
04052   explicit MulOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
04053         : fbb_(_fbb) {
04054     start_ = fbb_.StartTable();
04055   }
04056   MulOptionsBuilder &operator=(const MulOptionsBuilder &);
04057   flatbuffers::Offset<MulOptions> Finish() {
04058     const auto end = fbb_.EndTable(start_);
04059     auto o = flatbuffers::Offset<MulOptions>(end);
04060     return o;
04061   }
04062 };
04063 
04064 inline flatbuffers::Offset<MulOptions> CreateMulOptions(
04065     flatbuffers::FlatBufferBuilder &_fbb,
04066     ActivationFunctionType fused_activation_function = ActivationFunctionType_NONE) {
04067   MulOptionsBuilder builder_(_fbb);
04068   builder_.add_fused_activation_function(fused_activation_function);
04069   return builder_.Finish();
04070 }
04071 
04072 flatbuffers::Offset<MulOptions> CreateMulOptions(flatbuffers::FlatBufferBuilder &_fbb, const MulOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
04073 
04074 struct L2NormOptionsT : public flatbuffers::NativeTable {
04075   typedef L2NormOptions TableType;
04076   ActivationFunctionType fused_activation_function;
04077   L2NormOptionsT()
04078       : fused_activation_function(ActivationFunctionType_NONE) {
04079   }
04080 };
04081 
04082 struct L2NormOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
04083   typedef L2NormOptionsT NativeTableType;
04084   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
04085     VT_FUSED_ACTIVATION_FUNCTION = 4
04086   };
04087   ActivationFunctionType fused_activation_function() const {
04088     return static_cast<ActivationFunctionType>(GetField<int8_t>(VT_FUSED_ACTIVATION_FUNCTION, 0));
04089   }
04090   bool Verify(flatbuffers::Verifier &verifier) const {
04091     return VerifyTableStart(verifier) &&
04092            VerifyField<int8_t>(verifier, VT_FUSED_ACTIVATION_FUNCTION) &&
04093            verifier.EndTable();
04094   }
04095   L2NormOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
04096   void UnPackTo(L2NormOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
04097   static flatbuffers::Offset<L2NormOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const L2NormOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
04098 };
04099 
04100 struct L2NormOptionsBuilder {
04101   flatbuffers::FlatBufferBuilder &fbb_;
04102   flatbuffers::uoffset_t start_;
04103   void add_fused_activation_function(ActivationFunctionType fused_activation_function) {
04104     fbb_.AddElement<int8_t>(L2NormOptions::VT_FUSED_ACTIVATION_FUNCTION, static_cast<int8_t>(fused_activation_function), 0);
04105   }
04106   explicit L2NormOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
04107         : fbb_(_fbb) {
04108     start_ = fbb_.StartTable();
04109   }
04110   L2NormOptionsBuilder &operator=(const L2NormOptionsBuilder &);
04111   flatbuffers::Offset<L2NormOptions> Finish() {
04112     const auto end = fbb_.EndTable(start_);
04113     auto o = flatbuffers::Offset<L2NormOptions>(end);
04114     return o;
04115   }
04116 };
04117 
04118 inline flatbuffers::Offset<L2NormOptions> CreateL2NormOptions(
04119     flatbuffers::FlatBufferBuilder &_fbb,
04120     ActivationFunctionType fused_activation_function = ActivationFunctionType_NONE) {
04121   L2NormOptionsBuilder builder_(_fbb);
04122   builder_.add_fused_activation_function(fused_activation_function);
04123   return builder_.Finish();
04124 }
04125 
04126 flatbuffers::Offset<L2NormOptions> CreateL2NormOptions(flatbuffers::FlatBufferBuilder &_fbb, const L2NormOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
04127 
04128 struct LocalResponseNormalizationOptionsT : public flatbuffers::NativeTable {
04129   typedef LocalResponseNormalizationOptions TableType;
04130   int32_t radius;
04131   float bias;
04132   float alpha;
04133   float beta;
04134   LocalResponseNormalizationOptionsT()
04135       : radius(0),
04136         bias(0.0f),
04137         alpha(0.0f),
04138         beta(0.0f) {
04139   }
04140 };
04141 
04142 struct LocalResponseNormalizationOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
04143   typedef LocalResponseNormalizationOptionsT NativeTableType;
04144   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
04145     VT_RADIUS = 4,
04146     VT_BIAS = 6,
04147     VT_ALPHA = 8,
04148     VT_BETA = 10
04149   };
04150   int32_t radius() const {
04151     return GetField<int32_t>(VT_RADIUS, 0);
04152   }
04153   float bias() const {
04154     return GetField<float>(VT_BIAS, 0.0f);
04155   }
04156   float alpha() const {
04157     return GetField<float>(VT_ALPHA, 0.0f);
04158   }
04159   float beta() const {
04160     return GetField<float>(VT_BETA, 0.0f);
04161   }
04162   bool Verify(flatbuffers::Verifier &verifier) const {
04163     return VerifyTableStart(verifier) &&
04164            VerifyField<int32_t>(verifier, VT_RADIUS) &&
04165            VerifyField<float>(verifier, VT_BIAS) &&
04166            VerifyField<float>(verifier, VT_ALPHA) &&
04167            VerifyField<float>(verifier, VT_BETA) &&
04168            verifier.EndTable();
04169   }
04170   LocalResponseNormalizationOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
04171   void UnPackTo(LocalResponseNormalizationOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
04172   static flatbuffers::Offset<LocalResponseNormalizationOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const LocalResponseNormalizationOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
04173 };
04174 
04175 struct LocalResponseNormalizationOptionsBuilder {
04176   flatbuffers::FlatBufferBuilder &fbb_;
04177   flatbuffers::uoffset_t start_;
04178   void add_radius(int32_t radius) {
04179     fbb_.AddElement<int32_t>(LocalResponseNormalizationOptions::VT_RADIUS, radius, 0);
04180   }
04181   void add_bias(float bias) {
04182     fbb_.AddElement<float>(LocalResponseNormalizationOptions::VT_BIAS, bias, 0.0f);
04183   }
04184   void add_alpha(float alpha) {
04185     fbb_.AddElement<float>(LocalResponseNormalizationOptions::VT_ALPHA, alpha, 0.0f);
04186   }
04187   void add_beta(float beta) {
04188     fbb_.AddElement<float>(LocalResponseNormalizationOptions::VT_BETA, beta, 0.0f);
04189   }
04190   explicit LocalResponseNormalizationOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
04191         : fbb_(_fbb) {
04192     start_ = fbb_.StartTable();
04193   }
04194   LocalResponseNormalizationOptionsBuilder &operator=(const LocalResponseNormalizationOptionsBuilder &);
04195   flatbuffers::Offset<LocalResponseNormalizationOptions> Finish() {
04196     const auto end = fbb_.EndTable(start_);
04197     auto o = flatbuffers::Offset<LocalResponseNormalizationOptions>(end);
04198     return o;
04199   }
04200 };
04201 
04202 inline flatbuffers::Offset<LocalResponseNormalizationOptions> CreateLocalResponseNormalizationOptions(
04203     flatbuffers::FlatBufferBuilder &_fbb,
04204     int32_t radius = 0,
04205     float bias = 0.0f,
04206     float alpha = 0.0f,
04207     float beta = 0.0f) {
04208   LocalResponseNormalizationOptionsBuilder builder_(_fbb);
04209   builder_.add_beta(beta);
04210   builder_.add_alpha(alpha);
04211   builder_.add_bias(bias);
04212   builder_.add_radius(radius);
04213   return builder_.Finish();
04214 }
04215 
04216 flatbuffers::Offset<LocalResponseNormalizationOptions> CreateLocalResponseNormalizationOptions(flatbuffers::FlatBufferBuilder &_fbb, const LocalResponseNormalizationOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
04217 
04218 struct LSTMOptionsT : public flatbuffers::NativeTable {
04219   typedef LSTMOptions TableType;
04220   ActivationFunctionType fused_activation_function;
04221   float cell_clip;
04222   float proj_clip;
04223   LSTMKernelType kernel_type;
04224   LSTMOptionsT()
04225       : fused_activation_function(ActivationFunctionType_NONE),
04226         cell_clip(0.0f),
04227         proj_clip(0.0f),
04228         kernel_type(LSTMKernelType_FULL) {
04229   }
04230 };
04231 
04232 struct LSTMOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
04233   typedef LSTMOptionsT NativeTableType;
04234   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
04235     VT_FUSED_ACTIVATION_FUNCTION = 4,
04236     VT_CELL_CLIP = 6,
04237     VT_PROJ_CLIP = 8,
04238     VT_KERNEL_TYPE = 10
04239   };
04240   ActivationFunctionType fused_activation_function() const {
04241     return static_cast<ActivationFunctionType>(GetField<int8_t>(VT_FUSED_ACTIVATION_FUNCTION, 0));
04242   }
04243   float cell_clip() const {
04244     return GetField<float>(VT_CELL_CLIP, 0.0f);
04245   }
04246   float proj_clip() const {
04247     return GetField<float>(VT_PROJ_CLIP, 0.0f);
04248   }
04249   LSTMKernelType kernel_type() const {
04250     return static_cast<LSTMKernelType>(GetField<int8_t>(VT_KERNEL_TYPE, 0));
04251   }
04252   bool Verify(flatbuffers::Verifier &verifier) const {
04253     return VerifyTableStart(verifier) &&
04254            VerifyField<int8_t>(verifier, VT_FUSED_ACTIVATION_FUNCTION) &&
04255            VerifyField<float>(verifier, VT_CELL_CLIP) &&
04256            VerifyField<float>(verifier, VT_PROJ_CLIP) &&
04257            VerifyField<int8_t>(verifier, VT_KERNEL_TYPE) &&
04258            verifier.EndTable();
04259   }
04260   LSTMOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
04261   void UnPackTo(LSTMOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
04262   static flatbuffers::Offset<LSTMOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const LSTMOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
04263 };
04264 
04265 struct LSTMOptionsBuilder {
04266   flatbuffers::FlatBufferBuilder &fbb_;
04267   flatbuffers::uoffset_t start_;
04268   void add_fused_activation_function(ActivationFunctionType fused_activation_function) {
04269     fbb_.AddElement<int8_t>(LSTMOptions::VT_FUSED_ACTIVATION_FUNCTION, static_cast<int8_t>(fused_activation_function), 0);
04270   }
04271   void add_cell_clip(float cell_clip) {
04272     fbb_.AddElement<float>(LSTMOptions::VT_CELL_CLIP, cell_clip, 0.0f);
04273   }
04274   void add_proj_clip(float proj_clip) {
04275     fbb_.AddElement<float>(LSTMOptions::VT_PROJ_CLIP, proj_clip, 0.0f);
04276   }
04277   void add_kernel_type(LSTMKernelType kernel_type) {
04278     fbb_.AddElement<int8_t>(LSTMOptions::VT_KERNEL_TYPE, static_cast<int8_t>(kernel_type), 0);
04279   }
04280   explicit LSTMOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
04281         : fbb_(_fbb) {
04282     start_ = fbb_.StartTable();
04283   }
04284   LSTMOptionsBuilder &operator=(const LSTMOptionsBuilder &);
04285   flatbuffers::Offset<LSTMOptions> Finish() {
04286     const auto end = fbb_.EndTable(start_);
04287     auto o = flatbuffers::Offset<LSTMOptions>(end);
04288     return o;
04289   }
04290 };
04291 
04292 inline flatbuffers::Offset<LSTMOptions> CreateLSTMOptions(
04293     flatbuffers::FlatBufferBuilder &_fbb,
04294     ActivationFunctionType fused_activation_function = ActivationFunctionType_NONE,
04295     float cell_clip = 0.0f,
04296     float proj_clip = 0.0f,
04297     LSTMKernelType kernel_type = LSTMKernelType_FULL) {
04298   LSTMOptionsBuilder builder_(_fbb);
04299   builder_.add_proj_clip(proj_clip);
04300   builder_.add_cell_clip(cell_clip);
04301   builder_.add_kernel_type(kernel_type);
04302   builder_.add_fused_activation_function(fused_activation_function);
04303   return builder_.Finish();
04304 }
04305 
04306 flatbuffers::Offset<LSTMOptions> CreateLSTMOptions(flatbuffers::FlatBufferBuilder &_fbb, const LSTMOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
04307 
04308 struct UnidirectionalSequenceLSTMOptionsT : public flatbuffers::NativeTable {
04309   typedef UnidirectionalSequenceLSTMOptions TableType;
04310   ActivationFunctionType fused_activation_function;
04311   float cell_clip;
04312   float proj_clip;
04313   bool time_major;
04314   UnidirectionalSequenceLSTMOptionsT()
04315       : fused_activation_function(ActivationFunctionType_NONE),
04316         cell_clip(0.0f),
04317         proj_clip(0.0f),
04318         time_major(false) {
04319   }
04320 };
04321 
04322 struct UnidirectionalSequenceLSTMOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
04323   typedef UnidirectionalSequenceLSTMOptionsT NativeTableType;
04324   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
04325     VT_FUSED_ACTIVATION_FUNCTION = 4,
04326     VT_CELL_CLIP = 6,
04327     VT_PROJ_CLIP = 8,
04328     VT_TIME_MAJOR = 10
04329   };
04330   ActivationFunctionType fused_activation_function() const {
04331     return static_cast<ActivationFunctionType>(GetField<int8_t>(VT_FUSED_ACTIVATION_FUNCTION, 0));
04332   }
04333   float cell_clip() const {
04334     return GetField<float>(VT_CELL_CLIP, 0.0f);
04335   }
04336   float proj_clip() const {
04337     return GetField<float>(VT_PROJ_CLIP, 0.0f);
04338   }
04339   bool time_major() const {
04340     return GetField<uint8_t>(VT_TIME_MAJOR, 0) != 0;
04341   }
04342   bool Verify(flatbuffers::Verifier &verifier) const {
04343     return VerifyTableStart(verifier) &&
04344            VerifyField<int8_t>(verifier, VT_FUSED_ACTIVATION_FUNCTION) &&
04345            VerifyField<float>(verifier, VT_CELL_CLIP) &&
04346            VerifyField<float>(verifier, VT_PROJ_CLIP) &&
04347            VerifyField<uint8_t>(verifier, VT_TIME_MAJOR) &&
04348            verifier.EndTable();
04349   }
04350   UnidirectionalSequenceLSTMOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
04351   void UnPackTo(UnidirectionalSequenceLSTMOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
04352   static flatbuffers::Offset<UnidirectionalSequenceLSTMOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const UnidirectionalSequenceLSTMOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
04353 };
04354 
04355 struct UnidirectionalSequenceLSTMOptionsBuilder {
04356   flatbuffers::FlatBufferBuilder &fbb_;
04357   flatbuffers::uoffset_t start_;
04358   void add_fused_activation_function(ActivationFunctionType fused_activation_function) {
04359     fbb_.AddElement<int8_t>(UnidirectionalSequenceLSTMOptions::VT_FUSED_ACTIVATION_FUNCTION, static_cast<int8_t>(fused_activation_function), 0);
04360   }
04361   void add_cell_clip(float cell_clip) {
04362     fbb_.AddElement<float>(UnidirectionalSequenceLSTMOptions::VT_CELL_CLIP, cell_clip, 0.0f);
04363   }
04364   void add_proj_clip(float proj_clip) {
04365     fbb_.AddElement<float>(UnidirectionalSequenceLSTMOptions::VT_PROJ_CLIP, proj_clip, 0.0f);
04366   }
04367   void add_time_major(bool time_major) {
04368     fbb_.AddElement<uint8_t>(UnidirectionalSequenceLSTMOptions::VT_TIME_MAJOR, static_cast<uint8_t>(time_major), 0);
04369   }
04370   explicit UnidirectionalSequenceLSTMOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
04371         : fbb_(_fbb) {
04372     start_ = fbb_.StartTable();
04373   }
04374   UnidirectionalSequenceLSTMOptionsBuilder &operator=(const UnidirectionalSequenceLSTMOptionsBuilder &);
04375   flatbuffers::Offset<UnidirectionalSequenceLSTMOptions> Finish() {
04376     const auto end = fbb_.EndTable(start_);
04377     auto o = flatbuffers::Offset<UnidirectionalSequenceLSTMOptions>(end);
04378     return o;
04379   }
04380 };
04381 
04382 inline flatbuffers::Offset<UnidirectionalSequenceLSTMOptions> CreateUnidirectionalSequenceLSTMOptions(
04383     flatbuffers::FlatBufferBuilder &_fbb,
04384     ActivationFunctionType fused_activation_function = ActivationFunctionType_NONE,
04385     float cell_clip = 0.0f,
04386     float proj_clip = 0.0f,
04387     bool time_major = false) {
04388   UnidirectionalSequenceLSTMOptionsBuilder builder_(_fbb);
04389   builder_.add_proj_clip(proj_clip);
04390   builder_.add_cell_clip(cell_clip);
04391   builder_.add_time_major(time_major);
04392   builder_.add_fused_activation_function(fused_activation_function);
04393   return builder_.Finish();
04394 }
04395 
04396 flatbuffers::Offset<UnidirectionalSequenceLSTMOptions> CreateUnidirectionalSequenceLSTMOptions(flatbuffers::FlatBufferBuilder &_fbb, const UnidirectionalSequenceLSTMOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
04397 
04398 struct BidirectionalSequenceLSTMOptionsT : public flatbuffers::NativeTable {
04399   typedef BidirectionalSequenceLSTMOptions TableType;
04400   ActivationFunctionType fused_activation_function;
04401   float cell_clip;
04402   float proj_clip;
04403   bool merge_outputs;
04404   bool time_major;
04405   BidirectionalSequenceLSTMOptionsT()
04406       : fused_activation_function(ActivationFunctionType_NONE),
04407         cell_clip(0.0f),
04408         proj_clip(0.0f),
04409         merge_outputs(false),
04410         time_major(true) {
04411   }
04412 };
04413 
04414 struct BidirectionalSequenceLSTMOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
04415   typedef BidirectionalSequenceLSTMOptionsT NativeTableType;
04416   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
04417     VT_FUSED_ACTIVATION_FUNCTION = 4,
04418     VT_CELL_CLIP = 6,
04419     VT_PROJ_CLIP = 8,
04420     VT_MERGE_OUTPUTS = 10,
04421     VT_TIME_MAJOR = 12
04422   };
04423   ActivationFunctionType fused_activation_function() const {
04424     return static_cast<ActivationFunctionType>(GetField<int8_t>(VT_FUSED_ACTIVATION_FUNCTION, 0));
04425   }
04426   float cell_clip() const {
04427     return GetField<float>(VT_CELL_CLIP, 0.0f);
04428   }
04429   float proj_clip() const {
04430     return GetField<float>(VT_PROJ_CLIP, 0.0f);
04431   }
04432   bool merge_outputs() const {
04433     return GetField<uint8_t>(VT_MERGE_OUTPUTS, 0) != 0;
04434   }
04435   bool time_major() const {
04436     return GetField<uint8_t>(VT_TIME_MAJOR, 1) != 0;
04437   }
04438   bool Verify(flatbuffers::Verifier &verifier) const {
04439     return VerifyTableStart(verifier) &&
04440            VerifyField<int8_t>(verifier, VT_FUSED_ACTIVATION_FUNCTION) &&
04441            VerifyField<float>(verifier, VT_CELL_CLIP) &&
04442            VerifyField<float>(verifier, VT_PROJ_CLIP) &&
04443            VerifyField<uint8_t>(verifier, VT_MERGE_OUTPUTS) &&
04444            VerifyField<uint8_t>(verifier, VT_TIME_MAJOR) &&
04445            verifier.EndTable();
04446   }
04447   BidirectionalSequenceLSTMOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
04448   void UnPackTo(BidirectionalSequenceLSTMOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
04449   static flatbuffers::Offset<BidirectionalSequenceLSTMOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const BidirectionalSequenceLSTMOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
04450 };
04451 
04452 struct BidirectionalSequenceLSTMOptionsBuilder {
04453   flatbuffers::FlatBufferBuilder &fbb_;
04454   flatbuffers::uoffset_t start_;
04455   void add_fused_activation_function(ActivationFunctionType fused_activation_function) {
04456     fbb_.AddElement<int8_t>(BidirectionalSequenceLSTMOptions::VT_FUSED_ACTIVATION_FUNCTION, static_cast<int8_t>(fused_activation_function), 0);
04457   }
04458   void add_cell_clip(float cell_clip) {
04459     fbb_.AddElement<float>(BidirectionalSequenceLSTMOptions::VT_CELL_CLIP, cell_clip, 0.0f);
04460   }
04461   void add_proj_clip(float proj_clip) {
04462     fbb_.AddElement<float>(BidirectionalSequenceLSTMOptions::VT_PROJ_CLIP, proj_clip, 0.0f);
04463   }
04464   void add_merge_outputs(bool merge_outputs) {
04465     fbb_.AddElement<uint8_t>(BidirectionalSequenceLSTMOptions::VT_MERGE_OUTPUTS, static_cast<uint8_t>(merge_outputs), 0);
04466   }
04467   void add_time_major(bool time_major) {
04468     fbb_.AddElement<uint8_t>(BidirectionalSequenceLSTMOptions::VT_TIME_MAJOR, static_cast<uint8_t>(time_major), 1);
04469   }
04470   explicit BidirectionalSequenceLSTMOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
04471         : fbb_(_fbb) {
04472     start_ = fbb_.StartTable();
04473   }
04474   BidirectionalSequenceLSTMOptionsBuilder &operator=(const BidirectionalSequenceLSTMOptionsBuilder &);
04475   flatbuffers::Offset<BidirectionalSequenceLSTMOptions> Finish() {
04476     const auto end = fbb_.EndTable(start_);
04477     auto o = flatbuffers::Offset<BidirectionalSequenceLSTMOptions>(end);
04478     return o;
04479   }
04480 };
04481 
04482 inline flatbuffers::Offset<BidirectionalSequenceLSTMOptions> CreateBidirectionalSequenceLSTMOptions(
04483     flatbuffers::FlatBufferBuilder &_fbb,
04484     ActivationFunctionType fused_activation_function = ActivationFunctionType_NONE,
04485     float cell_clip = 0.0f,
04486     float proj_clip = 0.0f,
04487     bool merge_outputs = false,
04488     bool time_major = true) {
04489   BidirectionalSequenceLSTMOptionsBuilder builder_(_fbb);
04490   builder_.add_proj_clip(proj_clip);
04491   builder_.add_cell_clip(cell_clip);
04492   builder_.add_time_major(time_major);
04493   builder_.add_merge_outputs(merge_outputs);
04494   builder_.add_fused_activation_function(fused_activation_function);
04495   return builder_.Finish();
04496 }
04497 
04498 flatbuffers::Offset<BidirectionalSequenceLSTMOptions> CreateBidirectionalSequenceLSTMOptions(flatbuffers::FlatBufferBuilder &_fbb, const BidirectionalSequenceLSTMOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
04499 
04500 struct ResizeBilinearOptionsT : public flatbuffers::NativeTable {
04501   typedef ResizeBilinearOptions TableType;
04502   bool align_corners;
04503   ResizeBilinearOptionsT()
04504       : align_corners(false) {
04505   }
04506 };
04507 
04508 struct ResizeBilinearOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
04509   typedef ResizeBilinearOptionsT NativeTableType;
04510   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
04511     VT_ALIGN_CORNERS = 8
04512   };
04513   bool align_corners() const {
04514     return GetField<uint8_t>(VT_ALIGN_CORNERS, 0) != 0;
04515   }
04516   bool Verify(flatbuffers::Verifier &verifier) const {
04517     return VerifyTableStart(verifier) &&
04518            VerifyField<uint8_t>(verifier, VT_ALIGN_CORNERS) &&
04519            verifier.EndTable();
04520   }
04521   ResizeBilinearOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
04522   void UnPackTo(ResizeBilinearOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
04523   static flatbuffers::Offset<ResizeBilinearOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const ResizeBilinearOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
04524 };
04525 
04526 struct ResizeBilinearOptionsBuilder {
04527   flatbuffers::FlatBufferBuilder &fbb_;
04528   flatbuffers::uoffset_t start_;
04529   void add_align_corners(bool align_corners) {
04530     fbb_.AddElement<uint8_t>(ResizeBilinearOptions::VT_ALIGN_CORNERS, static_cast<uint8_t>(align_corners), 0);
04531   }
04532   explicit ResizeBilinearOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
04533         : fbb_(_fbb) {
04534     start_ = fbb_.StartTable();
04535   }
04536   ResizeBilinearOptionsBuilder &operator=(const ResizeBilinearOptionsBuilder &);
04537   flatbuffers::Offset<ResizeBilinearOptions> Finish() {
04538     const auto end = fbb_.EndTable(start_);
04539     auto o = flatbuffers::Offset<ResizeBilinearOptions>(end);
04540     return o;
04541   }
04542 };
04543 
04544 inline flatbuffers::Offset<ResizeBilinearOptions> CreateResizeBilinearOptions(
04545     flatbuffers::FlatBufferBuilder &_fbb,
04546     bool align_corners = false) {
04547   ResizeBilinearOptionsBuilder builder_(_fbb);
04548   builder_.add_align_corners(align_corners);
04549   return builder_.Finish();
04550 }
04551 
04552 flatbuffers::Offset<ResizeBilinearOptions> CreateResizeBilinearOptions(flatbuffers::FlatBufferBuilder &_fbb, const ResizeBilinearOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
04553 
04554 struct ResizeNearestNeighborOptionsT : public flatbuffers::NativeTable {
04555   typedef ResizeNearestNeighborOptions TableType;
04556   bool align_corners;
04557   ResizeNearestNeighborOptionsT()
04558       : align_corners(false) {
04559   }
04560 };
04561 
04562 struct ResizeNearestNeighborOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
04563   typedef ResizeNearestNeighborOptionsT NativeTableType;
04564   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
04565     VT_ALIGN_CORNERS = 4
04566   };
04567   bool align_corners() const {
04568     return GetField<uint8_t>(VT_ALIGN_CORNERS, 0) != 0;
04569   }
04570   bool Verify(flatbuffers::Verifier &verifier) const {
04571     return VerifyTableStart(verifier) &&
04572            VerifyField<uint8_t>(verifier, VT_ALIGN_CORNERS) &&
04573            verifier.EndTable();
04574   }
04575   ResizeNearestNeighborOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
04576   void UnPackTo(ResizeNearestNeighborOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
04577   static flatbuffers::Offset<ResizeNearestNeighborOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const ResizeNearestNeighborOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
04578 };
04579 
04580 struct ResizeNearestNeighborOptionsBuilder {
04581   flatbuffers::FlatBufferBuilder &fbb_;
04582   flatbuffers::uoffset_t start_;
04583   void add_align_corners(bool align_corners) {
04584     fbb_.AddElement<uint8_t>(ResizeNearestNeighborOptions::VT_ALIGN_CORNERS, static_cast<uint8_t>(align_corners), 0);
04585   }
04586   explicit ResizeNearestNeighborOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
04587         : fbb_(_fbb) {
04588     start_ = fbb_.StartTable();
04589   }
04590   ResizeNearestNeighborOptionsBuilder &operator=(const ResizeNearestNeighborOptionsBuilder &);
04591   flatbuffers::Offset<ResizeNearestNeighborOptions> Finish() {
04592     const auto end = fbb_.EndTable(start_);
04593     auto o = flatbuffers::Offset<ResizeNearestNeighborOptions>(end);
04594     return o;
04595   }
04596 };
04597 
04598 inline flatbuffers::Offset<ResizeNearestNeighborOptions> CreateResizeNearestNeighborOptions(
04599     flatbuffers::FlatBufferBuilder &_fbb,
04600     bool align_corners = false) {
04601   ResizeNearestNeighborOptionsBuilder builder_(_fbb);
04602   builder_.add_align_corners(align_corners);
04603   return builder_.Finish();
04604 }
04605 
04606 flatbuffers::Offset<ResizeNearestNeighborOptions> CreateResizeNearestNeighborOptions(flatbuffers::FlatBufferBuilder &_fbb, const ResizeNearestNeighborOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
04607 
04608 struct CallOptionsT : public flatbuffers::NativeTable {
04609   typedef CallOptions TableType;
04610   uint32_t subgraph;
04611   CallOptionsT()
04612       : subgraph(0) {
04613   }
04614 };
04615 
04616 struct CallOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
04617   typedef CallOptionsT NativeTableType;
04618   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
04619     VT_SUBGRAPH = 4
04620   };
04621   uint32_t subgraph() const {
04622     return GetField<uint32_t>(VT_SUBGRAPH, 0);
04623   }
04624   bool Verify(flatbuffers::Verifier &verifier) const {
04625     return VerifyTableStart(verifier) &&
04626            VerifyField<uint32_t>(verifier, VT_SUBGRAPH) &&
04627            verifier.EndTable();
04628   }
04629   CallOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
04630   void UnPackTo(CallOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
04631   static flatbuffers::Offset<CallOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const CallOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
04632 };
04633 
04634 struct CallOptionsBuilder {
04635   flatbuffers::FlatBufferBuilder &fbb_;
04636   flatbuffers::uoffset_t start_;
04637   void add_subgraph(uint32_t subgraph) {
04638     fbb_.AddElement<uint32_t>(CallOptions::VT_SUBGRAPH, subgraph, 0);
04639   }
04640   explicit CallOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
04641         : fbb_(_fbb) {
04642     start_ = fbb_.StartTable();
04643   }
04644   CallOptionsBuilder &operator=(const CallOptionsBuilder &);
04645   flatbuffers::Offset<CallOptions> Finish() {
04646     const auto end = fbb_.EndTable(start_);
04647     auto o = flatbuffers::Offset<CallOptions>(end);
04648     return o;
04649   }
04650 };
04651 
04652 inline flatbuffers::Offset<CallOptions> CreateCallOptions(
04653     flatbuffers::FlatBufferBuilder &_fbb,
04654     uint32_t subgraph = 0) {
04655   CallOptionsBuilder builder_(_fbb);
04656   builder_.add_subgraph(subgraph);
04657   return builder_.Finish();
04658 }
04659 
04660 flatbuffers::Offset<CallOptions> CreateCallOptions(flatbuffers::FlatBufferBuilder &_fbb, const CallOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
04661 
04662 struct PadOptionsT : public flatbuffers::NativeTable {
04663   typedef PadOptions TableType;
04664   PadOptionsT() {
04665   }
04666 };
04667 
04668 struct PadOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
04669   typedef PadOptionsT NativeTableType;
04670   bool Verify(flatbuffers::Verifier &verifier) const {
04671     return VerifyTableStart(verifier) &&
04672            verifier.EndTable();
04673   }
04674   PadOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
04675   void UnPackTo(PadOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
04676   static flatbuffers::Offset<PadOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const PadOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
04677 };
04678 
04679 struct PadOptionsBuilder {
04680   flatbuffers::FlatBufferBuilder &fbb_;
04681   flatbuffers::uoffset_t start_;
04682   explicit PadOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
04683         : fbb_(_fbb) {
04684     start_ = fbb_.StartTable();
04685   }
04686   PadOptionsBuilder &operator=(const PadOptionsBuilder &);
04687   flatbuffers::Offset<PadOptions> Finish() {
04688     const auto end = fbb_.EndTable(start_);
04689     auto o = flatbuffers::Offset<PadOptions>(end);
04690     return o;
04691   }
04692 };
04693 
04694 inline flatbuffers::Offset<PadOptions> CreatePadOptions(
04695     flatbuffers::FlatBufferBuilder &_fbb) {
04696   PadOptionsBuilder builder_(_fbb);
04697   return builder_.Finish();
04698 }
04699 
04700 flatbuffers::Offset<PadOptions> CreatePadOptions(flatbuffers::FlatBufferBuilder &_fbb, const PadOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
04701 
04702 struct PadV2OptionsT : public flatbuffers::NativeTable {
04703   typedef PadV2Options TableType;
04704   PadV2OptionsT() {
04705   }
04706 };
04707 
04708 struct PadV2Options FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
04709   typedef PadV2OptionsT NativeTableType;
04710   bool Verify(flatbuffers::Verifier &verifier) const {
04711     return VerifyTableStart(verifier) &&
04712            verifier.EndTable();
04713   }
04714   PadV2OptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
04715   void UnPackTo(PadV2OptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
04716   static flatbuffers::Offset<PadV2Options> Pack(flatbuffers::FlatBufferBuilder &_fbb, const PadV2OptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
04717 };
04718 
04719 struct PadV2OptionsBuilder {
04720   flatbuffers::FlatBufferBuilder &fbb_;
04721   flatbuffers::uoffset_t start_;
04722   explicit PadV2OptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
04723         : fbb_(_fbb) {
04724     start_ = fbb_.StartTable();
04725   }
04726   PadV2OptionsBuilder &operator=(const PadV2OptionsBuilder &);
04727   flatbuffers::Offset<PadV2Options> Finish() {
04728     const auto end = fbb_.EndTable(start_);
04729     auto o = flatbuffers::Offset<PadV2Options>(end);
04730     return o;
04731   }
04732 };
04733 
04734 inline flatbuffers::Offset<PadV2Options> CreatePadV2Options(
04735     flatbuffers::FlatBufferBuilder &_fbb) {
04736   PadV2OptionsBuilder builder_(_fbb);
04737   return builder_.Finish();
04738 }
04739 
04740 flatbuffers::Offset<PadV2Options> CreatePadV2Options(flatbuffers::FlatBufferBuilder &_fbb, const PadV2OptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
04741 
04742 struct ReshapeOptionsT : public flatbuffers::NativeTable {
04743   typedef ReshapeOptions TableType;
04744   std::vector<int32_t> new_shape;
04745   ReshapeOptionsT() {
04746   }
04747 };
04748 
04749 struct ReshapeOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
04750   typedef ReshapeOptionsT NativeTableType;
04751   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
04752     VT_NEW_SHAPE = 4
04753   };
04754   const flatbuffers::Vector<int32_t> *new_shape() const {
04755     return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_NEW_SHAPE);
04756   }
04757   bool Verify(flatbuffers::Verifier &verifier) const {
04758     return VerifyTableStart(verifier) &&
04759            VerifyOffset(verifier, VT_NEW_SHAPE) &&
04760            verifier.VerifyVector(new_shape()) &&
04761            verifier.EndTable();
04762   }
04763   ReshapeOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
04764   void UnPackTo(ReshapeOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
04765   static flatbuffers::Offset<ReshapeOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const ReshapeOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
04766 };
04767 
04768 struct ReshapeOptionsBuilder {
04769   flatbuffers::FlatBufferBuilder &fbb_;
04770   flatbuffers::uoffset_t start_;
04771   void add_new_shape(flatbuffers::Offset<flatbuffers::Vector<int32_t>> new_shape) {
04772     fbb_.AddOffset(ReshapeOptions::VT_NEW_SHAPE, new_shape);
04773   }
04774   explicit ReshapeOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
04775         : fbb_(_fbb) {
04776     start_ = fbb_.StartTable();
04777   }
04778   ReshapeOptionsBuilder &operator=(const ReshapeOptionsBuilder &);
04779   flatbuffers::Offset<ReshapeOptions> Finish() {
04780     const auto end = fbb_.EndTable(start_);
04781     auto o = flatbuffers::Offset<ReshapeOptions>(end);
04782     return o;
04783   }
04784 };
04785 
04786 inline flatbuffers::Offset<ReshapeOptions> CreateReshapeOptions(
04787     flatbuffers::FlatBufferBuilder &_fbb,
04788     flatbuffers::Offset<flatbuffers::Vector<int32_t>> new_shape = 0) {
04789   ReshapeOptionsBuilder builder_(_fbb);
04790   builder_.add_new_shape(new_shape);
04791   return builder_.Finish();
04792 }
04793 
04794 inline flatbuffers::Offset<ReshapeOptions> CreateReshapeOptionsDirect(
04795     flatbuffers::FlatBufferBuilder &_fbb,
04796     const std::vector<int32_t> *new_shape = nullptr) {
04797   auto new_shape__ = new_shape ? _fbb.CreateVector<int32_t>(*new_shape) : 0;
04798   return tflite::CreateReshapeOptions(
04799       _fbb,
04800       new_shape__);
04801 }
04802 
04803 flatbuffers::Offset<ReshapeOptions> CreateReshapeOptions(flatbuffers::FlatBufferBuilder &_fbb, const ReshapeOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
04804 
04805 struct SpaceToBatchNDOptionsT : public flatbuffers::NativeTable {
04806   typedef SpaceToBatchNDOptions TableType;
04807   SpaceToBatchNDOptionsT() {
04808   }
04809 };
04810 
04811 struct SpaceToBatchNDOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
04812   typedef SpaceToBatchNDOptionsT NativeTableType;
04813   bool Verify(flatbuffers::Verifier &verifier) const {
04814     return VerifyTableStart(verifier) &&
04815            verifier.EndTable();
04816   }
04817   SpaceToBatchNDOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
04818   void UnPackTo(SpaceToBatchNDOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
04819   static flatbuffers::Offset<SpaceToBatchNDOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const SpaceToBatchNDOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
04820 };
04821 
04822 struct SpaceToBatchNDOptionsBuilder {
04823   flatbuffers::FlatBufferBuilder &fbb_;
04824   flatbuffers::uoffset_t start_;
04825   explicit SpaceToBatchNDOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
04826         : fbb_(_fbb) {
04827     start_ = fbb_.StartTable();
04828   }
04829   SpaceToBatchNDOptionsBuilder &operator=(const SpaceToBatchNDOptionsBuilder &);
04830   flatbuffers::Offset<SpaceToBatchNDOptions> Finish() {
04831     const auto end = fbb_.EndTable(start_);
04832     auto o = flatbuffers::Offset<SpaceToBatchNDOptions>(end);
04833     return o;
04834   }
04835 };
04836 
04837 inline flatbuffers::Offset<SpaceToBatchNDOptions> CreateSpaceToBatchNDOptions(
04838     flatbuffers::FlatBufferBuilder &_fbb) {
04839   SpaceToBatchNDOptionsBuilder builder_(_fbb);
04840   return builder_.Finish();
04841 }
04842 
04843 flatbuffers::Offset<SpaceToBatchNDOptions> CreateSpaceToBatchNDOptions(flatbuffers::FlatBufferBuilder &_fbb, const SpaceToBatchNDOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
04844 
04845 struct BatchToSpaceNDOptionsT : public flatbuffers::NativeTable {
04846   typedef BatchToSpaceNDOptions TableType;
04847   BatchToSpaceNDOptionsT() {
04848   }
04849 };
04850 
04851 struct BatchToSpaceNDOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
04852   typedef BatchToSpaceNDOptionsT NativeTableType;
04853   bool Verify(flatbuffers::Verifier &verifier) const {
04854     return VerifyTableStart(verifier) &&
04855            verifier.EndTable();
04856   }
04857   BatchToSpaceNDOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
04858   void UnPackTo(BatchToSpaceNDOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
04859   static flatbuffers::Offset<BatchToSpaceNDOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const BatchToSpaceNDOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
04860 };
04861 
04862 struct BatchToSpaceNDOptionsBuilder {
04863   flatbuffers::FlatBufferBuilder &fbb_;
04864   flatbuffers::uoffset_t start_;
04865   explicit BatchToSpaceNDOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
04866         : fbb_(_fbb) {
04867     start_ = fbb_.StartTable();
04868   }
04869   BatchToSpaceNDOptionsBuilder &operator=(const BatchToSpaceNDOptionsBuilder &);
04870   flatbuffers::Offset<BatchToSpaceNDOptions> Finish() {
04871     const auto end = fbb_.EndTable(start_);
04872     auto o = flatbuffers::Offset<BatchToSpaceNDOptions>(end);
04873     return o;
04874   }
04875 };
04876 
04877 inline flatbuffers::Offset<BatchToSpaceNDOptions> CreateBatchToSpaceNDOptions(
04878     flatbuffers::FlatBufferBuilder &_fbb) {
04879   BatchToSpaceNDOptionsBuilder builder_(_fbb);
04880   return builder_.Finish();
04881 }
04882 
04883 flatbuffers::Offset<BatchToSpaceNDOptions> CreateBatchToSpaceNDOptions(flatbuffers::FlatBufferBuilder &_fbb, const BatchToSpaceNDOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
04884 
04885 struct SkipGramOptionsT : public flatbuffers::NativeTable {
04886   typedef SkipGramOptions TableType;
04887   int32_t ngram_size;
04888   int32_t max_skip_size;
04889   bool include_all_ngrams;
04890   SkipGramOptionsT()
04891       : ngram_size(0),
04892         max_skip_size(0),
04893         include_all_ngrams(false) {
04894   }
04895 };
04896 
04897 struct SkipGramOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
04898   typedef SkipGramOptionsT NativeTableType;
04899   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
04900     VT_NGRAM_SIZE = 4,
04901     VT_MAX_SKIP_SIZE = 6,
04902     VT_INCLUDE_ALL_NGRAMS = 8
04903   };
04904   int32_t ngram_size() const {
04905     return GetField<int32_t>(VT_NGRAM_SIZE, 0);
04906   }
04907   int32_t max_skip_size() const {
04908     return GetField<int32_t>(VT_MAX_SKIP_SIZE, 0);
04909   }
04910   bool include_all_ngrams() const {
04911     return GetField<uint8_t>(VT_INCLUDE_ALL_NGRAMS, 0) != 0;
04912   }
04913   bool Verify(flatbuffers::Verifier &verifier) const {
04914     return VerifyTableStart(verifier) &&
04915            VerifyField<int32_t>(verifier, VT_NGRAM_SIZE) &&
04916            VerifyField<int32_t>(verifier, VT_MAX_SKIP_SIZE) &&
04917            VerifyField<uint8_t>(verifier, VT_INCLUDE_ALL_NGRAMS) &&
04918            verifier.EndTable();
04919   }
04920   SkipGramOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
04921   void UnPackTo(SkipGramOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
04922   static flatbuffers::Offset<SkipGramOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const SkipGramOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
04923 };
04924 
04925 struct SkipGramOptionsBuilder {
04926   flatbuffers::FlatBufferBuilder &fbb_;
04927   flatbuffers::uoffset_t start_;
04928   void add_ngram_size(int32_t ngram_size) {
04929     fbb_.AddElement<int32_t>(SkipGramOptions::VT_NGRAM_SIZE, ngram_size, 0);
04930   }
04931   void add_max_skip_size(int32_t max_skip_size) {
04932     fbb_.AddElement<int32_t>(SkipGramOptions::VT_MAX_SKIP_SIZE, max_skip_size, 0);
04933   }
04934   void add_include_all_ngrams(bool include_all_ngrams) {
04935     fbb_.AddElement<uint8_t>(SkipGramOptions::VT_INCLUDE_ALL_NGRAMS, static_cast<uint8_t>(include_all_ngrams), 0);
04936   }
04937   explicit SkipGramOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
04938         : fbb_(_fbb) {
04939     start_ = fbb_.StartTable();
04940   }
04941   SkipGramOptionsBuilder &operator=(const SkipGramOptionsBuilder &);
04942   flatbuffers::Offset<SkipGramOptions> Finish() {
04943     const auto end = fbb_.EndTable(start_);
04944     auto o = flatbuffers::Offset<SkipGramOptions>(end);
04945     return o;
04946   }
04947 };
04948 
04949 inline flatbuffers::Offset<SkipGramOptions> CreateSkipGramOptions(
04950     flatbuffers::FlatBufferBuilder &_fbb,
04951     int32_t ngram_size = 0,
04952     int32_t max_skip_size = 0,
04953     bool include_all_ngrams = false) {
04954   SkipGramOptionsBuilder builder_(_fbb);
04955   builder_.add_max_skip_size(max_skip_size);
04956   builder_.add_ngram_size(ngram_size);
04957   builder_.add_include_all_ngrams(include_all_ngrams);
04958   return builder_.Finish();
04959 }
04960 
04961 flatbuffers::Offset<SkipGramOptions> CreateSkipGramOptions(flatbuffers::FlatBufferBuilder &_fbb, const SkipGramOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
04962 
04963 struct SpaceToDepthOptionsT : public flatbuffers::NativeTable {
04964   typedef SpaceToDepthOptions TableType;
04965   int32_t block_size;
04966   SpaceToDepthOptionsT()
04967       : block_size(0) {
04968   }
04969 };
04970 
04971 struct SpaceToDepthOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
04972   typedef SpaceToDepthOptionsT NativeTableType;
04973   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
04974     VT_BLOCK_SIZE = 4
04975   };
04976   int32_t block_size() const {
04977     return GetField<int32_t>(VT_BLOCK_SIZE, 0);
04978   }
04979   bool Verify(flatbuffers::Verifier &verifier) const {
04980     return VerifyTableStart(verifier) &&
04981            VerifyField<int32_t>(verifier, VT_BLOCK_SIZE) &&
04982            verifier.EndTable();
04983   }
04984   SpaceToDepthOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
04985   void UnPackTo(SpaceToDepthOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
04986   static flatbuffers::Offset<SpaceToDepthOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const SpaceToDepthOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
04987 };
04988 
04989 struct SpaceToDepthOptionsBuilder {
04990   flatbuffers::FlatBufferBuilder &fbb_;
04991   flatbuffers::uoffset_t start_;
04992   void add_block_size(int32_t block_size) {
04993     fbb_.AddElement<int32_t>(SpaceToDepthOptions::VT_BLOCK_SIZE, block_size, 0);
04994   }
04995   explicit SpaceToDepthOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
04996         : fbb_(_fbb) {
04997     start_ = fbb_.StartTable();
04998   }
04999   SpaceToDepthOptionsBuilder &operator=(const SpaceToDepthOptionsBuilder &);
05000   flatbuffers::Offset<SpaceToDepthOptions> Finish() {
05001     const auto end = fbb_.EndTable(start_);
05002     auto o = flatbuffers::Offset<SpaceToDepthOptions>(end);
05003     return o;
05004   }
05005 };
05006 
05007 inline flatbuffers::Offset<SpaceToDepthOptions> CreateSpaceToDepthOptions(
05008     flatbuffers::FlatBufferBuilder &_fbb,
05009     int32_t block_size = 0) {
05010   SpaceToDepthOptionsBuilder builder_(_fbb);
05011   builder_.add_block_size(block_size);
05012   return builder_.Finish();
05013 }
05014 
05015 flatbuffers::Offset<SpaceToDepthOptions> CreateSpaceToDepthOptions(flatbuffers::FlatBufferBuilder &_fbb, const SpaceToDepthOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
05016 
05017 struct DepthToSpaceOptionsT : public flatbuffers::NativeTable {
05018   typedef DepthToSpaceOptions TableType;
05019   int32_t block_size;
05020   DepthToSpaceOptionsT()
05021       : block_size(0) {
05022   }
05023 };
05024 
05025 struct DepthToSpaceOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
05026   typedef DepthToSpaceOptionsT NativeTableType;
05027   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
05028     VT_BLOCK_SIZE = 4
05029   };
05030   int32_t block_size() const {
05031     return GetField<int32_t>(VT_BLOCK_SIZE, 0);
05032   }
05033   bool Verify(flatbuffers::Verifier &verifier) const {
05034     return VerifyTableStart(verifier) &&
05035            VerifyField<int32_t>(verifier, VT_BLOCK_SIZE) &&
05036            verifier.EndTable();
05037   }
05038   DepthToSpaceOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
05039   void UnPackTo(DepthToSpaceOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
05040   static flatbuffers::Offset<DepthToSpaceOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const DepthToSpaceOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
05041 };
05042 
05043 struct DepthToSpaceOptionsBuilder {
05044   flatbuffers::FlatBufferBuilder &fbb_;
05045   flatbuffers::uoffset_t start_;
05046   void add_block_size(int32_t block_size) {
05047     fbb_.AddElement<int32_t>(DepthToSpaceOptions::VT_BLOCK_SIZE, block_size, 0);
05048   }
05049   explicit DepthToSpaceOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
05050         : fbb_(_fbb) {
05051     start_ = fbb_.StartTable();
05052   }
05053   DepthToSpaceOptionsBuilder &operator=(const DepthToSpaceOptionsBuilder &);
05054   flatbuffers::Offset<DepthToSpaceOptions> Finish() {
05055     const auto end = fbb_.EndTable(start_);
05056     auto o = flatbuffers::Offset<DepthToSpaceOptions>(end);
05057     return o;
05058   }
05059 };
05060 
05061 inline flatbuffers::Offset<DepthToSpaceOptions> CreateDepthToSpaceOptions(
05062     flatbuffers::FlatBufferBuilder &_fbb,
05063     int32_t block_size = 0) {
05064   DepthToSpaceOptionsBuilder builder_(_fbb);
05065   builder_.add_block_size(block_size);
05066   return builder_.Finish();
05067 }
05068 
05069 flatbuffers::Offset<DepthToSpaceOptions> CreateDepthToSpaceOptions(flatbuffers::FlatBufferBuilder &_fbb, const DepthToSpaceOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
05070 
05071 struct SubOptionsT : public flatbuffers::NativeTable {
05072   typedef SubOptions TableType;
05073   ActivationFunctionType fused_activation_function;
05074   SubOptionsT()
05075       : fused_activation_function(ActivationFunctionType_NONE) {
05076   }
05077 };
05078 
05079 struct SubOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
05080   typedef SubOptionsT NativeTableType;
05081   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
05082     VT_FUSED_ACTIVATION_FUNCTION = 4
05083   };
05084   ActivationFunctionType fused_activation_function() const {
05085     return static_cast<ActivationFunctionType>(GetField<int8_t>(VT_FUSED_ACTIVATION_FUNCTION, 0));
05086   }
05087   bool Verify(flatbuffers::Verifier &verifier) const {
05088     return VerifyTableStart(verifier) &&
05089            VerifyField<int8_t>(verifier, VT_FUSED_ACTIVATION_FUNCTION) &&
05090            verifier.EndTable();
05091   }
05092   SubOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
05093   void UnPackTo(SubOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
05094   static flatbuffers::Offset<SubOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const SubOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
05095 };
05096 
05097 struct SubOptionsBuilder {
05098   flatbuffers::FlatBufferBuilder &fbb_;
05099   flatbuffers::uoffset_t start_;
05100   void add_fused_activation_function(ActivationFunctionType fused_activation_function) {
05101     fbb_.AddElement<int8_t>(SubOptions::VT_FUSED_ACTIVATION_FUNCTION, static_cast<int8_t>(fused_activation_function), 0);
05102   }
05103   explicit SubOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
05104         : fbb_(_fbb) {
05105     start_ = fbb_.StartTable();
05106   }
05107   SubOptionsBuilder &operator=(const SubOptionsBuilder &);
05108   flatbuffers::Offset<SubOptions> Finish() {
05109     const auto end = fbb_.EndTable(start_);
05110     auto o = flatbuffers::Offset<SubOptions>(end);
05111     return o;
05112   }
05113 };
05114 
05115 inline flatbuffers::Offset<SubOptions> CreateSubOptions(
05116     flatbuffers::FlatBufferBuilder &_fbb,
05117     ActivationFunctionType fused_activation_function = ActivationFunctionType_NONE) {
05118   SubOptionsBuilder builder_(_fbb);
05119   builder_.add_fused_activation_function(fused_activation_function);
05120   return builder_.Finish();
05121 }
05122 
05123 flatbuffers::Offset<SubOptions> CreateSubOptions(flatbuffers::FlatBufferBuilder &_fbb, const SubOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
05124 
05125 struct DivOptionsT : public flatbuffers::NativeTable {
05126   typedef DivOptions TableType;
05127   ActivationFunctionType fused_activation_function;
05128   DivOptionsT()
05129       : fused_activation_function(ActivationFunctionType_NONE) {
05130   }
05131 };
05132 
05133 struct DivOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
05134   typedef DivOptionsT NativeTableType;
05135   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
05136     VT_FUSED_ACTIVATION_FUNCTION = 4
05137   };
05138   ActivationFunctionType fused_activation_function() const {
05139     return static_cast<ActivationFunctionType>(GetField<int8_t>(VT_FUSED_ACTIVATION_FUNCTION, 0));
05140   }
05141   bool Verify(flatbuffers::Verifier &verifier) const {
05142     return VerifyTableStart(verifier) &&
05143            VerifyField<int8_t>(verifier, VT_FUSED_ACTIVATION_FUNCTION) &&
05144            verifier.EndTable();
05145   }
05146   DivOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
05147   void UnPackTo(DivOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
05148   static flatbuffers::Offset<DivOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const DivOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
05149 };
05150 
05151 struct DivOptionsBuilder {
05152   flatbuffers::FlatBufferBuilder &fbb_;
05153   flatbuffers::uoffset_t start_;
05154   void add_fused_activation_function(ActivationFunctionType fused_activation_function) {
05155     fbb_.AddElement<int8_t>(DivOptions::VT_FUSED_ACTIVATION_FUNCTION, static_cast<int8_t>(fused_activation_function), 0);
05156   }
05157   explicit DivOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
05158         : fbb_(_fbb) {
05159     start_ = fbb_.StartTable();
05160   }
05161   DivOptionsBuilder &operator=(const DivOptionsBuilder &);
05162   flatbuffers::Offset<DivOptions> Finish() {
05163     const auto end = fbb_.EndTable(start_);
05164     auto o = flatbuffers::Offset<DivOptions>(end);
05165     return o;
05166   }
05167 };
05168 
05169 inline flatbuffers::Offset<DivOptions> CreateDivOptions(
05170     flatbuffers::FlatBufferBuilder &_fbb,
05171     ActivationFunctionType fused_activation_function = ActivationFunctionType_NONE) {
05172   DivOptionsBuilder builder_(_fbb);
05173   builder_.add_fused_activation_function(fused_activation_function);
05174   return builder_.Finish();
05175 }
05176 
05177 flatbuffers::Offset<DivOptions> CreateDivOptions(flatbuffers::FlatBufferBuilder &_fbb, const DivOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
05178 
05179 struct TopKV2OptionsT : public flatbuffers::NativeTable {
05180   typedef TopKV2Options TableType;
05181   TopKV2OptionsT() {
05182   }
05183 };
05184 
05185 struct TopKV2Options FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
05186   typedef TopKV2OptionsT NativeTableType;
05187   bool Verify(flatbuffers::Verifier &verifier) const {
05188     return VerifyTableStart(verifier) &&
05189            verifier.EndTable();
05190   }
05191   TopKV2OptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
05192   void UnPackTo(TopKV2OptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
05193   static flatbuffers::Offset<TopKV2Options> Pack(flatbuffers::FlatBufferBuilder &_fbb, const TopKV2OptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
05194 };
05195 
05196 struct TopKV2OptionsBuilder {
05197   flatbuffers::FlatBufferBuilder &fbb_;
05198   flatbuffers::uoffset_t start_;
05199   explicit TopKV2OptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
05200         : fbb_(_fbb) {
05201     start_ = fbb_.StartTable();
05202   }
05203   TopKV2OptionsBuilder &operator=(const TopKV2OptionsBuilder &);
05204   flatbuffers::Offset<TopKV2Options> Finish() {
05205     const auto end = fbb_.EndTable(start_);
05206     auto o = flatbuffers::Offset<TopKV2Options>(end);
05207     return o;
05208   }
05209 };
05210 
05211 inline flatbuffers::Offset<TopKV2Options> CreateTopKV2Options(
05212     flatbuffers::FlatBufferBuilder &_fbb) {
05213   TopKV2OptionsBuilder builder_(_fbb);
05214   return builder_.Finish();
05215 }
05216 
05217 flatbuffers::Offset<TopKV2Options> CreateTopKV2Options(flatbuffers::FlatBufferBuilder &_fbb, const TopKV2OptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
05218 
05219 struct EmbeddingLookupSparseOptionsT : public flatbuffers::NativeTable {
05220   typedef EmbeddingLookupSparseOptions TableType;
05221   CombinerType combiner;
05222   EmbeddingLookupSparseOptionsT()
05223       : combiner(CombinerType_SUM) {
05224   }
05225 };
05226 
05227 struct EmbeddingLookupSparseOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
05228   typedef EmbeddingLookupSparseOptionsT NativeTableType;
05229   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
05230     VT_COMBINER = 4
05231   };
05232   CombinerType combiner() const {
05233     return static_cast<CombinerType>(GetField<int8_t>(VT_COMBINER, 0));
05234   }
05235   bool Verify(flatbuffers::Verifier &verifier) const {
05236     return VerifyTableStart(verifier) &&
05237            VerifyField<int8_t>(verifier, VT_COMBINER) &&
05238            verifier.EndTable();
05239   }
05240   EmbeddingLookupSparseOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
05241   void UnPackTo(EmbeddingLookupSparseOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
05242   static flatbuffers::Offset<EmbeddingLookupSparseOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const EmbeddingLookupSparseOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
05243 };
05244 
05245 struct EmbeddingLookupSparseOptionsBuilder {
05246   flatbuffers::FlatBufferBuilder &fbb_;
05247   flatbuffers::uoffset_t start_;
05248   void add_combiner(CombinerType combiner) {
05249     fbb_.AddElement<int8_t>(EmbeddingLookupSparseOptions::VT_COMBINER, static_cast<int8_t>(combiner), 0);
05250   }
05251   explicit EmbeddingLookupSparseOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
05252         : fbb_(_fbb) {
05253     start_ = fbb_.StartTable();
05254   }
05255   EmbeddingLookupSparseOptionsBuilder &operator=(const EmbeddingLookupSparseOptionsBuilder &);
05256   flatbuffers::Offset<EmbeddingLookupSparseOptions> Finish() {
05257     const auto end = fbb_.EndTable(start_);
05258     auto o = flatbuffers::Offset<EmbeddingLookupSparseOptions>(end);
05259     return o;
05260   }
05261 };
05262 
05263 inline flatbuffers::Offset<EmbeddingLookupSparseOptions> CreateEmbeddingLookupSparseOptions(
05264     flatbuffers::FlatBufferBuilder &_fbb,
05265     CombinerType combiner = CombinerType_SUM) {
05266   EmbeddingLookupSparseOptionsBuilder builder_(_fbb);
05267   builder_.add_combiner(combiner);
05268   return builder_.Finish();
05269 }
05270 
05271 flatbuffers::Offset<EmbeddingLookupSparseOptions> CreateEmbeddingLookupSparseOptions(flatbuffers::FlatBufferBuilder &_fbb, const EmbeddingLookupSparseOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
05272 
05273 struct GatherOptionsT : public flatbuffers::NativeTable {
05274   typedef GatherOptions TableType;
05275   int32_t axis;
05276   GatherOptionsT()
05277       : axis(0) {
05278   }
05279 };
05280 
05281 struct GatherOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
05282   typedef GatherOptionsT NativeTableType;
05283   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
05284     VT_AXIS = 4
05285   };
05286   int32_t axis() const {
05287     return GetField<int32_t>(VT_AXIS, 0);
05288   }
05289   bool Verify(flatbuffers::Verifier &verifier) const {
05290     return VerifyTableStart(verifier) &&
05291            VerifyField<int32_t>(verifier, VT_AXIS) &&
05292            verifier.EndTable();
05293   }
05294   GatherOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
05295   void UnPackTo(GatherOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
05296   static flatbuffers::Offset<GatherOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const GatherOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
05297 };
05298 
05299 struct GatherOptionsBuilder {
05300   flatbuffers::FlatBufferBuilder &fbb_;
05301   flatbuffers::uoffset_t start_;
05302   void add_axis(int32_t axis) {
05303     fbb_.AddElement<int32_t>(GatherOptions::VT_AXIS, axis, 0);
05304   }
05305   explicit GatherOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
05306         : fbb_(_fbb) {
05307     start_ = fbb_.StartTable();
05308   }
05309   GatherOptionsBuilder &operator=(const GatherOptionsBuilder &);
05310   flatbuffers::Offset<GatherOptions> Finish() {
05311     const auto end = fbb_.EndTable(start_);
05312     auto o = flatbuffers::Offset<GatherOptions>(end);
05313     return o;
05314   }
05315 };
05316 
05317 inline flatbuffers::Offset<GatherOptions> CreateGatherOptions(
05318     flatbuffers::FlatBufferBuilder &_fbb,
05319     int32_t axis = 0) {
05320   GatherOptionsBuilder builder_(_fbb);
05321   builder_.add_axis(axis);
05322   return builder_.Finish();
05323 }
05324 
05325 flatbuffers::Offset<GatherOptions> CreateGatherOptions(flatbuffers::FlatBufferBuilder &_fbb, const GatherOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
05326 
05327 struct TransposeOptionsT : public flatbuffers::NativeTable {
05328   typedef TransposeOptions TableType;
05329   TransposeOptionsT() {
05330   }
05331 };
05332 
05333 struct TransposeOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
05334   typedef TransposeOptionsT NativeTableType;
05335   bool Verify(flatbuffers::Verifier &verifier) const {
05336     return VerifyTableStart(verifier) &&
05337            verifier.EndTable();
05338   }
05339   TransposeOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
05340   void UnPackTo(TransposeOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
05341   static flatbuffers::Offset<TransposeOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const TransposeOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
05342 };
05343 
05344 struct TransposeOptionsBuilder {
05345   flatbuffers::FlatBufferBuilder &fbb_;
05346   flatbuffers::uoffset_t start_;
05347   explicit TransposeOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
05348         : fbb_(_fbb) {
05349     start_ = fbb_.StartTable();
05350   }
05351   TransposeOptionsBuilder &operator=(const TransposeOptionsBuilder &);
05352   flatbuffers::Offset<TransposeOptions> Finish() {
05353     const auto end = fbb_.EndTable(start_);
05354     auto o = flatbuffers::Offset<TransposeOptions>(end);
05355     return o;
05356   }
05357 };
05358 
05359 inline flatbuffers::Offset<TransposeOptions> CreateTransposeOptions(
05360     flatbuffers::FlatBufferBuilder &_fbb) {
05361   TransposeOptionsBuilder builder_(_fbb);
05362   return builder_.Finish();
05363 }
05364 
05365 flatbuffers::Offset<TransposeOptions> CreateTransposeOptions(flatbuffers::FlatBufferBuilder &_fbb, const TransposeOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
05366 
05367 struct ExpOptionsT : public flatbuffers::NativeTable {
05368   typedef ExpOptions TableType;
05369   ExpOptionsT() {
05370   }
05371 };
05372 
05373 struct ExpOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
05374   typedef ExpOptionsT NativeTableType;
05375   bool Verify(flatbuffers::Verifier &verifier) const {
05376     return VerifyTableStart(verifier) &&
05377            verifier.EndTable();
05378   }
05379   ExpOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
05380   void UnPackTo(ExpOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
05381   static flatbuffers::Offset<ExpOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const ExpOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
05382 };
05383 
05384 struct ExpOptionsBuilder {
05385   flatbuffers::FlatBufferBuilder &fbb_;
05386   flatbuffers::uoffset_t start_;
05387   explicit ExpOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
05388         : fbb_(_fbb) {
05389     start_ = fbb_.StartTable();
05390   }
05391   ExpOptionsBuilder &operator=(const ExpOptionsBuilder &);
05392   flatbuffers::Offset<ExpOptions> Finish() {
05393     const auto end = fbb_.EndTable(start_);
05394     auto o = flatbuffers::Offset<ExpOptions>(end);
05395     return o;
05396   }
05397 };
05398 
05399 inline flatbuffers::Offset<ExpOptions> CreateExpOptions(
05400     flatbuffers::FlatBufferBuilder &_fbb) {
05401   ExpOptionsBuilder builder_(_fbb);
05402   return builder_.Finish();
05403 }
05404 
05405 flatbuffers::Offset<ExpOptions> CreateExpOptions(flatbuffers::FlatBufferBuilder &_fbb, const ExpOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
05406 
05407 struct CosOptionsT : public flatbuffers::NativeTable {
05408   typedef CosOptions TableType;
05409   CosOptionsT() {
05410   }
05411 };
05412 
05413 struct CosOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
05414   typedef CosOptionsT NativeTableType;
05415   bool Verify(flatbuffers::Verifier &verifier) const {
05416     return VerifyTableStart(verifier) &&
05417            verifier.EndTable();
05418   }
05419   CosOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
05420   void UnPackTo(CosOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
05421   static flatbuffers::Offset<CosOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const CosOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
05422 };
05423 
05424 struct CosOptionsBuilder {
05425   flatbuffers::FlatBufferBuilder &fbb_;
05426   flatbuffers::uoffset_t start_;
05427   explicit CosOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
05428         : fbb_(_fbb) {
05429     start_ = fbb_.StartTable();
05430   }
05431   CosOptionsBuilder &operator=(const CosOptionsBuilder &);
05432   flatbuffers::Offset<CosOptions> Finish() {
05433     const auto end = fbb_.EndTable(start_);
05434     auto o = flatbuffers::Offset<CosOptions>(end);
05435     return o;
05436   }
05437 };
05438 
05439 inline flatbuffers::Offset<CosOptions> CreateCosOptions(
05440     flatbuffers::FlatBufferBuilder &_fbb) {
05441   CosOptionsBuilder builder_(_fbb);
05442   return builder_.Finish();
05443 }
05444 
05445 flatbuffers::Offset<CosOptions> CreateCosOptions(flatbuffers::FlatBufferBuilder &_fbb, const CosOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
05446 
05447 struct ReducerOptionsT : public flatbuffers::NativeTable {
05448   typedef ReducerOptions TableType;
05449   bool keep_dims;
05450   ReducerOptionsT()
05451       : keep_dims(false) {
05452   }
05453 };
05454 
05455 struct ReducerOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
05456   typedef ReducerOptionsT NativeTableType;
05457   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
05458     VT_KEEP_DIMS = 4
05459   };
05460   bool keep_dims() const {
05461     return GetField<uint8_t>(VT_KEEP_DIMS, 0) != 0;
05462   }
05463   bool Verify(flatbuffers::Verifier &verifier) const {
05464     return VerifyTableStart(verifier) &&
05465            VerifyField<uint8_t>(verifier, VT_KEEP_DIMS) &&
05466            verifier.EndTable();
05467   }
05468   ReducerOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
05469   void UnPackTo(ReducerOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
05470   static flatbuffers::Offset<ReducerOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const ReducerOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
05471 };
05472 
05473 struct ReducerOptionsBuilder {
05474   flatbuffers::FlatBufferBuilder &fbb_;
05475   flatbuffers::uoffset_t start_;
05476   void add_keep_dims(bool keep_dims) {
05477     fbb_.AddElement<uint8_t>(ReducerOptions::VT_KEEP_DIMS, static_cast<uint8_t>(keep_dims), 0);
05478   }
05479   explicit ReducerOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
05480         : fbb_(_fbb) {
05481     start_ = fbb_.StartTable();
05482   }
05483   ReducerOptionsBuilder &operator=(const ReducerOptionsBuilder &);
05484   flatbuffers::Offset<ReducerOptions> Finish() {
05485     const auto end = fbb_.EndTable(start_);
05486     auto o = flatbuffers::Offset<ReducerOptions>(end);
05487     return o;
05488   }
05489 };
05490 
05491 inline flatbuffers::Offset<ReducerOptions> CreateReducerOptions(
05492     flatbuffers::FlatBufferBuilder &_fbb,
05493     bool keep_dims = false) {
05494   ReducerOptionsBuilder builder_(_fbb);
05495   builder_.add_keep_dims(keep_dims);
05496   return builder_.Finish();
05497 }
05498 
05499 flatbuffers::Offset<ReducerOptions> CreateReducerOptions(flatbuffers::FlatBufferBuilder &_fbb, const ReducerOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
05500 
05501 struct SqueezeOptionsT : public flatbuffers::NativeTable {
05502   typedef SqueezeOptions TableType;
05503   std::vector<int32_t> squeeze_dims;
05504   SqueezeOptionsT() {
05505   }
05506 };
05507 
05508 struct SqueezeOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
05509   typedef SqueezeOptionsT NativeTableType;
05510   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
05511     VT_SQUEEZE_DIMS = 4
05512   };
05513   const flatbuffers::Vector<int32_t> *squeeze_dims() const {
05514     return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_SQUEEZE_DIMS);
05515   }
05516   bool Verify(flatbuffers::Verifier &verifier) const {
05517     return VerifyTableStart(verifier) &&
05518            VerifyOffset(verifier, VT_SQUEEZE_DIMS) &&
05519            verifier.VerifyVector(squeeze_dims()) &&
05520            verifier.EndTable();
05521   }
05522   SqueezeOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
05523   void UnPackTo(SqueezeOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
05524   static flatbuffers::Offset<SqueezeOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const SqueezeOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
05525 };
05526 
05527 struct SqueezeOptionsBuilder {
05528   flatbuffers::FlatBufferBuilder &fbb_;
05529   flatbuffers::uoffset_t start_;
05530   void add_squeeze_dims(flatbuffers::Offset<flatbuffers::Vector<int32_t>> squeeze_dims) {
05531     fbb_.AddOffset(SqueezeOptions::VT_SQUEEZE_DIMS, squeeze_dims);
05532   }
05533   explicit SqueezeOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
05534         : fbb_(_fbb) {
05535     start_ = fbb_.StartTable();
05536   }
05537   SqueezeOptionsBuilder &operator=(const SqueezeOptionsBuilder &);
05538   flatbuffers::Offset<SqueezeOptions> Finish() {
05539     const auto end = fbb_.EndTable(start_);
05540     auto o = flatbuffers::Offset<SqueezeOptions>(end);
05541     return o;
05542   }
05543 };
05544 
05545 inline flatbuffers::Offset<SqueezeOptions> CreateSqueezeOptions(
05546     flatbuffers::FlatBufferBuilder &_fbb,
05547     flatbuffers::Offset<flatbuffers::Vector<int32_t>> squeeze_dims = 0) {
05548   SqueezeOptionsBuilder builder_(_fbb);
05549   builder_.add_squeeze_dims(squeeze_dims);
05550   return builder_.Finish();
05551 }
05552 
05553 inline flatbuffers::Offset<SqueezeOptions> CreateSqueezeOptionsDirect(
05554     flatbuffers::FlatBufferBuilder &_fbb,
05555     const std::vector<int32_t> *squeeze_dims = nullptr) {
05556   auto squeeze_dims__ = squeeze_dims ? _fbb.CreateVector<int32_t>(*squeeze_dims) : 0;
05557   return tflite::CreateSqueezeOptions(
05558       _fbb,
05559       squeeze_dims__);
05560 }
05561 
05562 flatbuffers::Offset<SqueezeOptions> CreateSqueezeOptions(flatbuffers::FlatBufferBuilder &_fbb, const SqueezeOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
05563 
05564 struct SplitOptionsT : public flatbuffers::NativeTable {
05565   typedef SplitOptions TableType;
05566   int32_t num_splits;
05567   SplitOptionsT()
05568       : num_splits(0) {
05569   }
05570 };
05571 
05572 struct SplitOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
05573   typedef SplitOptionsT NativeTableType;
05574   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
05575     VT_NUM_SPLITS = 4
05576   };
05577   int32_t num_splits() const {
05578     return GetField<int32_t>(VT_NUM_SPLITS, 0);
05579   }
05580   bool Verify(flatbuffers::Verifier &verifier) const {
05581     return VerifyTableStart(verifier) &&
05582            VerifyField<int32_t>(verifier, VT_NUM_SPLITS) &&
05583            verifier.EndTable();
05584   }
05585   SplitOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
05586   void UnPackTo(SplitOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
05587   static flatbuffers::Offset<SplitOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const SplitOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
05588 };
05589 
05590 struct SplitOptionsBuilder {
05591   flatbuffers::FlatBufferBuilder &fbb_;
05592   flatbuffers::uoffset_t start_;
05593   void add_num_splits(int32_t num_splits) {
05594     fbb_.AddElement<int32_t>(SplitOptions::VT_NUM_SPLITS, num_splits, 0);
05595   }
05596   explicit SplitOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
05597         : fbb_(_fbb) {
05598     start_ = fbb_.StartTable();
05599   }
05600   SplitOptionsBuilder &operator=(const SplitOptionsBuilder &);
05601   flatbuffers::Offset<SplitOptions> Finish() {
05602     const auto end = fbb_.EndTable(start_);
05603     auto o = flatbuffers::Offset<SplitOptions>(end);
05604     return o;
05605   }
05606 };
05607 
05608 inline flatbuffers::Offset<SplitOptions> CreateSplitOptions(
05609     flatbuffers::FlatBufferBuilder &_fbb,
05610     int32_t num_splits = 0) {
05611   SplitOptionsBuilder builder_(_fbb);
05612   builder_.add_num_splits(num_splits);
05613   return builder_.Finish();
05614 }
05615 
05616 flatbuffers::Offset<SplitOptions> CreateSplitOptions(flatbuffers::FlatBufferBuilder &_fbb, const SplitOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
05617 
05618 struct SplitVOptionsT : public flatbuffers::NativeTable {
05619   typedef SplitVOptions TableType;
05620   int32_t num_splits;
05621   SplitVOptionsT()
05622       : num_splits(0) {
05623   }
05624 };
05625 
05626 struct SplitVOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
05627   typedef SplitVOptionsT NativeTableType;
05628   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
05629     VT_NUM_SPLITS = 4
05630   };
05631   int32_t num_splits() const {
05632     return GetField<int32_t>(VT_NUM_SPLITS, 0);
05633   }
05634   bool Verify(flatbuffers::Verifier &verifier) const {
05635     return VerifyTableStart(verifier) &&
05636            VerifyField<int32_t>(verifier, VT_NUM_SPLITS) &&
05637            verifier.EndTable();
05638   }
05639   SplitVOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
05640   void UnPackTo(SplitVOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
05641   static flatbuffers::Offset<SplitVOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const SplitVOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
05642 };
05643 
05644 struct SplitVOptionsBuilder {
05645   flatbuffers::FlatBufferBuilder &fbb_;
05646   flatbuffers::uoffset_t start_;
05647   void add_num_splits(int32_t num_splits) {
05648     fbb_.AddElement<int32_t>(SplitVOptions::VT_NUM_SPLITS, num_splits, 0);
05649   }
05650   explicit SplitVOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
05651         : fbb_(_fbb) {
05652     start_ = fbb_.StartTable();
05653   }
05654   SplitVOptionsBuilder &operator=(const SplitVOptionsBuilder &);
05655   flatbuffers::Offset<SplitVOptions> Finish() {
05656     const auto end = fbb_.EndTable(start_);
05657     auto o = flatbuffers::Offset<SplitVOptions>(end);
05658     return o;
05659   }
05660 };
05661 
05662 inline flatbuffers::Offset<SplitVOptions> CreateSplitVOptions(
05663     flatbuffers::FlatBufferBuilder &_fbb,
05664     int32_t num_splits = 0) {
05665   SplitVOptionsBuilder builder_(_fbb);
05666   builder_.add_num_splits(num_splits);
05667   return builder_.Finish();
05668 }
05669 
05670 flatbuffers::Offset<SplitVOptions> CreateSplitVOptions(flatbuffers::FlatBufferBuilder &_fbb, const SplitVOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
05671 
05672 struct StridedSliceOptionsT : public flatbuffers::NativeTable {
05673   typedef StridedSliceOptions TableType;
05674   int32_t begin_mask;
05675   int32_t end_mask;
05676   int32_t ellipsis_mask;
05677   int32_t new_axis_mask;
05678   int32_t shrink_axis_mask;
05679   StridedSliceOptionsT()
05680       : begin_mask(0),
05681         end_mask(0),
05682         ellipsis_mask(0),
05683         new_axis_mask(0),
05684         shrink_axis_mask(0) {
05685   }
05686 };
05687 
05688 struct StridedSliceOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
05689   typedef StridedSliceOptionsT NativeTableType;
05690   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
05691     VT_BEGIN_MASK = 4,
05692     VT_END_MASK = 6,
05693     VT_ELLIPSIS_MASK = 8,
05694     VT_NEW_AXIS_MASK = 10,
05695     VT_SHRINK_AXIS_MASK = 12
05696   };
05697   int32_t begin_mask() const {
05698     return GetField<int32_t>(VT_BEGIN_MASK, 0);
05699   }
05700   int32_t end_mask() const {
05701     return GetField<int32_t>(VT_END_MASK, 0);
05702   }
05703   int32_t ellipsis_mask() const {
05704     return GetField<int32_t>(VT_ELLIPSIS_MASK, 0);
05705   }
05706   int32_t new_axis_mask() const {
05707     return GetField<int32_t>(VT_NEW_AXIS_MASK, 0);
05708   }
05709   int32_t shrink_axis_mask() const {
05710     return GetField<int32_t>(VT_SHRINK_AXIS_MASK, 0);
05711   }
05712   bool Verify(flatbuffers::Verifier &verifier) const {
05713     return VerifyTableStart(verifier) &&
05714            VerifyField<int32_t>(verifier, VT_BEGIN_MASK) &&
05715            VerifyField<int32_t>(verifier, VT_END_MASK) &&
05716            VerifyField<int32_t>(verifier, VT_ELLIPSIS_MASK) &&
05717            VerifyField<int32_t>(verifier, VT_NEW_AXIS_MASK) &&
05718            VerifyField<int32_t>(verifier, VT_SHRINK_AXIS_MASK) &&
05719            verifier.EndTable();
05720   }
05721   StridedSliceOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
05722   void UnPackTo(StridedSliceOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
05723   static flatbuffers::Offset<StridedSliceOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const StridedSliceOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
05724 };
05725 
05726 struct StridedSliceOptionsBuilder {
05727   flatbuffers::FlatBufferBuilder &fbb_;
05728   flatbuffers::uoffset_t start_;
05729   void add_begin_mask(int32_t begin_mask) {
05730     fbb_.AddElement<int32_t>(StridedSliceOptions::VT_BEGIN_MASK, begin_mask, 0);
05731   }
05732   void add_end_mask(int32_t end_mask) {
05733     fbb_.AddElement<int32_t>(StridedSliceOptions::VT_END_MASK, end_mask, 0);
05734   }
05735   void add_ellipsis_mask(int32_t ellipsis_mask) {
05736     fbb_.AddElement<int32_t>(StridedSliceOptions::VT_ELLIPSIS_MASK, ellipsis_mask, 0);
05737   }
05738   void add_new_axis_mask(int32_t new_axis_mask) {
05739     fbb_.AddElement<int32_t>(StridedSliceOptions::VT_NEW_AXIS_MASK, new_axis_mask, 0);
05740   }
05741   void add_shrink_axis_mask(int32_t shrink_axis_mask) {
05742     fbb_.AddElement<int32_t>(StridedSliceOptions::VT_SHRINK_AXIS_MASK, shrink_axis_mask, 0);
05743   }
05744   explicit StridedSliceOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
05745         : fbb_(_fbb) {
05746     start_ = fbb_.StartTable();
05747   }
05748   StridedSliceOptionsBuilder &operator=(const StridedSliceOptionsBuilder &);
05749   flatbuffers::Offset<StridedSliceOptions> Finish() {
05750     const auto end = fbb_.EndTable(start_);
05751     auto o = flatbuffers::Offset<StridedSliceOptions>(end);
05752     return o;
05753   }
05754 };
05755 
05756 inline flatbuffers::Offset<StridedSliceOptions> CreateStridedSliceOptions(
05757     flatbuffers::FlatBufferBuilder &_fbb,
05758     int32_t begin_mask = 0,
05759     int32_t end_mask = 0,
05760     int32_t ellipsis_mask = 0,
05761     int32_t new_axis_mask = 0,
05762     int32_t shrink_axis_mask = 0) {
05763   StridedSliceOptionsBuilder builder_(_fbb);
05764   builder_.add_shrink_axis_mask(shrink_axis_mask);
05765   builder_.add_new_axis_mask(new_axis_mask);
05766   builder_.add_ellipsis_mask(ellipsis_mask);
05767   builder_.add_end_mask(end_mask);
05768   builder_.add_begin_mask(begin_mask);
05769   return builder_.Finish();
05770 }
05771 
05772 flatbuffers::Offset<StridedSliceOptions> CreateStridedSliceOptions(flatbuffers::FlatBufferBuilder &_fbb, const StridedSliceOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
05773 
05774 struct LogSoftmaxOptionsT : public flatbuffers::NativeTable {
05775   typedef LogSoftmaxOptions TableType;
05776   LogSoftmaxOptionsT() {
05777   }
05778 };
05779 
05780 struct LogSoftmaxOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
05781   typedef LogSoftmaxOptionsT NativeTableType;
05782   bool Verify(flatbuffers::Verifier &verifier) const {
05783     return VerifyTableStart(verifier) &&
05784            verifier.EndTable();
05785   }
05786   LogSoftmaxOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
05787   void UnPackTo(LogSoftmaxOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
05788   static flatbuffers::Offset<LogSoftmaxOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const LogSoftmaxOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
05789 };
05790 
05791 struct LogSoftmaxOptionsBuilder {
05792   flatbuffers::FlatBufferBuilder &fbb_;
05793   flatbuffers::uoffset_t start_;
05794   explicit LogSoftmaxOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
05795         : fbb_(_fbb) {
05796     start_ = fbb_.StartTable();
05797   }
05798   LogSoftmaxOptionsBuilder &operator=(const LogSoftmaxOptionsBuilder &);
05799   flatbuffers::Offset<LogSoftmaxOptions> Finish() {
05800     const auto end = fbb_.EndTable(start_);
05801     auto o = flatbuffers::Offset<LogSoftmaxOptions>(end);
05802     return o;
05803   }
05804 };
05805 
05806 inline flatbuffers::Offset<LogSoftmaxOptions> CreateLogSoftmaxOptions(
05807     flatbuffers::FlatBufferBuilder &_fbb) {
05808   LogSoftmaxOptionsBuilder builder_(_fbb);
05809   return builder_.Finish();
05810 }
05811 
05812 flatbuffers::Offset<LogSoftmaxOptions> CreateLogSoftmaxOptions(flatbuffers::FlatBufferBuilder &_fbb, const LogSoftmaxOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
05813 
05814 struct CastOptionsT : public flatbuffers::NativeTable {
05815   typedef CastOptions TableType;
05816   TensorType in_data_type;
05817   TensorType out_data_type;
05818   CastOptionsT()
05819       : in_data_type(TensorType_FLOAT32),
05820         out_data_type(TensorType_FLOAT32) {
05821   }
05822 };
05823 
05824 struct CastOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
05825   typedef CastOptionsT NativeTableType;
05826   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
05827     VT_IN_DATA_TYPE = 4,
05828     VT_OUT_DATA_TYPE = 6
05829   };
05830   TensorType in_data_type() const {
05831     return static_cast<TensorType>(GetField<int8_t>(VT_IN_DATA_TYPE, 0));
05832   }
05833   TensorType out_data_type() const {
05834     return static_cast<TensorType>(GetField<int8_t>(VT_OUT_DATA_TYPE, 0));
05835   }
05836   bool Verify(flatbuffers::Verifier &verifier) const {
05837     return VerifyTableStart(verifier) &&
05838            VerifyField<int8_t>(verifier, VT_IN_DATA_TYPE) &&
05839            VerifyField<int8_t>(verifier, VT_OUT_DATA_TYPE) &&
05840            verifier.EndTable();
05841   }
05842   CastOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
05843   void UnPackTo(CastOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
05844   static flatbuffers::Offset<CastOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const CastOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
05845 };
05846 
05847 struct CastOptionsBuilder {
05848   flatbuffers::FlatBufferBuilder &fbb_;
05849   flatbuffers::uoffset_t start_;
05850   void add_in_data_type(TensorType in_data_type) {
05851     fbb_.AddElement<int8_t>(CastOptions::VT_IN_DATA_TYPE, static_cast<int8_t>(in_data_type), 0);
05852   }
05853   void add_out_data_type(TensorType out_data_type) {
05854     fbb_.AddElement<int8_t>(CastOptions::VT_OUT_DATA_TYPE, static_cast<int8_t>(out_data_type), 0);
05855   }
05856   explicit CastOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
05857         : fbb_(_fbb) {
05858     start_ = fbb_.StartTable();
05859   }
05860   CastOptionsBuilder &operator=(const CastOptionsBuilder &);
05861   flatbuffers::Offset<CastOptions> Finish() {
05862     const auto end = fbb_.EndTable(start_);
05863     auto o = flatbuffers::Offset<CastOptions>(end);
05864     return o;
05865   }
05866 };
05867 
05868 inline flatbuffers::Offset<CastOptions> CreateCastOptions(
05869     flatbuffers::FlatBufferBuilder &_fbb,
05870     TensorType in_data_type = TensorType_FLOAT32,
05871     TensorType out_data_type = TensorType_FLOAT32) {
05872   CastOptionsBuilder builder_(_fbb);
05873   builder_.add_out_data_type(out_data_type);
05874   builder_.add_in_data_type(in_data_type);
05875   return builder_.Finish();
05876 }
05877 
05878 flatbuffers::Offset<CastOptions> CreateCastOptions(flatbuffers::FlatBufferBuilder &_fbb, const CastOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
05879 
05880 struct DequantizeOptionsT : public flatbuffers::NativeTable {
05881   typedef DequantizeOptions TableType;
05882   DequantizeOptionsT() {
05883   }
05884 };
05885 
05886 struct DequantizeOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
05887   typedef DequantizeOptionsT NativeTableType;
05888   bool Verify(flatbuffers::Verifier &verifier) const {
05889     return VerifyTableStart(verifier) &&
05890            verifier.EndTable();
05891   }
05892   DequantizeOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
05893   void UnPackTo(DequantizeOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
05894   static flatbuffers::Offset<DequantizeOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const DequantizeOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
05895 };
05896 
05897 struct DequantizeOptionsBuilder {
05898   flatbuffers::FlatBufferBuilder &fbb_;
05899   flatbuffers::uoffset_t start_;
05900   explicit DequantizeOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
05901         : fbb_(_fbb) {
05902     start_ = fbb_.StartTable();
05903   }
05904   DequantizeOptionsBuilder &operator=(const DequantizeOptionsBuilder &);
05905   flatbuffers::Offset<DequantizeOptions> Finish() {
05906     const auto end = fbb_.EndTable(start_);
05907     auto o = flatbuffers::Offset<DequantizeOptions>(end);
05908     return o;
05909   }
05910 };
05911 
05912 inline flatbuffers::Offset<DequantizeOptions> CreateDequantizeOptions(
05913     flatbuffers::FlatBufferBuilder &_fbb) {
05914   DequantizeOptionsBuilder builder_(_fbb);
05915   return builder_.Finish();
05916 }
05917 
05918 flatbuffers::Offset<DequantizeOptions> CreateDequantizeOptions(flatbuffers::FlatBufferBuilder &_fbb, const DequantizeOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
05919 
05920 struct MaximumMinimumOptionsT : public flatbuffers::NativeTable {
05921   typedef MaximumMinimumOptions TableType;
05922   MaximumMinimumOptionsT() {
05923   }
05924 };
05925 
05926 struct MaximumMinimumOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
05927   typedef MaximumMinimumOptionsT NativeTableType;
05928   bool Verify(flatbuffers::Verifier &verifier) const {
05929     return VerifyTableStart(verifier) &&
05930            verifier.EndTable();
05931   }
05932   MaximumMinimumOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
05933   void UnPackTo(MaximumMinimumOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
05934   static flatbuffers::Offset<MaximumMinimumOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const MaximumMinimumOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
05935 };
05936 
05937 struct MaximumMinimumOptionsBuilder {
05938   flatbuffers::FlatBufferBuilder &fbb_;
05939   flatbuffers::uoffset_t start_;
05940   explicit MaximumMinimumOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
05941         : fbb_(_fbb) {
05942     start_ = fbb_.StartTable();
05943   }
05944   MaximumMinimumOptionsBuilder &operator=(const MaximumMinimumOptionsBuilder &);
05945   flatbuffers::Offset<MaximumMinimumOptions> Finish() {
05946     const auto end = fbb_.EndTable(start_);
05947     auto o = flatbuffers::Offset<MaximumMinimumOptions>(end);
05948     return o;
05949   }
05950 };
05951 
05952 inline flatbuffers::Offset<MaximumMinimumOptions> CreateMaximumMinimumOptions(
05953     flatbuffers::FlatBufferBuilder &_fbb) {
05954   MaximumMinimumOptionsBuilder builder_(_fbb);
05955   return builder_.Finish();
05956 }
05957 
05958 flatbuffers::Offset<MaximumMinimumOptions> CreateMaximumMinimumOptions(flatbuffers::FlatBufferBuilder &_fbb, const MaximumMinimumOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
05959 
05960 struct TileOptionsT : public flatbuffers::NativeTable {
05961   typedef TileOptions TableType;
05962   TileOptionsT() {
05963   }
05964 };
05965 
05966 struct TileOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
05967   typedef TileOptionsT NativeTableType;
05968   bool Verify(flatbuffers::Verifier &verifier) const {
05969     return VerifyTableStart(verifier) &&
05970            verifier.EndTable();
05971   }
05972   TileOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
05973   void UnPackTo(TileOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
05974   static flatbuffers::Offset<TileOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const TileOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
05975 };
05976 
05977 struct TileOptionsBuilder {
05978   flatbuffers::FlatBufferBuilder &fbb_;
05979   flatbuffers::uoffset_t start_;
05980   explicit TileOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
05981         : fbb_(_fbb) {
05982     start_ = fbb_.StartTable();
05983   }
05984   TileOptionsBuilder &operator=(const TileOptionsBuilder &);
05985   flatbuffers::Offset<TileOptions> Finish() {
05986     const auto end = fbb_.EndTable(start_);
05987     auto o = flatbuffers::Offset<TileOptions>(end);
05988     return o;
05989   }
05990 };
05991 
05992 inline flatbuffers::Offset<TileOptions> CreateTileOptions(
05993     flatbuffers::FlatBufferBuilder &_fbb) {
05994   TileOptionsBuilder builder_(_fbb);
05995   return builder_.Finish();
05996 }
05997 
05998 flatbuffers::Offset<TileOptions> CreateTileOptions(flatbuffers::FlatBufferBuilder &_fbb, const TileOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
05999 
06000 struct ArgMaxOptionsT : public flatbuffers::NativeTable {
06001   typedef ArgMaxOptions TableType;
06002   TensorType output_type;
06003   ArgMaxOptionsT()
06004       : output_type(TensorType_FLOAT32) {
06005   }
06006 };
06007 
06008 struct ArgMaxOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
06009   typedef ArgMaxOptionsT NativeTableType;
06010   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
06011     VT_OUTPUT_TYPE = 4
06012   };
06013   TensorType output_type() const {
06014     return static_cast<TensorType>(GetField<int8_t>(VT_OUTPUT_TYPE, 0));
06015   }
06016   bool Verify(flatbuffers::Verifier &verifier) const {
06017     return VerifyTableStart(verifier) &&
06018            VerifyField<int8_t>(verifier, VT_OUTPUT_TYPE) &&
06019            verifier.EndTable();
06020   }
06021   ArgMaxOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
06022   void UnPackTo(ArgMaxOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
06023   static flatbuffers::Offset<ArgMaxOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const ArgMaxOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
06024 };
06025 
06026 struct ArgMaxOptionsBuilder {
06027   flatbuffers::FlatBufferBuilder &fbb_;
06028   flatbuffers::uoffset_t start_;
06029   void add_output_type(TensorType output_type) {
06030     fbb_.AddElement<int8_t>(ArgMaxOptions::VT_OUTPUT_TYPE, static_cast<int8_t>(output_type), 0);
06031   }
06032   explicit ArgMaxOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
06033         : fbb_(_fbb) {
06034     start_ = fbb_.StartTable();
06035   }
06036   ArgMaxOptionsBuilder &operator=(const ArgMaxOptionsBuilder &);
06037   flatbuffers::Offset<ArgMaxOptions> Finish() {
06038     const auto end = fbb_.EndTable(start_);
06039     auto o = flatbuffers::Offset<ArgMaxOptions>(end);
06040     return o;
06041   }
06042 };
06043 
06044 inline flatbuffers::Offset<ArgMaxOptions> CreateArgMaxOptions(
06045     flatbuffers::FlatBufferBuilder &_fbb,
06046     TensorType output_type = TensorType_FLOAT32) {
06047   ArgMaxOptionsBuilder builder_(_fbb);
06048   builder_.add_output_type(output_type);
06049   return builder_.Finish();
06050 }
06051 
06052 flatbuffers::Offset<ArgMaxOptions> CreateArgMaxOptions(flatbuffers::FlatBufferBuilder &_fbb, const ArgMaxOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
06053 
06054 struct ArgMinOptionsT : public flatbuffers::NativeTable {
06055   typedef ArgMinOptions TableType;
06056   TensorType output_type;
06057   ArgMinOptionsT()
06058       : output_type(TensorType_FLOAT32) {
06059   }
06060 };
06061 
06062 struct ArgMinOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
06063   typedef ArgMinOptionsT NativeTableType;
06064   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
06065     VT_OUTPUT_TYPE = 4
06066   };
06067   TensorType output_type() const {
06068     return static_cast<TensorType>(GetField<int8_t>(VT_OUTPUT_TYPE, 0));
06069   }
06070   bool Verify(flatbuffers::Verifier &verifier) const {
06071     return VerifyTableStart(verifier) &&
06072            VerifyField<int8_t>(verifier, VT_OUTPUT_TYPE) &&
06073            verifier.EndTable();
06074   }
06075   ArgMinOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
06076   void UnPackTo(ArgMinOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
06077   static flatbuffers::Offset<ArgMinOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const ArgMinOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
06078 };
06079 
06080 struct ArgMinOptionsBuilder {
06081   flatbuffers::FlatBufferBuilder &fbb_;
06082   flatbuffers::uoffset_t start_;
06083   void add_output_type(TensorType output_type) {
06084     fbb_.AddElement<int8_t>(ArgMinOptions::VT_OUTPUT_TYPE, static_cast<int8_t>(output_type), 0);
06085   }
06086   explicit ArgMinOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
06087         : fbb_(_fbb) {
06088     start_ = fbb_.StartTable();
06089   }
06090   ArgMinOptionsBuilder &operator=(const ArgMinOptionsBuilder &);
06091   flatbuffers::Offset<ArgMinOptions> Finish() {
06092     const auto end = fbb_.EndTable(start_);
06093     auto o = flatbuffers::Offset<ArgMinOptions>(end);
06094     return o;
06095   }
06096 };
06097 
06098 inline flatbuffers::Offset<ArgMinOptions> CreateArgMinOptions(
06099     flatbuffers::FlatBufferBuilder &_fbb,
06100     TensorType output_type = TensorType_FLOAT32) {
06101   ArgMinOptionsBuilder builder_(_fbb);
06102   builder_.add_output_type(output_type);
06103   return builder_.Finish();
06104 }
06105 
06106 flatbuffers::Offset<ArgMinOptions> CreateArgMinOptions(flatbuffers::FlatBufferBuilder &_fbb, const ArgMinOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
06107 
06108 struct GreaterOptionsT : public flatbuffers::NativeTable {
06109   typedef GreaterOptions TableType;
06110   GreaterOptionsT() {
06111   }
06112 };
06113 
06114 struct GreaterOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
06115   typedef GreaterOptionsT NativeTableType;
06116   bool Verify(flatbuffers::Verifier &verifier) const {
06117     return VerifyTableStart(verifier) &&
06118            verifier.EndTable();
06119   }
06120   GreaterOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
06121   void UnPackTo(GreaterOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
06122   static flatbuffers::Offset<GreaterOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const GreaterOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
06123 };
06124 
06125 struct GreaterOptionsBuilder {
06126   flatbuffers::FlatBufferBuilder &fbb_;
06127   flatbuffers::uoffset_t start_;
06128   explicit GreaterOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
06129         : fbb_(_fbb) {
06130     start_ = fbb_.StartTable();
06131   }
06132   GreaterOptionsBuilder &operator=(const GreaterOptionsBuilder &);
06133   flatbuffers::Offset<GreaterOptions> Finish() {
06134     const auto end = fbb_.EndTable(start_);
06135     auto o = flatbuffers::Offset<GreaterOptions>(end);
06136     return o;
06137   }
06138 };
06139 
06140 inline flatbuffers::Offset<GreaterOptions> CreateGreaterOptions(
06141     flatbuffers::FlatBufferBuilder &_fbb) {
06142   GreaterOptionsBuilder builder_(_fbb);
06143   return builder_.Finish();
06144 }
06145 
06146 flatbuffers::Offset<GreaterOptions> CreateGreaterOptions(flatbuffers::FlatBufferBuilder &_fbb, const GreaterOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
06147 
06148 struct GreaterEqualOptionsT : public flatbuffers::NativeTable {
06149   typedef GreaterEqualOptions TableType;
06150   GreaterEqualOptionsT() {
06151   }
06152 };
06153 
06154 struct GreaterEqualOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
06155   typedef GreaterEqualOptionsT NativeTableType;
06156   bool Verify(flatbuffers::Verifier &verifier) const {
06157     return VerifyTableStart(verifier) &&
06158            verifier.EndTable();
06159   }
06160   GreaterEqualOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
06161   void UnPackTo(GreaterEqualOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
06162   static flatbuffers::Offset<GreaterEqualOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const GreaterEqualOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
06163 };
06164 
06165 struct GreaterEqualOptionsBuilder {
06166   flatbuffers::FlatBufferBuilder &fbb_;
06167   flatbuffers::uoffset_t start_;
06168   explicit GreaterEqualOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
06169         : fbb_(_fbb) {
06170     start_ = fbb_.StartTable();
06171   }
06172   GreaterEqualOptionsBuilder &operator=(const GreaterEqualOptionsBuilder &);
06173   flatbuffers::Offset<GreaterEqualOptions> Finish() {
06174     const auto end = fbb_.EndTable(start_);
06175     auto o = flatbuffers::Offset<GreaterEqualOptions>(end);
06176     return o;
06177   }
06178 };
06179 
06180 inline flatbuffers::Offset<GreaterEqualOptions> CreateGreaterEqualOptions(
06181     flatbuffers::FlatBufferBuilder &_fbb) {
06182   GreaterEqualOptionsBuilder builder_(_fbb);
06183   return builder_.Finish();
06184 }
06185 
06186 flatbuffers::Offset<GreaterEqualOptions> CreateGreaterEqualOptions(flatbuffers::FlatBufferBuilder &_fbb, const GreaterEqualOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
06187 
06188 struct LessOptionsT : public flatbuffers::NativeTable {
06189   typedef LessOptions TableType;
06190   LessOptionsT() {
06191   }
06192 };
06193 
06194 struct LessOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
06195   typedef LessOptionsT NativeTableType;
06196   bool Verify(flatbuffers::Verifier &verifier) const {
06197     return VerifyTableStart(verifier) &&
06198            verifier.EndTable();
06199   }
06200   LessOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
06201   void UnPackTo(LessOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
06202   static flatbuffers::Offset<LessOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const LessOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
06203 };
06204 
06205 struct LessOptionsBuilder {
06206   flatbuffers::FlatBufferBuilder &fbb_;
06207   flatbuffers::uoffset_t start_;
06208   explicit LessOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
06209         : fbb_(_fbb) {
06210     start_ = fbb_.StartTable();
06211   }
06212   LessOptionsBuilder &operator=(const LessOptionsBuilder &);
06213   flatbuffers::Offset<LessOptions> Finish() {
06214     const auto end = fbb_.EndTable(start_);
06215     auto o = flatbuffers::Offset<LessOptions>(end);
06216     return o;
06217   }
06218 };
06219 
06220 inline flatbuffers::Offset<LessOptions> CreateLessOptions(
06221     flatbuffers::FlatBufferBuilder &_fbb) {
06222   LessOptionsBuilder builder_(_fbb);
06223   return builder_.Finish();
06224 }
06225 
06226 flatbuffers::Offset<LessOptions> CreateLessOptions(flatbuffers::FlatBufferBuilder &_fbb, const LessOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
06227 
06228 struct LessEqualOptionsT : public flatbuffers::NativeTable {
06229   typedef LessEqualOptions TableType;
06230   LessEqualOptionsT() {
06231   }
06232 };
06233 
06234 struct LessEqualOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
06235   typedef LessEqualOptionsT NativeTableType;
06236   bool Verify(flatbuffers::Verifier &verifier) const {
06237     return VerifyTableStart(verifier) &&
06238            verifier.EndTable();
06239   }
06240   LessEqualOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
06241   void UnPackTo(LessEqualOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
06242   static flatbuffers::Offset<LessEqualOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const LessEqualOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
06243 };
06244 
06245 struct LessEqualOptionsBuilder {
06246   flatbuffers::FlatBufferBuilder &fbb_;
06247   flatbuffers::uoffset_t start_;
06248   explicit LessEqualOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
06249         : fbb_(_fbb) {
06250     start_ = fbb_.StartTable();
06251   }
06252   LessEqualOptionsBuilder &operator=(const LessEqualOptionsBuilder &);
06253   flatbuffers::Offset<LessEqualOptions> Finish() {
06254     const auto end = fbb_.EndTable(start_);
06255     auto o = flatbuffers::Offset<LessEqualOptions>(end);
06256     return o;
06257   }
06258 };
06259 
06260 inline flatbuffers::Offset<LessEqualOptions> CreateLessEqualOptions(
06261     flatbuffers::FlatBufferBuilder &_fbb) {
06262   LessEqualOptionsBuilder builder_(_fbb);
06263   return builder_.Finish();
06264 }
06265 
06266 flatbuffers::Offset<LessEqualOptions> CreateLessEqualOptions(flatbuffers::FlatBufferBuilder &_fbb, const LessEqualOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
06267 
06268 struct NegOptionsT : public flatbuffers::NativeTable {
06269   typedef NegOptions TableType;
06270   NegOptionsT() {
06271   }
06272 };
06273 
06274 struct NegOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
06275   typedef NegOptionsT NativeTableType;
06276   bool Verify(flatbuffers::Verifier &verifier) const {
06277     return VerifyTableStart(verifier) &&
06278            verifier.EndTable();
06279   }
06280   NegOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
06281   void UnPackTo(NegOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
06282   static flatbuffers::Offset<NegOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const NegOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
06283 };
06284 
06285 struct NegOptionsBuilder {
06286   flatbuffers::FlatBufferBuilder &fbb_;
06287   flatbuffers::uoffset_t start_;
06288   explicit NegOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
06289         : fbb_(_fbb) {
06290     start_ = fbb_.StartTable();
06291   }
06292   NegOptionsBuilder &operator=(const NegOptionsBuilder &);
06293   flatbuffers::Offset<NegOptions> Finish() {
06294     const auto end = fbb_.EndTable(start_);
06295     auto o = flatbuffers::Offset<NegOptions>(end);
06296     return o;
06297   }
06298 };
06299 
06300 inline flatbuffers::Offset<NegOptions> CreateNegOptions(
06301     flatbuffers::FlatBufferBuilder &_fbb) {
06302   NegOptionsBuilder builder_(_fbb);
06303   return builder_.Finish();
06304 }
06305 
06306 flatbuffers::Offset<NegOptions> CreateNegOptions(flatbuffers::FlatBufferBuilder &_fbb, const NegOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
06307 
06308 struct SelectOptionsT : public flatbuffers::NativeTable {
06309   typedef SelectOptions TableType;
06310   SelectOptionsT() {
06311   }
06312 };
06313 
06314 struct SelectOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
06315   typedef SelectOptionsT NativeTableType;
06316   bool Verify(flatbuffers::Verifier &verifier) const {
06317     return VerifyTableStart(verifier) &&
06318            verifier.EndTable();
06319   }
06320   SelectOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
06321   void UnPackTo(SelectOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
06322   static flatbuffers::Offset<SelectOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const SelectOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
06323 };
06324 
06325 struct SelectOptionsBuilder {
06326   flatbuffers::FlatBufferBuilder &fbb_;
06327   flatbuffers::uoffset_t start_;
06328   explicit SelectOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
06329         : fbb_(_fbb) {
06330     start_ = fbb_.StartTable();
06331   }
06332   SelectOptionsBuilder &operator=(const SelectOptionsBuilder &);
06333   flatbuffers::Offset<SelectOptions> Finish() {
06334     const auto end = fbb_.EndTable(start_);
06335     auto o = flatbuffers::Offset<SelectOptions>(end);
06336     return o;
06337   }
06338 };
06339 
06340 inline flatbuffers::Offset<SelectOptions> CreateSelectOptions(
06341     flatbuffers::FlatBufferBuilder &_fbb) {
06342   SelectOptionsBuilder builder_(_fbb);
06343   return builder_.Finish();
06344 }
06345 
06346 flatbuffers::Offset<SelectOptions> CreateSelectOptions(flatbuffers::FlatBufferBuilder &_fbb, const SelectOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
06347 
06348 struct SliceOptionsT : public flatbuffers::NativeTable {
06349   typedef SliceOptions TableType;
06350   SliceOptionsT() {
06351   }
06352 };
06353 
06354 struct SliceOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
06355   typedef SliceOptionsT NativeTableType;
06356   bool Verify(flatbuffers::Verifier &verifier) const {
06357     return VerifyTableStart(verifier) &&
06358            verifier.EndTable();
06359   }
06360   SliceOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
06361   void UnPackTo(SliceOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
06362   static flatbuffers::Offset<SliceOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const SliceOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
06363 };
06364 
06365 struct SliceOptionsBuilder {
06366   flatbuffers::FlatBufferBuilder &fbb_;
06367   flatbuffers::uoffset_t start_;
06368   explicit SliceOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
06369         : fbb_(_fbb) {
06370     start_ = fbb_.StartTable();
06371   }
06372   SliceOptionsBuilder &operator=(const SliceOptionsBuilder &);
06373   flatbuffers::Offset<SliceOptions> Finish() {
06374     const auto end = fbb_.EndTable(start_);
06375     auto o = flatbuffers::Offset<SliceOptions>(end);
06376     return o;
06377   }
06378 };
06379 
06380 inline flatbuffers::Offset<SliceOptions> CreateSliceOptions(
06381     flatbuffers::FlatBufferBuilder &_fbb) {
06382   SliceOptionsBuilder builder_(_fbb);
06383   return builder_.Finish();
06384 }
06385 
06386 flatbuffers::Offset<SliceOptions> CreateSliceOptions(flatbuffers::FlatBufferBuilder &_fbb, const SliceOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
06387 
06388 struct TransposeConvOptionsT : public flatbuffers::NativeTable {
06389   typedef TransposeConvOptions TableType;
06390   Padding padding;
06391   int32_t stride_w;
06392   int32_t stride_h;
06393   TransposeConvOptionsT()
06394       : padding(Padding_SAME),
06395         stride_w(0),
06396         stride_h(0) {
06397   }
06398 };
06399 
06400 struct TransposeConvOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
06401   typedef TransposeConvOptionsT NativeTableType;
06402   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
06403     VT_PADDING = 4,
06404     VT_STRIDE_W = 6,
06405     VT_STRIDE_H = 8
06406   };
06407   Padding padding() const {
06408     return static_cast<Padding>(GetField<int8_t>(VT_PADDING, 0));
06409   }
06410   int32_t stride_w() const {
06411     return GetField<int32_t>(VT_STRIDE_W, 0);
06412   }
06413   int32_t stride_h() const {
06414     return GetField<int32_t>(VT_STRIDE_H, 0);
06415   }
06416   bool Verify(flatbuffers::Verifier &verifier) const {
06417     return VerifyTableStart(verifier) &&
06418            VerifyField<int8_t>(verifier, VT_PADDING) &&
06419            VerifyField<int32_t>(verifier, VT_STRIDE_W) &&
06420            VerifyField<int32_t>(verifier, VT_STRIDE_H) &&
06421            verifier.EndTable();
06422   }
06423   TransposeConvOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
06424   void UnPackTo(TransposeConvOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
06425   static flatbuffers::Offset<TransposeConvOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const TransposeConvOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
06426 };
06427 
06428 struct TransposeConvOptionsBuilder {
06429   flatbuffers::FlatBufferBuilder &fbb_;
06430   flatbuffers::uoffset_t start_;
06431   void add_padding(Padding padding) {
06432     fbb_.AddElement<int8_t>(TransposeConvOptions::VT_PADDING, static_cast<int8_t>(padding), 0);
06433   }
06434   void add_stride_w(int32_t stride_w) {
06435     fbb_.AddElement<int32_t>(TransposeConvOptions::VT_STRIDE_W, stride_w, 0);
06436   }
06437   void add_stride_h(int32_t stride_h) {
06438     fbb_.AddElement<int32_t>(TransposeConvOptions::VT_STRIDE_H, stride_h, 0);
06439   }
06440   explicit TransposeConvOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
06441         : fbb_(_fbb) {
06442     start_ = fbb_.StartTable();
06443   }
06444   TransposeConvOptionsBuilder &operator=(const TransposeConvOptionsBuilder &);
06445   flatbuffers::Offset<TransposeConvOptions> Finish() {
06446     const auto end = fbb_.EndTable(start_);
06447     auto o = flatbuffers::Offset<TransposeConvOptions>(end);
06448     return o;
06449   }
06450 };
06451 
06452 inline flatbuffers::Offset<TransposeConvOptions> CreateTransposeConvOptions(
06453     flatbuffers::FlatBufferBuilder &_fbb,
06454     Padding padding = Padding_SAME,
06455     int32_t stride_w = 0,
06456     int32_t stride_h = 0) {
06457   TransposeConvOptionsBuilder builder_(_fbb);
06458   builder_.add_stride_h(stride_h);
06459   builder_.add_stride_w(stride_w);
06460   builder_.add_padding(padding);
06461   return builder_.Finish();
06462 }
06463 
06464 flatbuffers::Offset<TransposeConvOptions> CreateTransposeConvOptions(flatbuffers::FlatBufferBuilder &_fbb, const TransposeConvOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
06465 
06466 struct ExpandDimsOptionsT : public flatbuffers::NativeTable {
06467   typedef ExpandDimsOptions TableType;
06468   ExpandDimsOptionsT() {
06469   }
06470 };
06471 
06472 struct ExpandDimsOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
06473   typedef ExpandDimsOptionsT NativeTableType;
06474   bool Verify(flatbuffers::Verifier &verifier) const {
06475     return VerifyTableStart(verifier) &&
06476            verifier.EndTable();
06477   }
06478   ExpandDimsOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
06479   void UnPackTo(ExpandDimsOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
06480   static flatbuffers::Offset<ExpandDimsOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const ExpandDimsOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
06481 };
06482 
06483 struct ExpandDimsOptionsBuilder {
06484   flatbuffers::FlatBufferBuilder &fbb_;
06485   flatbuffers::uoffset_t start_;
06486   explicit ExpandDimsOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
06487         : fbb_(_fbb) {
06488     start_ = fbb_.StartTable();
06489   }
06490   ExpandDimsOptionsBuilder &operator=(const ExpandDimsOptionsBuilder &);
06491   flatbuffers::Offset<ExpandDimsOptions> Finish() {
06492     const auto end = fbb_.EndTable(start_);
06493     auto o = flatbuffers::Offset<ExpandDimsOptions>(end);
06494     return o;
06495   }
06496 };
06497 
06498 inline flatbuffers::Offset<ExpandDimsOptions> CreateExpandDimsOptions(
06499     flatbuffers::FlatBufferBuilder &_fbb) {
06500   ExpandDimsOptionsBuilder builder_(_fbb);
06501   return builder_.Finish();
06502 }
06503 
06504 flatbuffers::Offset<ExpandDimsOptions> CreateExpandDimsOptions(flatbuffers::FlatBufferBuilder &_fbb, const ExpandDimsOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
06505 
06506 struct SparseToDenseOptionsT : public flatbuffers::NativeTable {
06507   typedef SparseToDenseOptions TableType;
06508   bool validate_indices;
06509   SparseToDenseOptionsT()
06510       : validate_indices(false) {
06511   }
06512 };
06513 
06514 struct SparseToDenseOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
06515   typedef SparseToDenseOptionsT NativeTableType;
06516   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
06517     VT_VALIDATE_INDICES = 4
06518   };
06519   bool validate_indices() const {
06520     return GetField<uint8_t>(VT_VALIDATE_INDICES, 0) != 0;
06521   }
06522   bool Verify(flatbuffers::Verifier &verifier) const {
06523     return VerifyTableStart(verifier) &&
06524            VerifyField<uint8_t>(verifier, VT_VALIDATE_INDICES) &&
06525            verifier.EndTable();
06526   }
06527   SparseToDenseOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
06528   void UnPackTo(SparseToDenseOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
06529   static flatbuffers::Offset<SparseToDenseOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const SparseToDenseOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
06530 };
06531 
06532 struct SparseToDenseOptionsBuilder {
06533   flatbuffers::FlatBufferBuilder &fbb_;
06534   flatbuffers::uoffset_t start_;
06535   void add_validate_indices(bool validate_indices) {
06536     fbb_.AddElement<uint8_t>(SparseToDenseOptions::VT_VALIDATE_INDICES, static_cast<uint8_t>(validate_indices), 0);
06537   }
06538   explicit SparseToDenseOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
06539         : fbb_(_fbb) {
06540     start_ = fbb_.StartTable();
06541   }
06542   SparseToDenseOptionsBuilder &operator=(const SparseToDenseOptionsBuilder &);
06543   flatbuffers::Offset<SparseToDenseOptions> Finish() {
06544     const auto end = fbb_.EndTable(start_);
06545     auto o = flatbuffers::Offset<SparseToDenseOptions>(end);
06546     return o;
06547   }
06548 };
06549 
06550 inline flatbuffers::Offset<SparseToDenseOptions> CreateSparseToDenseOptions(
06551     flatbuffers::FlatBufferBuilder &_fbb,
06552     bool validate_indices = false) {
06553   SparseToDenseOptionsBuilder builder_(_fbb);
06554   builder_.add_validate_indices(validate_indices);
06555   return builder_.Finish();
06556 }
06557 
06558 flatbuffers::Offset<SparseToDenseOptions> CreateSparseToDenseOptions(flatbuffers::FlatBufferBuilder &_fbb, const SparseToDenseOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
06559 
06560 struct EqualOptionsT : public flatbuffers::NativeTable {
06561   typedef EqualOptions TableType;
06562   EqualOptionsT() {
06563   }
06564 };
06565 
06566 struct EqualOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
06567   typedef EqualOptionsT NativeTableType;
06568   bool Verify(flatbuffers::Verifier &verifier) const {
06569     return VerifyTableStart(verifier) &&
06570            verifier.EndTable();
06571   }
06572   EqualOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
06573   void UnPackTo(EqualOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
06574   static flatbuffers::Offset<EqualOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const EqualOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
06575 };
06576 
06577 struct EqualOptionsBuilder {
06578   flatbuffers::FlatBufferBuilder &fbb_;
06579   flatbuffers::uoffset_t start_;
06580   explicit EqualOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
06581         : fbb_(_fbb) {
06582     start_ = fbb_.StartTable();
06583   }
06584   EqualOptionsBuilder &operator=(const EqualOptionsBuilder &);
06585   flatbuffers::Offset<EqualOptions> Finish() {
06586     const auto end = fbb_.EndTable(start_);
06587     auto o = flatbuffers::Offset<EqualOptions>(end);
06588     return o;
06589   }
06590 };
06591 
06592 inline flatbuffers::Offset<EqualOptions> CreateEqualOptions(
06593     flatbuffers::FlatBufferBuilder &_fbb) {
06594   EqualOptionsBuilder builder_(_fbb);
06595   return builder_.Finish();
06596 }
06597 
06598 flatbuffers::Offset<EqualOptions> CreateEqualOptions(flatbuffers::FlatBufferBuilder &_fbb, const EqualOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
06599 
06600 struct NotEqualOptionsT : public flatbuffers::NativeTable {
06601   typedef NotEqualOptions TableType;
06602   NotEqualOptionsT() {
06603   }
06604 };
06605 
06606 struct NotEqualOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
06607   typedef NotEqualOptionsT NativeTableType;
06608   bool Verify(flatbuffers::Verifier &verifier) const {
06609     return VerifyTableStart(verifier) &&
06610            verifier.EndTable();
06611   }
06612   NotEqualOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
06613   void UnPackTo(NotEqualOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
06614   static flatbuffers::Offset<NotEqualOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const NotEqualOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
06615 };
06616 
06617 struct NotEqualOptionsBuilder {
06618   flatbuffers::FlatBufferBuilder &fbb_;
06619   flatbuffers::uoffset_t start_;
06620   explicit NotEqualOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
06621         : fbb_(_fbb) {
06622     start_ = fbb_.StartTable();
06623   }
06624   NotEqualOptionsBuilder &operator=(const NotEqualOptionsBuilder &);
06625   flatbuffers::Offset<NotEqualOptions> Finish() {
06626     const auto end = fbb_.EndTable(start_);
06627     auto o = flatbuffers::Offset<NotEqualOptions>(end);
06628     return o;
06629   }
06630 };
06631 
06632 inline flatbuffers::Offset<NotEqualOptions> CreateNotEqualOptions(
06633     flatbuffers::FlatBufferBuilder &_fbb) {
06634   NotEqualOptionsBuilder builder_(_fbb);
06635   return builder_.Finish();
06636 }
06637 
06638 flatbuffers::Offset<NotEqualOptions> CreateNotEqualOptions(flatbuffers::FlatBufferBuilder &_fbb, const NotEqualOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
06639 
06640 struct ShapeOptionsT : public flatbuffers::NativeTable {
06641   typedef ShapeOptions TableType;
06642   TensorType out_type;
06643   ShapeOptionsT()
06644       : out_type(TensorType_FLOAT32) {
06645   }
06646 };
06647 
06648 struct ShapeOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
06649   typedef ShapeOptionsT NativeTableType;
06650   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
06651     VT_OUT_TYPE = 4
06652   };
06653   TensorType out_type() const {
06654     return static_cast<TensorType>(GetField<int8_t>(VT_OUT_TYPE, 0));
06655   }
06656   bool Verify(flatbuffers::Verifier &verifier) const {
06657     return VerifyTableStart(verifier) &&
06658            VerifyField<int8_t>(verifier, VT_OUT_TYPE) &&
06659            verifier.EndTable();
06660   }
06661   ShapeOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
06662   void UnPackTo(ShapeOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
06663   static flatbuffers::Offset<ShapeOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const ShapeOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
06664 };
06665 
06666 struct ShapeOptionsBuilder {
06667   flatbuffers::FlatBufferBuilder &fbb_;
06668   flatbuffers::uoffset_t start_;
06669   void add_out_type(TensorType out_type) {
06670     fbb_.AddElement<int8_t>(ShapeOptions::VT_OUT_TYPE, static_cast<int8_t>(out_type), 0);
06671   }
06672   explicit ShapeOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
06673         : fbb_(_fbb) {
06674     start_ = fbb_.StartTable();
06675   }
06676   ShapeOptionsBuilder &operator=(const ShapeOptionsBuilder &);
06677   flatbuffers::Offset<ShapeOptions> Finish() {
06678     const auto end = fbb_.EndTable(start_);
06679     auto o = flatbuffers::Offset<ShapeOptions>(end);
06680     return o;
06681   }
06682 };
06683 
06684 inline flatbuffers::Offset<ShapeOptions> CreateShapeOptions(
06685     flatbuffers::FlatBufferBuilder &_fbb,
06686     TensorType out_type = TensorType_FLOAT32) {
06687   ShapeOptionsBuilder builder_(_fbb);
06688   builder_.add_out_type(out_type);
06689   return builder_.Finish();
06690 }
06691 
06692 flatbuffers::Offset<ShapeOptions> CreateShapeOptions(flatbuffers::FlatBufferBuilder &_fbb, const ShapeOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
06693 
06694 struct RankOptionsT : public flatbuffers::NativeTable {
06695   typedef RankOptions TableType;
06696   RankOptionsT() {
06697   }
06698 };
06699 
06700 struct RankOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
06701   typedef RankOptionsT NativeTableType;
06702   bool Verify(flatbuffers::Verifier &verifier) const {
06703     return VerifyTableStart(verifier) &&
06704            verifier.EndTable();
06705   }
06706   RankOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
06707   void UnPackTo(RankOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
06708   static flatbuffers::Offset<RankOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const RankOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
06709 };
06710 
06711 struct RankOptionsBuilder {
06712   flatbuffers::FlatBufferBuilder &fbb_;
06713   flatbuffers::uoffset_t start_;
06714   explicit RankOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
06715         : fbb_(_fbb) {
06716     start_ = fbb_.StartTable();
06717   }
06718   RankOptionsBuilder &operator=(const RankOptionsBuilder &);
06719   flatbuffers::Offset<RankOptions> Finish() {
06720     const auto end = fbb_.EndTable(start_);
06721     auto o = flatbuffers::Offset<RankOptions>(end);
06722     return o;
06723   }
06724 };
06725 
06726 inline flatbuffers::Offset<RankOptions> CreateRankOptions(
06727     flatbuffers::FlatBufferBuilder &_fbb) {
06728   RankOptionsBuilder builder_(_fbb);
06729   return builder_.Finish();
06730 }
06731 
06732 flatbuffers::Offset<RankOptions> CreateRankOptions(flatbuffers::FlatBufferBuilder &_fbb, const RankOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
06733 
06734 struct PowOptionsT : public flatbuffers::NativeTable {
06735   typedef PowOptions TableType;
06736   PowOptionsT() {
06737   }
06738 };
06739 
06740 struct PowOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
06741   typedef PowOptionsT NativeTableType;
06742   bool Verify(flatbuffers::Verifier &verifier) const {
06743     return VerifyTableStart(verifier) &&
06744            verifier.EndTable();
06745   }
06746   PowOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
06747   void UnPackTo(PowOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
06748   static flatbuffers::Offset<PowOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const PowOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
06749 };
06750 
06751 struct PowOptionsBuilder {
06752   flatbuffers::FlatBufferBuilder &fbb_;
06753   flatbuffers::uoffset_t start_;
06754   explicit PowOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
06755         : fbb_(_fbb) {
06756     start_ = fbb_.StartTable();
06757   }
06758   PowOptionsBuilder &operator=(const PowOptionsBuilder &);
06759   flatbuffers::Offset<PowOptions> Finish() {
06760     const auto end = fbb_.EndTable(start_);
06761     auto o = flatbuffers::Offset<PowOptions>(end);
06762     return o;
06763   }
06764 };
06765 
06766 inline flatbuffers::Offset<PowOptions> CreatePowOptions(
06767     flatbuffers::FlatBufferBuilder &_fbb) {
06768   PowOptionsBuilder builder_(_fbb);
06769   return builder_.Finish();
06770 }
06771 
06772 flatbuffers::Offset<PowOptions> CreatePowOptions(flatbuffers::FlatBufferBuilder &_fbb, const PowOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
06773 
06774 struct FakeQuantOptionsT : public flatbuffers::NativeTable {
06775   typedef FakeQuantOptions TableType;
06776   float min;
06777   float max;
06778   int32_t num_bits;
06779   bool narrow_range;
06780   FakeQuantOptionsT()
06781       : min(0.0f),
06782         max(0.0f),
06783         num_bits(0),
06784         narrow_range(false) {
06785   }
06786 };
06787 
06788 struct FakeQuantOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
06789   typedef FakeQuantOptionsT NativeTableType;
06790   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
06791     VT_MIN = 4,
06792     VT_MAX = 6,
06793     VT_NUM_BITS = 8,
06794     VT_NARROW_RANGE = 10
06795   };
06796   float min() const {
06797     return GetField<float>(VT_MIN, 0.0f);
06798   }
06799   float max() const {
06800     return GetField<float>(VT_MAX, 0.0f);
06801   }
06802   int32_t num_bits() const {
06803     return GetField<int32_t>(VT_NUM_BITS, 0);
06804   }
06805   bool narrow_range() const {
06806     return GetField<uint8_t>(VT_NARROW_RANGE, 0) != 0;
06807   }
06808   bool Verify(flatbuffers::Verifier &verifier) const {
06809     return VerifyTableStart(verifier) &&
06810            VerifyField<float>(verifier, VT_MIN) &&
06811            VerifyField<float>(verifier, VT_MAX) &&
06812            VerifyField<int32_t>(verifier, VT_NUM_BITS) &&
06813            VerifyField<uint8_t>(verifier, VT_NARROW_RANGE) &&
06814            verifier.EndTable();
06815   }
06816   FakeQuantOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
06817   void UnPackTo(FakeQuantOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
06818   static flatbuffers::Offset<FakeQuantOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const FakeQuantOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
06819 };
06820 
06821 struct FakeQuantOptionsBuilder {
06822   flatbuffers::FlatBufferBuilder &fbb_;
06823   flatbuffers::uoffset_t start_;
06824   void add_min(float min) {
06825     fbb_.AddElement<float>(FakeQuantOptions::VT_MIN, min, 0.0f);
06826   }
06827   void add_max(float max) {
06828     fbb_.AddElement<float>(FakeQuantOptions::VT_MAX, max, 0.0f);
06829   }
06830   void add_num_bits(int32_t num_bits) {
06831     fbb_.AddElement<int32_t>(FakeQuantOptions::VT_NUM_BITS, num_bits, 0);
06832   }
06833   void add_narrow_range(bool narrow_range) {
06834     fbb_.AddElement<uint8_t>(FakeQuantOptions::VT_NARROW_RANGE, static_cast<uint8_t>(narrow_range), 0);
06835   }
06836   explicit FakeQuantOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
06837         : fbb_(_fbb) {
06838     start_ = fbb_.StartTable();
06839   }
06840   FakeQuantOptionsBuilder &operator=(const FakeQuantOptionsBuilder &);
06841   flatbuffers::Offset<FakeQuantOptions> Finish() {
06842     const auto end = fbb_.EndTable(start_);
06843     auto o = flatbuffers::Offset<FakeQuantOptions>(end);
06844     return o;
06845   }
06846 };
06847 
06848 inline flatbuffers::Offset<FakeQuantOptions> CreateFakeQuantOptions(
06849     flatbuffers::FlatBufferBuilder &_fbb,
06850     float min = 0.0f,
06851     float max = 0.0f,
06852     int32_t num_bits = 0,
06853     bool narrow_range = false) {
06854   FakeQuantOptionsBuilder builder_(_fbb);
06855   builder_.add_num_bits(num_bits);
06856   builder_.add_max(max);
06857   builder_.add_min(min);
06858   builder_.add_narrow_range(narrow_range);
06859   return builder_.Finish();
06860 }
06861 
06862 flatbuffers::Offset<FakeQuantOptions> CreateFakeQuantOptions(flatbuffers::FlatBufferBuilder &_fbb, const FakeQuantOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
06863 
06864 struct PackOptionsT : public flatbuffers::NativeTable {
06865   typedef PackOptions TableType;
06866   int32_t values_count;
06867   int32_t axis;
06868   PackOptionsT()
06869       : values_count(0),
06870         axis(0) {
06871   }
06872 };
06873 
06874 struct PackOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
06875   typedef PackOptionsT NativeTableType;
06876   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
06877     VT_VALUES_COUNT = 4,
06878     VT_AXIS = 6
06879   };
06880   int32_t values_count() const {
06881     return GetField<int32_t>(VT_VALUES_COUNT, 0);
06882   }
06883   int32_t axis() const {
06884     return GetField<int32_t>(VT_AXIS, 0);
06885   }
06886   bool Verify(flatbuffers::Verifier &verifier) const {
06887     return VerifyTableStart(verifier) &&
06888            VerifyField<int32_t>(verifier, VT_VALUES_COUNT) &&
06889            VerifyField<int32_t>(verifier, VT_AXIS) &&
06890            verifier.EndTable();
06891   }
06892   PackOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
06893   void UnPackTo(PackOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
06894   static flatbuffers::Offset<PackOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const PackOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
06895 };
06896 
06897 struct PackOptionsBuilder {
06898   flatbuffers::FlatBufferBuilder &fbb_;
06899   flatbuffers::uoffset_t start_;
06900   void add_values_count(int32_t values_count) {
06901     fbb_.AddElement<int32_t>(PackOptions::VT_VALUES_COUNT, values_count, 0);
06902   }
06903   void add_axis(int32_t axis) {
06904     fbb_.AddElement<int32_t>(PackOptions::VT_AXIS, axis, 0);
06905   }
06906   explicit PackOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
06907         : fbb_(_fbb) {
06908     start_ = fbb_.StartTable();
06909   }
06910   PackOptionsBuilder &operator=(const PackOptionsBuilder &);
06911   flatbuffers::Offset<PackOptions> Finish() {
06912     const auto end = fbb_.EndTable(start_);
06913     auto o = flatbuffers::Offset<PackOptions>(end);
06914     return o;
06915   }
06916 };
06917 
06918 inline flatbuffers::Offset<PackOptions> CreatePackOptions(
06919     flatbuffers::FlatBufferBuilder &_fbb,
06920     int32_t values_count = 0,
06921     int32_t axis = 0) {
06922   PackOptionsBuilder builder_(_fbb);
06923   builder_.add_axis(axis);
06924   builder_.add_values_count(values_count);
06925   return builder_.Finish();
06926 }
06927 
06928 flatbuffers::Offset<PackOptions> CreatePackOptions(flatbuffers::FlatBufferBuilder &_fbb, const PackOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
06929 
06930 struct LogicalOrOptionsT : public flatbuffers::NativeTable {
06931   typedef LogicalOrOptions TableType;
06932   LogicalOrOptionsT() {
06933   }
06934 };
06935 
06936 struct LogicalOrOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
06937   typedef LogicalOrOptionsT NativeTableType;
06938   bool Verify(flatbuffers::Verifier &verifier) const {
06939     return VerifyTableStart(verifier) &&
06940            verifier.EndTable();
06941   }
06942   LogicalOrOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
06943   void UnPackTo(LogicalOrOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
06944   static flatbuffers::Offset<LogicalOrOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const LogicalOrOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
06945 };
06946 
06947 struct LogicalOrOptionsBuilder {
06948   flatbuffers::FlatBufferBuilder &fbb_;
06949   flatbuffers::uoffset_t start_;
06950   explicit LogicalOrOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
06951         : fbb_(_fbb) {
06952     start_ = fbb_.StartTable();
06953   }
06954   LogicalOrOptionsBuilder &operator=(const LogicalOrOptionsBuilder &);
06955   flatbuffers::Offset<LogicalOrOptions> Finish() {
06956     const auto end = fbb_.EndTable(start_);
06957     auto o = flatbuffers::Offset<LogicalOrOptions>(end);
06958     return o;
06959   }
06960 };
06961 
06962 inline flatbuffers::Offset<LogicalOrOptions> CreateLogicalOrOptions(
06963     flatbuffers::FlatBufferBuilder &_fbb) {
06964   LogicalOrOptionsBuilder builder_(_fbb);
06965   return builder_.Finish();
06966 }
06967 
06968 flatbuffers::Offset<LogicalOrOptions> CreateLogicalOrOptions(flatbuffers::FlatBufferBuilder &_fbb, const LogicalOrOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
06969 
06970 struct OneHotOptionsT : public flatbuffers::NativeTable {
06971   typedef OneHotOptions TableType;
06972   int32_t axis;
06973   OneHotOptionsT()
06974       : axis(0) {
06975   }
06976 };
06977 
06978 struct OneHotOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
06979   typedef OneHotOptionsT NativeTableType;
06980   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
06981     VT_AXIS = 4
06982   };
06983   int32_t axis() const {
06984     return GetField<int32_t>(VT_AXIS, 0);
06985   }
06986   bool Verify(flatbuffers::Verifier &verifier) const {
06987     return VerifyTableStart(verifier) &&
06988            VerifyField<int32_t>(verifier, VT_AXIS) &&
06989            verifier.EndTable();
06990   }
06991   OneHotOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
06992   void UnPackTo(OneHotOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
06993   static flatbuffers::Offset<OneHotOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const OneHotOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
06994 };
06995 
06996 struct OneHotOptionsBuilder {
06997   flatbuffers::FlatBufferBuilder &fbb_;
06998   flatbuffers::uoffset_t start_;
06999   void add_axis(int32_t axis) {
07000     fbb_.AddElement<int32_t>(OneHotOptions::VT_AXIS, axis, 0);
07001   }
07002   explicit OneHotOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
07003         : fbb_(_fbb) {
07004     start_ = fbb_.StartTable();
07005   }
07006   OneHotOptionsBuilder &operator=(const OneHotOptionsBuilder &);
07007   flatbuffers::Offset<OneHotOptions> Finish() {
07008     const auto end = fbb_.EndTable(start_);
07009     auto o = flatbuffers::Offset<OneHotOptions>(end);
07010     return o;
07011   }
07012 };
07013 
07014 inline flatbuffers::Offset<OneHotOptions> CreateOneHotOptions(
07015     flatbuffers::FlatBufferBuilder &_fbb,
07016     int32_t axis = 0) {
07017   OneHotOptionsBuilder builder_(_fbb);
07018   builder_.add_axis(axis);
07019   return builder_.Finish();
07020 }
07021 
07022 flatbuffers::Offset<OneHotOptions> CreateOneHotOptions(flatbuffers::FlatBufferBuilder &_fbb, const OneHotOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
07023 
07024 struct AbsOptionsT : public flatbuffers::NativeTable {
07025   typedef AbsOptions TableType;
07026   AbsOptionsT() {
07027   }
07028 };
07029 
07030 struct AbsOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
07031   typedef AbsOptionsT NativeTableType;
07032   bool Verify(flatbuffers::Verifier &verifier) const {
07033     return VerifyTableStart(verifier) &&
07034            verifier.EndTable();
07035   }
07036   AbsOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
07037   void UnPackTo(AbsOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
07038   static flatbuffers::Offset<AbsOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const AbsOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
07039 };
07040 
07041 struct AbsOptionsBuilder {
07042   flatbuffers::FlatBufferBuilder &fbb_;
07043   flatbuffers::uoffset_t start_;
07044   explicit AbsOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
07045         : fbb_(_fbb) {
07046     start_ = fbb_.StartTable();
07047   }
07048   AbsOptionsBuilder &operator=(const AbsOptionsBuilder &);
07049   flatbuffers::Offset<AbsOptions> Finish() {
07050     const auto end = fbb_.EndTable(start_);
07051     auto o = flatbuffers::Offset<AbsOptions>(end);
07052     return o;
07053   }
07054 };
07055 
07056 inline flatbuffers::Offset<AbsOptions> CreateAbsOptions(
07057     flatbuffers::FlatBufferBuilder &_fbb) {
07058   AbsOptionsBuilder builder_(_fbb);
07059   return builder_.Finish();
07060 }
07061 
07062 flatbuffers::Offset<AbsOptions> CreateAbsOptions(flatbuffers::FlatBufferBuilder &_fbb, const AbsOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
07063 
07064 struct HardSwishOptionsT : public flatbuffers::NativeTable {
07065   typedef HardSwishOptions TableType;
07066   HardSwishOptionsT() {
07067   }
07068 };
07069 
07070 struct HardSwishOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
07071   typedef HardSwishOptionsT NativeTableType;
07072   bool Verify(flatbuffers::Verifier &verifier) const {
07073     return VerifyTableStart(verifier) &&
07074            verifier.EndTable();
07075   }
07076   HardSwishOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
07077   void UnPackTo(HardSwishOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
07078   static flatbuffers::Offset<HardSwishOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const HardSwishOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
07079 };
07080 
07081 struct HardSwishOptionsBuilder {
07082   flatbuffers::FlatBufferBuilder &fbb_;
07083   flatbuffers::uoffset_t start_;
07084   explicit HardSwishOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
07085         : fbb_(_fbb) {
07086     start_ = fbb_.StartTable();
07087   }
07088   HardSwishOptionsBuilder &operator=(const HardSwishOptionsBuilder &);
07089   flatbuffers::Offset<HardSwishOptions> Finish() {
07090     const auto end = fbb_.EndTable(start_);
07091     auto o = flatbuffers::Offset<HardSwishOptions>(end);
07092     return o;
07093   }
07094 };
07095 
07096 inline flatbuffers::Offset<HardSwishOptions> CreateHardSwishOptions(
07097     flatbuffers::FlatBufferBuilder &_fbb) {
07098   HardSwishOptionsBuilder builder_(_fbb);
07099   return builder_.Finish();
07100 }
07101 
07102 flatbuffers::Offset<HardSwishOptions> CreateHardSwishOptions(flatbuffers::FlatBufferBuilder &_fbb, const HardSwishOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
07103 
07104 struct LogicalAndOptionsT : public flatbuffers::NativeTable {
07105   typedef LogicalAndOptions TableType;
07106   LogicalAndOptionsT() {
07107   }
07108 };
07109 
07110 struct LogicalAndOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
07111   typedef LogicalAndOptionsT NativeTableType;
07112   bool Verify(flatbuffers::Verifier &verifier) const {
07113     return VerifyTableStart(verifier) &&
07114            verifier.EndTable();
07115   }
07116   LogicalAndOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
07117   void UnPackTo(LogicalAndOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
07118   static flatbuffers::Offset<LogicalAndOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const LogicalAndOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
07119 };
07120 
07121 struct LogicalAndOptionsBuilder {
07122   flatbuffers::FlatBufferBuilder &fbb_;
07123   flatbuffers::uoffset_t start_;
07124   explicit LogicalAndOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
07125         : fbb_(_fbb) {
07126     start_ = fbb_.StartTable();
07127   }
07128   LogicalAndOptionsBuilder &operator=(const LogicalAndOptionsBuilder &);
07129   flatbuffers::Offset<LogicalAndOptions> Finish() {
07130     const auto end = fbb_.EndTable(start_);
07131     auto o = flatbuffers::Offset<LogicalAndOptions>(end);
07132     return o;
07133   }
07134 };
07135 
07136 inline flatbuffers::Offset<LogicalAndOptions> CreateLogicalAndOptions(
07137     flatbuffers::FlatBufferBuilder &_fbb) {
07138   LogicalAndOptionsBuilder builder_(_fbb);
07139   return builder_.Finish();
07140 }
07141 
07142 flatbuffers::Offset<LogicalAndOptions> CreateLogicalAndOptions(flatbuffers::FlatBufferBuilder &_fbb, const LogicalAndOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
07143 
07144 struct LogicalNotOptionsT : public flatbuffers::NativeTable {
07145   typedef LogicalNotOptions TableType;
07146   LogicalNotOptionsT() {
07147   }
07148 };
07149 
07150 struct LogicalNotOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
07151   typedef LogicalNotOptionsT NativeTableType;
07152   bool Verify(flatbuffers::Verifier &verifier) const {
07153     return VerifyTableStart(verifier) &&
07154            verifier.EndTable();
07155   }
07156   LogicalNotOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
07157   void UnPackTo(LogicalNotOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
07158   static flatbuffers::Offset<LogicalNotOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const LogicalNotOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
07159 };
07160 
07161 struct LogicalNotOptionsBuilder {
07162   flatbuffers::FlatBufferBuilder &fbb_;
07163   flatbuffers::uoffset_t start_;
07164   explicit LogicalNotOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
07165         : fbb_(_fbb) {
07166     start_ = fbb_.StartTable();
07167   }
07168   LogicalNotOptionsBuilder &operator=(const LogicalNotOptionsBuilder &);
07169   flatbuffers::Offset<LogicalNotOptions> Finish() {
07170     const auto end = fbb_.EndTable(start_);
07171     auto o = flatbuffers::Offset<LogicalNotOptions>(end);
07172     return o;
07173   }
07174 };
07175 
07176 inline flatbuffers::Offset<LogicalNotOptions> CreateLogicalNotOptions(
07177     flatbuffers::FlatBufferBuilder &_fbb) {
07178   LogicalNotOptionsBuilder builder_(_fbb);
07179   return builder_.Finish();
07180 }
07181 
07182 flatbuffers::Offset<LogicalNotOptions> CreateLogicalNotOptions(flatbuffers::FlatBufferBuilder &_fbb, const LogicalNotOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
07183 
07184 struct UnpackOptionsT : public flatbuffers::NativeTable {
07185   typedef UnpackOptions TableType;
07186   int32_t num;
07187   int32_t axis;
07188   UnpackOptionsT()
07189       : num(0),
07190         axis(0) {
07191   }
07192 };
07193 
07194 struct UnpackOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
07195   typedef UnpackOptionsT NativeTableType;
07196   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
07197     VT_NUM = 4,
07198     VT_AXIS = 6
07199   };
07200   int32_t num() const {
07201     return GetField<int32_t>(VT_NUM, 0);
07202   }
07203   int32_t axis() const {
07204     return GetField<int32_t>(VT_AXIS, 0);
07205   }
07206   bool Verify(flatbuffers::Verifier &verifier) const {
07207     return VerifyTableStart(verifier) &&
07208            VerifyField<int32_t>(verifier, VT_NUM) &&
07209            VerifyField<int32_t>(verifier, VT_AXIS) &&
07210            verifier.EndTable();
07211   }
07212   UnpackOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
07213   void UnPackTo(UnpackOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
07214   static flatbuffers::Offset<UnpackOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const UnpackOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
07215 };
07216 
07217 struct UnpackOptionsBuilder {
07218   flatbuffers::FlatBufferBuilder &fbb_;
07219   flatbuffers::uoffset_t start_;
07220   void add_num(int32_t num) {
07221     fbb_.AddElement<int32_t>(UnpackOptions::VT_NUM, num, 0);
07222   }
07223   void add_axis(int32_t axis) {
07224     fbb_.AddElement<int32_t>(UnpackOptions::VT_AXIS, axis, 0);
07225   }
07226   explicit UnpackOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
07227         : fbb_(_fbb) {
07228     start_ = fbb_.StartTable();
07229   }
07230   UnpackOptionsBuilder &operator=(const UnpackOptionsBuilder &);
07231   flatbuffers::Offset<UnpackOptions> Finish() {
07232     const auto end = fbb_.EndTable(start_);
07233     auto o = flatbuffers::Offset<UnpackOptions>(end);
07234     return o;
07235   }
07236 };
07237 
07238 inline flatbuffers::Offset<UnpackOptions> CreateUnpackOptions(
07239     flatbuffers::FlatBufferBuilder &_fbb,
07240     int32_t num = 0,
07241     int32_t axis = 0) {
07242   UnpackOptionsBuilder builder_(_fbb);
07243   builder_.add_axis(axis);
07244   builder_.add_num(num);
07245   return builder_.Finish();
07246 }
07247 
07248 flatbuffers::Offset<UnpackOptions> CreateUnpackOptions(flatbuffers::FlatBufferBuilder &_fbb, const UnpackOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
07249 
07250 struct FloorDivOptionsT : public flatbuffers::NativeTable {
07251   typedef FloorDivOptions TableType;
07252   FloorDivOptionsT() {
07253   }
07254 };
07255 
07256 struct FloorDivOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
07257   typedef FloorDivOptionsT NativeTableType;
07258   bool Verify(flatbuffers::Verifier &verifier) const {
07259     return VerifyTableStart(verifier) &&
07260            verifier.EndTable();
07261   }
07262   FloorDivOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
07263   void UnPackTo(FloorDivOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
07264   static flatbuffers::Offset<FloorDivOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const FloorDivOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
07265 };
07266 
07267 struct FloorDivOptionsBuilder {
07268   flatbuffers::FlatBufferBuilder &fbb_;
07269   flatbuffers::uoffset_t start_;
07270   explicit FloorDivOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
07271         : fbb_(_fbb) {
07272     start_ = fbb_.StartTable();
07273   }
07274   FloorDivOptionsBuilder &operator=(const FloorDivOptionsBuilder &);
07275   flatbuffers::Offset<FloorDivOptions> Finish() {
07276     const auto end = fbb_.EndTable(start_);
07277     auto o = flatbuffers::Offset<FloorDivOptions>(end);
07278     return o;
07279   }
07280 };
07281 
07282 inline flatbuffers::Offset<FloorDivOptions> CreateFloorDivOptions(
07283     flatbuffers::FlatBufferBuilder &_fbb) {
07284   FloorDivOptionsBuilder builder_(_fbb);
07285   return builder_.Finish();
07286 }
07287 
07288 flatbuffers::Offset<FloorDivOptions> CreateFloorDivOptions(flatbuffers::FlatBufferBuilder &_fbb, const FloorDivOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
07289 
07290 struct SquareOptionsT : public flatbuffers::NativeTable {
07291   typedef SquareOptions TableType;
07292   SquareOptionsT() {
07293   }
07294 };
07295 
07296 struct SquareOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
07297   typedef SquareOptionsT NativeTableType;
07298   bool Verify(flatbuffers::Verifier &verifier) const {
07299     return VerifyTableStart(verifier) &&
07300            verifier.EndTable();
07301   }
07302   SquareOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
07303   void UnPackTo(SquareOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
07304   static flatbuffers::Offset<SquareOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const SquareOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
07305 };
07306 
07307 struct SquareOptionsBuilder {
07308   flatbuffers::FlatBufferBuilder &fbb_;
07309   flatbuffers::uoffset_t start_;
07310   explicit SquareOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
07311         : fbb_(_fbb) {
07312     start_ = fbb_.StartTable();
07313   }
07314   SquareOptionsBuilder &operator=(const SquareOptionsBuilder &);
07315   flatbuffers::Offset<SquareOptions> Finish() {
07316     const auto end = fbb_.EndTable(start_);
07317     auto o = flatbuffers::Offset<SquareOptions>(end);
07318     return o;
07319   }
07320 };
07321 
07322 inline flatbuffers::Offset<SquareOptions> CreateSquareOptions(
07323     flatbuffers::FlatBufferBuilder &_fbb) {
07324   SquareOptionsBuilder builder_(_fbb);
07325   return builder_.Finish();
07326 }
07327 
07328 flatbuffers::Offset<SquareOptions> CreateSquareOptions(flatbuffers::FlatBufferBuilder &_fbb, const SquareOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
07329 
07330 struct ZerosLikeOptionsT : public flatbuffers::NativeTable {
07331   typedef ZerosLikeOptions TableType;
07332   ZerosLikeOptionsT() {
07333   }
07334 };
07335 
07336 struct ZerosLikeOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
07337   typedef ZerosLikeOptionsT NativeTableType;
07338   bool Verify(flatbuffers::Verifier &verifier) const {
07339     return VerifyTableStart(verifier) &&
07340            verifier.EndTable();
07341   }
07342   ZerosLikeOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
07343   void UnPackTo(ZerosLikeOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
07344   static flatbuffers::Offset<ZerosLikeOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const ZerosLikeOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
07345 };
07346 
07347 struct ZerosLikeOptionsBuilder {
07348   flatbuffers::FlatBufferBuilder &fbb_;
07349   flatbuffers::uoffset_t start_;
07350   explicit ZerosLikeOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
07351         : fbb_(_fbb) {
07352     start_ = fbb_.StartTable();
07353   }
07354   ZerosLikeOptionsBuilder &operator=(const ZerosLikeOptionsBuilder &);
07355   flatbuffers::Offset<ZerosLikeOptions> Finish() {
07356     const auto end = fbb_.EndTable(start_);
07357     auto o = flatbuffers::Offset<ZerosLikeOptions>(end);
07358     return o;
07359   }
07360 };
07361 
07362 inline flatbuffers::Offset<ZerosLikeOptions> CreateZerosLikeOptions(
07363     flatbuffers::FlatBufferBuilder &_fbb) {
07364   ZerosLikeOptionsBuilder builder_(_fbb);
07365   return builder_.Finish();
07366 }
07367 
07368 flatbuffers::Offset<ZerosLikeOptions> CreateZerosLikeOptions(flatbuffers::FlatBufferBuilder &_fbb, const ZerosLikeOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
07369 
07370 struct FillOptionsT : public flatbuffers::NativeTable {
07371   typedef FillOptions TableType;
07372   FillOptionsT() {
07373   }
07374 };
07375 
07376 struct FillOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
07377   typedef FillOptionsT NativeTableType;
07378   bool Verify(flatbuffers::Verifier &verifier) const {
07379     return VerifyTableStart(verifier) &&
07380            verifier.EndTable();
07381   }
07382   FillOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
07383   void UnPackTo(FillOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
07384   static flatbuffers::Offset<FillOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const FillOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
07385 };
07386 
07387 struct FillOptionsBuilder {
07388   flatbuffers::FlatBufferBuilder &fbb_;
07389   flatbuffers::uoffset_t start_;
07390   explicit FillOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
07391         : fbb_(_fbb) {
07392     start_ = fbb_.StartTable();
07393   }
07394   FillOptionsBuilder &operator=(const FillOptionsBuilder &);
07395   flatbuffers::Offset<FillOptions> Finish() {
07396     const auto end = fbb_.EndTable(start_);
07397     auto o = flatbuffers::Offset<FillOptions>(end);
07398     return o;
07399   }
07400 };
07401 
07402 inline flatbuffers::Offset<FillOptions> CreateFillOptions(
07403     flatbuffers::FlatBufferBuilder &_fbb) {
07404   FillOptionsBuilder builder_(_fbb);
07405   return builder_.Finish();
07406 }
07407 
07408 flatbuffers::Offset<FillOptions> CreateFillOptions(flatbuffers::FlatBufferBuilder &_fbb, const FillOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
07409 
07410 struct FloorModOptionsT : public flatbuffers::NativeTable {
07411   typedef FloorModOptions TableType;
07412   FloorModOptionsT() {
07413   }
07414 };
07415 
07416 struct FloorModOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
07417   typedef FloorModOptionsT NativeTableType;
07418   bool Verify(flatbuffers::Verifier &verifier) const {
07419     return VerifyTableStart(verifier) &&
07420            verifier.EndTable();
07421   }
07422   FloorModOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
07423   void UnPackTo(FloorModOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
07424   static flatbuffers::Offset<FloorModOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const FloorModOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
07425 };
07426 
07427 struct FloorModOptionsBuilder {
07428   flatbuffers::FlatBufferBuilder &fbb_;
07429   flatbuffers::uoffset_t start_;
07430   explicit FloorModOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
07431         : fbb_(_fbb) {
07432     start_ = fbb_.StartTable();
07433   }
07434   FloorModOptionsBuilder &operator=(const FloorModOptionsBuilder &);
07435   flatbuffers::Offset<FloorModOptions> Finish() {
07436     const auto end = fbb_.EndTable(start_);
07437     auto o = flatbuffers::Offset<FloorModOptions>(end);
07438     return o;
07439   }
07440 };
07441 
07442 inline flatbuffers::Offset<FloorModOptions> CreateFloorModOptions(
07443     flatbuffers::FlatBufferBuilder &_fbb) {
07444   FloorModOptionsBuilder builder_(_fbb);
07445   return builder_.Finish();
07446 }
07447 
07448 flatbuffers::Offset<FloorModOptions> CreateFloorModOptions(flatbuffers::FlatBufferBuilder &_fbb, const FloorModOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
07449 
07450 struct RangeOptionsT : public flatbuffers::NativeTable {
07451   typedef RangeOptions TableType;
07452   RangeOptionsT() {
07453   }
07454 };
07455 
07456 struct RangeOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
07457   typedef RangeOptionsT NativeTableType;
07458   bool Verify(flatbuffers::Verifier &verifier) const {
07459     return VerifyTableStart(verifier) &&
07460            verifier.EndTable();
07461   }
07462   RangeOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
07463   void UnPackTo(RangeOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
07464   static flatbuffers::Offset<RangeOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const RangeOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
07465 };
07466 
07467 struct RangeOptionsBuilder {
07468   flatbuffers::FlatBufferBuilder &fbb_;
07469   flatbuffers::uoffset_t start_;
07470   explicit RangeOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
07471         : fbb_(_fbb) {
07472     start_ = fbb_.StartTable();
07473   }
07474   RangeOptionsBuilder &operator=(const RangeOptionsBuilder &);
07475   flatbuffers::Offset<RangeOptions> Finish() {
07476     const auto end = fbb_.EndTable(start_);
07477     auto o = flatbuffers::Offset<RangeOptions>(end);
07478     return o;
07479   }
07480 };
07481 
07482 inline flatbuffers::Offset<RangeOptions> CreateRangeOptions(
07483     flatbuffers::FlatBufferBuilder &_fbb) {
07484   RangeOptionsBuilder builder_(_fbb);
07485   return builder_.Finish();
07486 }
07487 
07488 flatbuffers::Offset<RangeOptions> CreateRangeOptions(flatbuffers::FlatBufferBuilder &_fbb, const RangeOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
07489 
07490 struct LeakyReluOptionsT : public flatbuffers::NativeTable {
07491   typedef LeakyReluOptions TableType;
07492   float alpha;
07493   LeakyReluOptionsT()
07494       : alpha(0.0f) {
07495   }
07496 };
07497 
07498 struct LeakyReluOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
07499   typedef LeakyReluOptionsT NativeTableType;
07500   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
07501     VT_ALPHA = 4
07502   };
07503   float alpha() const {
07504     return GetField<float>(VT_ALPHA, 0.0f);
07505   }
07506   bool Verify(flatbuffers::Verifier &verifier) const {
07507     return VerifyTableStart(verifier) &&
07508            VerifyField<float>(verifier, VT_ALPHA) &&
07509            verifier.EndTable();
07510   }
07511   LeakyReluOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
07512   void UnPackTo(LeakyReluOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
07513   static flatbuffers::Offset<LeakyReluOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const LeakyReluOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
07514 };
07515 
07516 struct LeakyReluOptionsBuilder {
07517   flatbuffers::FlatBufferBuilder &fbb_;
07518   flatbuffers::uoffset_t start_;
07519   void add_alpha(float alpha) {
07520     fbb_.AddElement<float>(LeakyReluOptions::VT_ALPHA, alpha, 0.0f);
07521   }
07522   explicit LeakyReluOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
07523         : fbb_(_fbb) {
07524     start_ = fbb_.StartTable();
07525   }
07526   LeakyReluOptionsBuilder &operator=(const LeakyReluOptionsBuilder &);
07527   flatbuffers::Offset<LeakyReluOptions> Finish() {
07528     const auto end = fbb_.EndTable(start_);
07529     auto o = flatbuffers::Offset<LeakyReluOptions>(end);
07530     return o;
07531   }
07532 };
07533 
07534 inline flatbuffers::Offset<LeakyReluOptions> CreateLeakyReluOptions(
07535     flatbuffers::FlatBufferBuilder &_fbb,
07536     float alpha = 0.0f) {
07537   LeakyReluOptionsBuilder builder_(_fbb);
07538   builder_.add_alpha(alpha);
07539   return builder_.Finish();
07540 }
07541 
07542 flatbuffers::Offset<LeakyReluOptions> CreateLeakyReluOptions(flatbuffers::FlatBufferBuilder &_fbb, const LeakyReluOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
07543 
07544 struct SquaredDifferenceOptionsT : public flatbuffers::NativeTable {
07545   typedef SquaredDifferenceOptions TableType;
07546   SquaredDifferenceOptionsT() {
07547   }
07548 };
07549 
07550 struct SquaredDifferenceOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
07551   typedef SquaredDifferenceOptionsT NativeTableType;
07552   bool Verify(flatbuffers::Verifier &verifier) const {
07553     return VerifyTableStart(verifier) &&
07554            verifier.EndTable();
07555   }
07556   SquaredDifferenceOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
07557   void UnPackTo(SquaredDifferenceOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
07558   static flatbuffers::Offset<SquaredDifferenceOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const SquaredDifferenceOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
07559 };
07560 
07561 struct SquaredDifferenceOptionsBuilder {
07562   flatbuffers::FlatBufferBuilder &fbb_;
07563   flatbuffers::uoffset_t start_;
07564   explicit SquaredDifferenceOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
07565         : fbb_(_fbb) {
07566     start_ = fbb_.StartTable();
07567   }
07568   SquaredDifferenceOptionsBuilder &operator=(const SquaredDifferenceOptionsBuilder &);
07569   flatbuffers::Offset<SquaredDifferenceOptions> Finish() {
07570     const auto end = fbb_.EndTable(start_);
07571     auto o = flatbuffers::Offset<SquaredDifferenceOptions>(end);
07572     return o;
07573   }
07574 };
07575 
07576 inline flatbuffers::Offset<SquaredDifferenceOptions> CreateSquaredDifferenceOptions(
07577     flatbuffers::FlatBufferBuilder &_fbb) {
07578   SquaredDifferenceOptionsBuilder builder_(_fbb);
07579   return builder_.Finish();
07580 }
07581 
07582 flatbuffers::Offset<SquaredDifferenceOptions> CreateSquaredDifferenceOptions(flatbuffers::FlatBufferBuilder &_fbb, const SquaredDifferenceOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
07583 
07584 struct MirrorPadOptionsT : public flatbuffers::NativeTable {
07585   typedef MirrorPadOptions TableType;
07586   MirrorPadMode mode;
07587   MirrorPadOptionsT()
07588       : mode(MirrorPadMode_REFLECT) {
07589   }
07590 };
07591 
07592 struct MirrorPadOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
07593   typedef MirrorPadOptionsT NativeTableType;
07594   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
07595     VT_MODE = 4
07596   };
07597   MirrorPadMode mode() const {
07598     return static_cast<MirrorPadMode>(GetField<int8_t>(VT_MODE, 0));
07599   }
07600   bool Verify(flatbuffers::Verifier &verifier) const {
07601     return VerifyTableStart(verifier) &&
07602            VerifyField<int8_t>(verifier, VT_MODE) &&
07603            verifier.EndTable();
07604   }
07605   MirrorPadOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
07606   void UnPackTo(MirrorPadOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
07607   static flatbuffers::Offset<MirrorPadOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const MirrorPadOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
07608 };
07609 
07610 struct MirrorPadOptionsBuilder {
07611   flatbuffers::FlatBufferBuilder &fbb_;
07612   flatbuffers::uoffset_t start_;
07613   void add_mode(MirrorPadMode mode) {
07614     fbb_.AddElement<int8_t>(MirrorPadOptions::VT_MODE, static_cast<int8_t>(mode), 0);
07615   }
07616   explicit MirrorPadOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
07617         : fbb_(_fbb) {
07618     start_ = fbb_.StartTable();
07619   }
07620   MirrorPadOptionsBuilder &operator=(const MirrorPadOptionsBuilder &);
07621   flatbuffers::Offset<MirrorPadOptions> Finish() {
07622     const auto end = fbb_.EndTable(start_);
07623     auto o = flatbuffers::Offset<MirrorPadOptions>(end);
07624     return o;
07625   }
07626 };
07627 
07628 inline flatbuffers::Offset<MirrorPadOptions> CreateMirrorPadOptions(
07629     flatbuffers::FlatBufferBuilder &_fbb,
07630     MirrorPadMode mode = MirrorPadMode_REFLECT) {
07631   MirrorPadOptionsBuilder builder_(_fbb);
07632   builder_.add_mode(mode);
07633   return builder_.Finish();
07634 }
07635 
07636 flatbuffers::Offset<MirrorPadOptions> CreateMirrorPadOptions(flatbuffers::FlatBufferBuilder &_fbb, const MirrorPadOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
07637 
07638 struct UniqueOptionsT : public flatbuffers::NativeTable {
07639   typedef UniqueOptions TableType;
07640   TensorType idx_out_type;
07641   UniqueOptionsT()
07642       : idx_out_type(TensorType_INT32) {
07643   }
07644 };
07645 
07646 struct UniqueOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
07647   typedef UniqueOptionsT NativeTableType;
07648   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
07649     VT_IDX_OUT_TYPE = 4
07650   };
07651   TensorType idx_out_type() const {
07652     return static_cast<TensorType>(GetField<int8_t>(VT_IDX_OUT_TYPE, 2));
07653   }
07654   bool Verify(flatbuffers::Verifier &verifier) const {
07655     return VerifyTableStart(verifier) &&
07656            VerifyField<int8_t>(verifier, VT_IDX_OUT_TYPE) &&
07657            verifier.EndTable();
07658   }
07659   UniqueOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
07660   void UnPackTo(UniqueOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
07661   static flatbuffers::Offset<UniqueOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const UniqueOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
07662 };
07663 
07664 struct UniqueOptionsBuilder {
07665   flatbuffers::FlatBufferBuilder &fbb_;
07666   flatbuffers::uoffset_t start_;
07667   void add_idx_out_type(TensorType idx_out_type) {
07668     fbb_.AddElement<int8_t>(UniqueOptions::VT_IDX_OUT_TYPE, static_cast<int8_t>(idx_out_type), 2);
07669   }
07670   explicit UniqueOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
07671         : fbb_(_fbb) {
07672     start_ = fbb_.StartTable();
07673   }
07674   UniqueOptionsBuilder &operator=(const UniqueOptionsBuilder &);
07675   flatbuffers::Offset<UniqueOptions> Finish() {
07676     const auto end = fbb_.EndTable(start_);
07677     auto o = flatbuffers::Offset<UniqueOptions>(end);
07678     return o;
07679   }
07680 };
07681 
07682 inline flatbuffers::Offset<UniqueOptions> CreateUniqueOptions(
07683     flatbuffers::FlatBufferBuilder &_fbb,
07684     TensorType idx_out_type = TensorType_INT32) {
07685   UniqueOptionsBuilder builder_(_fbb);
07686   builder_.add_idx_out_type(idx_out_type);
07687   return builder_.Finish();
07688 }
07689 
07690 flatbuffers::Offset<UniqueOptions> CreateUniqueOptions(flatbuffers::FlatBufferBuilder &_fbb, const UniqueOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
07691 
07692 struct ReverseV2OptionsT : public flatbuffers::NativeTable {
07693   typedef ReverseV2Options TableType;
07694   ReverseV2OptionsT() {
07695   }
07696 };
07697 
07698 struct ReverseV2Options FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
07699   typedef ReverseV2OptionsT NativeTableType;
07700   bool Verify(flatbuffers::Verifier &verifier) const {
07701     return VerifyTableStart(verifier) &&
07702            verifier.EndTable();
07703   }
07704   ReverseV2OptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
07705   void UnPackTo(ReverseV2OptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
07706   static flatbuffers::Offset<ReverseV2Options> Pack(flatbuffers::FlatBufferBuilder &_fbb, const ReverseV2OptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
07707 };
07708 
07709 struct ReverseV2OptionsBuilder {
07710   flatbuffers::FlatBufferBuilder &fbb_;
07711   flatbuffers::uoffset_t start_;
07712   explicit ReverseV2OptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
07713         : fbb_(_fbb) {
07714     start_ = fbb_.StartTable();
07715   }
07716   ReverseV2OptionsBuilder &operator=(const ReverseV2OptionsBuilder &);
07717   flatbuffers::Offset<ReverseV2Options> Finish() {
07718     const auto end = fbb_.EndTable(start_);
07719     auto o = flatbuffers::Offset<ReverseV2Options>(end);
07720     return o;
07721   }
07722 };
07723 
07724 inline flatbuffers::Offset<ReverseV2Options> CreateReverseV2Options(
07725     flatbuffers::FlatBufferBuilder &_fbb) {
07726   ReverseV2OptionsBuilder builder_(_fbb);
07727   return builder_.Finish();
07728 }
07729 
07730 flatbuffers::Offset<ReverseV2Options> CreateReverseV2Options(flatbuffers::FlatBufferBuilder &_fbb, const ReverseV2OptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
07731 
07732 struct AddNOptionsT : public flatbuffers::NativeTable {
07733   typedef AddNOptions TableType;
07734   AddNOptionsT() {
07735   }
07736 };
07737 
07738 struct AddNOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
07739   typedef AddNOptionsT NativeTableType;
07740   bool Verify(flatbuffers::Verifier &verifier) const {
07741     return VerifyTableStart(verifier) &&
07742            verifier.EndTable();
07743   }
07744   AddNOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
07745   void UnPackTo(AddNOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
07746   static flatbuffers::Offset<AddNOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const AddNOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
07747 };
07748 
07749 struct AddNOptionsBuilder {
07750   flatbuffers::FlatBufferBuilder &fbb_;
07751   flatbuffers::uoffset_t start_;
07752   explicit AddNOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
07753         : fbb_(_fbb) {
07754     start_ = fbb_.StartTable();
07755   }
07756   AddNOptionsBuilder &operator=(const AddNOptionsBuilder &);
07757   flatbuffers::Offset<AddNOptions> Finish() {
07758     const auto end = fbb_.EndTable(start_);
07759     auto o = flatbuffers::Offset<AddNOptions>(end);
07760     return o;
07761   }
07762 };
07763 
07764 inline flatbuffers::Offset<AddNOptions> CreateAddNOptions(
07765     flatbuffers::FlatBufferBuilder &_fbb) {
07766   AddNOptionsBuilder builder_(_fbb);
07767   return builder_.Finish();
07768 }
07769 
07770 flatbuffers::Offset<AddNOptions> CreateAddNOptions(flatbuffers::FlatBufferBuilder &_fbb, const AddNOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
07771 
07772 struct GatherNdOptionsT : public flatbuffers::NativeTable {
07773   typedef GatherNdOptions TableType;
07774   GatherNdOptionsT() {
07775   }
07776 };
07777 
07778 struct GatherNdOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
07779   typedef GatherNdOptionsT NativeTableType;
07780   bool Verify(flatbuffers::Verifier &verifier) const {
07781     return VerifyTableStart(verifier) &&
07782            verifier.EndTable();
07783   }
07784   GatherNdOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
07785   void UnPackTo(GatherNdOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
07786   static flatbuffers::Offset<GatherNdOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const GatherNdOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
07787 };
07788 
07789 struct GatherNdOptionsBuilder {
07790   flatbuffers::FlatBufferBuilder &fbb_;
07791   flatbuffers::uoffset_t start_;
07792   explicit GatherNdOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
07793         : fbb_(_fbb) {
07794     start_ = fbb_.StartTable();
07795   }
07796   GatherNdOptionsBuilder &operator=(const GatherNdOptionsBuilder &);
07797   flatbuffers::Offset<GatherNdOptions> Finish() {
07798     const auto end = fbb_.EndTable(start_);
07799     auto o = flatbuffers::Offset<GatherNdOptions>(end);
07800     return o;
07801   }
07802 };
07803 
07804 inline flatbuffers::Offset<GatherNdOptions> CreateGatherNdOptions(
07805     flatbuffers::FlatBufferBuilder &_fbb) {
07806   GatherNdOptionsBuilder builder_(_fbb);
07807   return builder_.Finish();
07808 }
07809 
07810 flatbuffers::Offset<GatherNdOptions> CreateGatherNdOptions(flatbuffers::FlatBufferBuilder &_fbb, const GatherNdOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
07811 
07812 struct WhereOptionsT : public flatbuffers::NativeTable {
07813   typedef WhereOptions TableType;
07814   WhereOptionsT() {
07815   }
07816 };
07817 
07818 struct WhereOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
07819   typedef WhereOptionsT NativeTableType;
07820   bool Verify(flatbuffers::Verifier &verifier) const {
07821     return VerifyTableStart(verifier) &&
07822            verifier.EndTable();
07823   }
07824   WhereOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
07825   void UnPackTo(WhereOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
07826   static flatbuffers::Offset<WhereOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const WhereOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
07827 };
07828 
07829 struct WhereOptionsBuilder {
07830   flatbuffers::FlatBufferBuilder &fbb_;
07831   flatbuffers::uoffset_t start_;
07832   explicit WhereOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
07833         : fbb_(_fbb) {
07834     start_ = fbb_.StartTable();
07835   }
07836   WhereOptionsBuilder &operator=(const WhereOptionsBuilder &);
07837   flatbuffers::Offset<WhereOptions> Finish() {
07838     const auto end = fbb_.EndTable(start_);
07839     auto o = flatbuffers::Offset<WhereOptions>(end);
07840     return o;
07841   }
07842 };
07843 
07844 inline flatbuffers::Offset<WhereOptions> CreateWhereOptions(
07845     flatbuffers::FlatBufferBuilder &_fbb) {
07846   WhereOptionsBuilder builder_(_fbb);
07847   return builder_.Finish();
07848 }
07849 
07850 flatbuffers::Offset<WhereOptions> CreateWhereOptions(flatbuffers::FlatBufferBuilder &_fbb, const WhereOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
07851 
07852 struct ReverseSequenceOptionsT : public flatbuffers::NativeTable {
07853   typedef ReverseSequenceOptions TableType;
07854   int32_t seq_dim;
07855   int32_t batch_dim;
07856   ReverseSequenceOptionsT()
07857       : seq_dim(0),
07858         batch_dim(0) {
07859   }
07860 };
07861 
07862 struct ReverseSequenceOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
07863   typedef ReverseSequenceOptionsT NativeTableType;
07864   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
07865     VT_SEQ_DIM = 4,
07866     VT_BATCH_DIM = 6
07867   };
07868   int32_t seq_dim() const {
07869     return GetField<int32_t>(VT_SEQ_DIM, 0);
07870   }
07871   int32_t batch_dim() const {
07872     return GetField<int32_t>(VT_BATCH_DIM, 0);
07873   }
07874   bool Verify(flatbuffers::Verifier &verifier) const {
07875     return VerifyTableStart(verifier) &&
07876            VerifyField<int32_t>(verifier, VT_SEQ_DIM) &&
07877            VerifyField<int32_t>(verifier, VT_BATCH_DIM) &&
07878            verifier.EndTable();
07879   }
07880   ReverseSequenceOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
07881   void UnPackTo(ReverseSequenceOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
07882   static flatbuffers::Offset<ReverseSequenceOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const ReverseSequenceOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
07883 };
07884 
07885 struct ReverseSequenceOptionsBuilder {
07886   flatbuffers::FlatBufferBuilder &fbb_;
07887   flatbuffers::uoffset_t start_;
07888   void add_seq_dim(int32_t seq_dim) {
07889     fbb_.AddElement<int32_t>(ReverseSequenceOptions::VT_SEQ_DIM, seq_dim, 0);
07890   }
07891   void add_batch_dim(int32_t batch_dim) {
07892     fbb_.AddElement<int32_t>(ReverseSequenceOptions::VT_BATCH_DIM, batch_dim, 0);
07893   }
07894   explicit ReverseSequenceOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
07895         : fbb_(_fbb) {
07896     start_ = fbb_.StartTable();
07897   }
07898   ReverseSequenceOptionsBuilder &operator=(const ReverseSequenceOptionsBuilder &);
07899   flatbuffers::Offset<ReverseSequenceOptions> Finish() {
07900     const auto end = fbb_.EndTable(start_);
07901     auto o = flatbuffers::Offset<ReverseSequenceOptions>(end);
07902     return o;
07903   }
07904 };
07905 
07906 inline flatbuffers::Offset<ReverseSequenceOptions> CreateReverseSequenceOptions(
07907     flatbuffers::FlatBufferBuilder &_fbb,
07908     int32_t seq_dim = 0,
07909     int32_t batch_dim = 0) {
07910   ReverseSequenceOptionsBuilder builder_(_fbb);
07911   builder_.add_batch_dim(batch_dim);
07912   builder_.add_seq_dim(seq_dim);
07913   return builder_.Finish();
07914 }
07915 
07916 flatbuffers::Offset<ReverseSequenceOptions> CreateReverseSequenceOptions(flatbuffers::FlatBufferBuilder &_fbb, const ReverseSequenceOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
07917 
07918 struct MatrixDiagOptionsT : public flatbuffers::NativeTable {
07919   typedef MatrixDiagOptions TableType;
07920   MatrixDiagOptionsT() {
07921   }
07922 };
07923 
07924 struct MatrixDiagOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
07925   typedef MatrixDiagOptionsT NativeTableType;
07926   bool Verify(flatbuffers::Verifier &verifier) const {
07927     return VerifyTableStart(verifier) &&
07928            verifier.EndTable();
07929   }
07930   MatrixDiagOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
07931   void UnPackTo(MatrixDiagOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
07932   static flatbuffers::Offset<MatrixDiagOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const MatrixDiagOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
07933 };
07934 
07935 struct MatrixDiagOptionsBuilder {
07936   flatbuffers::FlatBufferBuilder &fbb_;
07937   flatbuffers::uoffset_t start_;
07938   explicit MatrixDiagOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
07939         : fbb_(_fbb) {
07940     start_ = fbb_.StartTable();
07941   }
07942   MatrixDiagOptionsBuilder &operator=(const MatrixDiagOptionsBuilder &);
07943   flatbuffers::Offset<MatrixDiagOptions> Finish() {
07944     const auto end = fbb_.EndTable(start_);
07945     auto o = flatbuffers::Offset<MatrixDiagOptions>(end);
07946     return o;
07947   }
07948 };
07949 
07950 inline flatbuffers::Offset<MatrixDiagOptions> CreateMatrixDiagOptions(
07951     flatbuffers::FlatBufferBuilder &_fbb) {
07952   MatrixDiagOptionsBuilder builder_(_fbb);
07953   return builder_.Finish();
07954 }
07955 
07956 flatbuffers::Offset<MatrixDiagOptions> CreateMatrixDiagOptions(flatbuffers::FlatBufferBuilder &_fbb, const MatrixDiagOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
07957 
07958 struct QuantizeOptionsT : public flatbuffers::NativeTable {
07959   typedef QuantizeOptions TableType;
07960   QuantizeOptionsT() {
07961   }
07962 };
07963 
07964 struct QuantizeOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
07965   typedef QuantizeOptionsT NativeTableType;
07966   bool Verify(flatbuffers::Verifier &verifier) const {
07967     return VerifyTableStart(verifier) &&
07968            verifier.EndTable();
07969   }
07970   QuantizeOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
07971   void UnPackTo(QuantizeOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
07972   static flatbuffers::Offset<QuantizeOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const QuantizeOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
07973 };
07974 
07975 struct QuantizeOptionsBuilder {
07976   flatbuffers::FlatBufferBuilder &fbb_;
07977   flatbuffers::uoffset_t start_;
07978   explicit QuantizeOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
07979         : fbb_(_fbb) {
07980     start_ = fbb_.StartTable();
07981   }
07982   QuantizeOptionsBuilder &operator=(const QuantizeOptionsBuilder &);
07983   flatbuffers::Offset<QuantizeOptions> Finish() {
07984     const auto end = fbb_.EndTable(start_);
07985     auto o = flatbuffers::Offset<QuantizeOptions>(end);
07986     return o;
07987   }
07988 };
07989 
07990 inline flatbuffers::Offset<QuantizeOptions> CreateQuantizeOptions(
07991     flatbuffers::FlatBufferBuilder &_fbb) {
07992   QuantizeOptionsBuilder builder_(_fbb);
07993   return builder_.Finish();
07994 }
07995 
07996 flatbuffers::Offset<QuantizeOptions> CreateQuantizeOptions(flatbuffers::FlatBufferBuilder &_fbb, const QuantizeOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
07997 
07998 struct MatrixSetDiagOptionsT : public flatbuffers::NativeTable {
07999   typedef MatrixSetDiagOptions TableType;
08000   MatrixSetDiagOptionsT() {
08001   }
08002 };
08003 
08004 struct MatrixSetDiagOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
08005   typedef MatrixSetDiagOptionsT NativeTableType;
08006   bool Verify(flatbuffers::Verifier &verifier) const {
08007     return VerifyTableStart(verifier) &&
08008            verifier.EndTable();
08009   }
08010   MatrixSetDiagOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
08011   void UnPackTo(MatrixSetDiagOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
08012   static flatbuffers::Offset<MatrixSetDiagOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const MatrixSetDiagOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
08013 };
08014 
08015 struct MatrixSetDiagOptionsBuilder {
08016   flatbuffers::FlatBufferBuilder &fbb_;
08017   flatbuffers::uoffset_t start_;
08018   explicit MatrixSetDiagOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
08019         : fbb_(_fbb) {
08020     start_ = fbb_.StartTable();
08021   }
08022   MatrixSetDiagOptionsBuilder &operator=(const MatrixSetDiagOptionsBuilder &);
08023   flatbuffers::Offset<MatrixSetDiagOptions> Finish() {
08024     const auto end = fbb_.EndTable(start_);
08025     auto o = flatbuffers::Offset<MatrixSetDiagOptions>(end);
08026     return o;
08027   }
08028 };
08029 
08030 inline flatbuffers::Offset<MatrixSetDiagOptions> CreateMatrixSetDiagOptions(
08031     flatbuffers::FlatBufferBuilder &_fbb) {
08032   MatrixSetDiagOptionsBuilder builder_(_fbb);
08033   return builder_.Finish();
08034 }
08035 
08036 flatbuffers::Offset<MatrixSetDiagOptions> CreateMatrixSetDiagOptions(flatbuffers::FlatBufferBuilder &_fbb, const MatrixSetDiagOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
08037 
08038 struct IfOptionsT : public flatbuffers::NativeTable {
08039   typedef IfOptions TableType;
08040   int32_t then_subgraph_index;
08041   int32_t else_subgraph_index;
08042   IfOptionsT()
08043       : then_subgraph_index(0),
08044         else_subgraph_index(0) {
08045   }
08046 };
08047 
08048 struct IfOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
08049   typedef IfOptionsT NativeTableType;
08050   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
08051     VT_THEN_SUBGRAPH_INDEX = 4,
08052     VT_ELSE_SUBGRAPH_INDEX = 6
08053   };
08054   int32_t then_subgraph_index() const {
08055     return GetField<int32_t>(VT_THEN_SUBGRAPH_INDEX, 0);
08056   }
08057   int32_t else_subgraph_index() const {
08058     return GetField<int32_t>(VT_ELSE_SUBGRAPH_INDEX, 0);
08059   }
08060   bool Verify(flatbuffers::Verifier &verifier) const {
08061     return VerifyTableStart(verifier) &&
08062            VerifyField<int32_t>(verifier, VT_THEN_SUBGRAPH_INDEX) &&
08063            VerifyField<int32_t>(verifier, VT_ELSE_SUBGRAPH_INDEX) &&
08064            verifier.EndTable();
08065   }
08066   IfOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
08067   void UnPackTo(IfOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
08068   static flatbuffers::Offset<IfOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const IfOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
08069 };
08070 
08071 struct IfOptionsBuilder {
08072   flatbuffers::FlatBufferBuilder &fbb_;
08073   flatbuffers::uoffset_t start_;
08074   void add_then_subgraph_index(int32_t then_subgraph_index) {
08075     fbb_.AddElement<int32_t>(IfOptions::VT_THEN_SUBGRAPH_INDEX, then_subgraph_index, 0);
08076   }
08077   void add_else_subgraph_index(int32_t else_subgraph_index) {
08078     fbb_.AddElement<int32_t>(IfOptions::VT_ELSE_SUBGRAPH_INDEX, else_subgraph_index, 0);
08079   }
08080   explicit IfOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
08081         : fbb_(_fbb) {
08082     start_ = fbb_.StartTable();
08083   }
08084   IfOptionsBuilder &operator=(const IfOptionsBuilder &);
08085   flatbuffers::Offset<IfOptions> Finish() {
08086     const auto end = fbb_.EndTable(start_);
08087     auto o = flatbuffers::Offset<IfOptions>(end);
08088     return o;
08089   }
08090 };
08091 
08092 inline flatbuffers::Offset<IfOptions> CreateIfOptions(
08093     flatbuffers::FlatBufferBuilder &_fbb,
08094     int32_t then_subgraph_index = 0,
08095     int32_t else_subgraph_index = 0) {
08096   IfOptionsBuilder builder_(_fbb);
08097   builder_.add_else_subgraph_index(else_subgraph_index);
08098   builder_.add_then_subgraph_index(then_subgraph_index);
08099   return builder_.Finish();
08100 }
08101 
08102 flatbuffers::Offset<IfOptions> CreateIfOptions(flatbuffers::FlatBufferBuilder &_fbb, const IfOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
08103 
08104 struct WhileOptionsT : public flatbuffers::NativeTable {
08105   typedef WhileOptions TableType;
08106   int32_t cond_subgraph_index;
08107   int32_t body_subgraph_index;
08108   WhileOptionsT()
08109       : cond_subgraph_index(0),
08110         body_subgraph_index(0) {
08111   }
08112 };
08113 
08114 struct WhileOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
08115   typedef WhileOptionsT NativeTableType;
08116   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
08117     VT_COND_SUBGRAPH_INDEX = 4,
08118     VT_BODY_SUBGRAPH_INDEX = 6
08119   };
08120   int32_t cond_subgraph_index() const {
08121     return GetField<int32_t>(VT_COND_SUBGRAPH_INDEX, 0);
08122   }
08123   int32_t body_subgraph_index() const {
08124     return GetField<int32_t>(VT_BODY_SUBGRAPH_INDEX, 0);
08125   }
08126   bool Verify(flatbuffers::Verifier &verifier) const {
08127     return VerifyTableStart(verifier) &&
08128            VerifyField<int32_t>(verifier, VT_COND_SUBGRAPH_INDEX) &&
08129            VerifyField<int32_t>(verifier, VT_BODY_SUBGRAPH_INDEX) &&
08130            verifier.EndTable();
08131   }
08132   WhileOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
08133   void UnPackTo(WhileOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
08134   static flatbuffers::Offset<WhileOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const WhileOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
08135 };
08136 
08137 struct WhileOptionsBuilder {
08138   flatbuffers::FlatBufferBuilder &fbb_;
08139   flatbuffers::uoffset_t start_;
08140   void add_cond_subgraph_index(int32_t cond_subgraph_index) {
08141     fbb_.AddElement<int32_t>(WhileOptions::VT_COND_SUBGRAPH_INDEX, cond_subgraph_index, 0);
08142   }
08143   void add_body_subgraph_index(int32_t body_subgraph_index) {
08144     fbb_.AddElement<int32_t>(WhileOptions::VT_BODY_SUBGRAPH_INDEX, body_subgraph_index, 0);
08145   }
08146   explicit WhileOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
08147         : fbb_(_fbb) {
08148     start_ = fbb_.StartTable();
08149   }
08150   WhileOptionsBuilder &operator=(const WhileOptionsBuilder &);
08151   flatbuffers::Offset<WhileOptions> Finish() {
08152     const auto end = fbb_.EndTable(start_);
08153     auto o = flatbuffers::Offset<WhileOptions>(end);
08154     return o;
08155   }
08156 };
08157 
08158 inline flatbuffers::Offset<WhileOptions> CreateWhileOptions(
08159     flatbuffers::FlatBufferBuilder &_fbb,
08160     int32_t cond_subgraph_index = 0,
08161     int32_t body_subgraph_index = 0) {
08162   WhileOptionsBuilder builder_(_fbb);
08163   builder_.add_body_subgraph_index(body_subgraph_index);
08164   builder_.add_cond_subgraph_index(cond_subgraph_index);
08165   return builder_.Finish();
08166 }
08167 
08168 flatbuffers::Offset<WhileOptions> CreateWhileOptions(flatbuffers::FlatBufferBuilder &_fbb, const WhileOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
08169 
08170 struct NonMaxSuppressionV4OptionsT : public flatbuffers::NativeTable {
08171   typedef NonMaxSuppressionV4Options TableType;
08172   NonMaxSuppressionV4OptionsT() {
08173   }
08174 };
08175 
08176 struct NonMaxSuppressionV4Options FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
08177   typedef NonMaxSuppressionV4OptionsT NativeTableType;
08178   bool Verify(flatbuffers::Verifier &verifier) const {
08179     return VerifyTableStart(verifier) &&
08180            verifier.EndTable();
08181   }
08182   NonMaxSuppressionV4OptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
08183   void UnPackTo(NonMaxSuppressionV4OptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
08184   static flatbuffers::Offset<NonMaxSuppressionV4Options> Pack(flatbuffers::FlatBufferBuilder &_fbb, const NonMaxSuppressionV4OptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
08185 };
08186 
08187 struct NonMaxSuppressionV4OptionsBuilder {
08188   flatbuffers::FlatBufferBuilder &fbb_;
08189   flatbuffers::uoffset_t start_;
08190   explicit NonMaxSuppressionV4OptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
08191         : fbb_(_fbb) {
08192     start_ = fbb_.StartTable();
08193   }
08194   NonMaxSuppressionV4OptionsBuilder &operator=(const NonMaxSuppressionV4OptionsBuilder &);
08195   flatbuffers::Offset<NonMaxSuppressionV4Options> Finish() {
08196     const auto end = fbb_.EndTable(start_);
08197     auto o = flatbuffers::Offset<NonMaxSuppressionV4Options>(end);
08198     return o;
08199   }
08200 };
08201 
08202 inline flatbuffers::Offset<NonMaxSuppressionV4Options> CreateNonMaxSuppressionV4Options(
08203     flatbuffers::FlatBufferBuilder &_fbb) {
08204   NonMaxSuppressionV4OptionsBuilder builder_(_fbb);
08205   return builder_.Finish();
08206 }
08207 
08208 flatbuffers::Offset<NonMaxSuppressionV4Options> CreateNonMaxSuppressionV4Options(flatbuffers::FlatBufferBuilder &_fbb, const NonMaxSuppressionV4OptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
08209 
08210 struct NonMaxSuppressionV5OptionsT : public flatbuffers::NativeTable {
08211   typedef NonMaxSuppressionV5Options TableType;
08212   NonMaxSuppressionV5OptionsT() {
08213   }
08214 };
08215 
08216 struct NonMaxSuppressionV5Options FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
08217   typedef NonMaxSuppressionV5OptionsT NativeTableType;
08218   bool Verify(flatbuffers::Verifier &verifier) const {
08219     return VerifyTableStart(verifier) &&
08220            verifier.EndTable();
08221   }
08222   NonMaxSuppressionV5OptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
08223   void UnPackTo(NonMaxSuppressionV5OptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
08224   static flatbuffers::Offset<NonMaxSuppressionV5Options> Pack(flatbuffers::FlatBufferBuilder &_fbb, const NonMaxSuppressionV5OptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
08225 };
08226 
08227 struct NonMaxSuppressionV5OptionsBuilder {
08228   flatbuffers::FlatBufferBuilder &fbb_;
08229   flatbuffers::uoffset_t start_;
08230   explicit NonMaxSuppressionV5OptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
08231         : fbb_(_fbb) {
08232     start_ = fbb_.StartTable();
08233   }
08234   NonMaxSuppressionV5OptionsBuilder &operator=(const NonMaxSuppressionV5OptionsBuilder &);
08235   flatbuffers::Offset<NonMaxSuppressionV5Options> Finish() {
08236     const auto end = fbb_.EndTable(start_);
08237     auto o = flatbuffers::Offset<NonMaxSuppressionV5Options>(end);
08238     return o;
08239   }
08240 };
08241 
08242 inline flatbuffers::Offset<NonMaxSuppressionV5Options> CreateNonMaxSuppressionV5Options(
08243     flatbuffers::FlatBufferBuilder &_fbb) {
08244   NonMaxSuppressionV5OptionsBuilder builder_(_fbb);
08245   return builder_.Finish();
08246 }
08247 
08248 flatbuffers::Offset<NonMaxSuppressionV5Options> CreateNonMaxSuppressionV5Options(flatbuffers::FlatBufferBuilder &_fbb, const NonMaxSuppressionV5OptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
08249 
08250 struct ScatterNdOptionsT : public flatbuffers::NativeTable {
08251   typedef ScatterNdOptions TableType;
08252   ScatterNdOptionsT() {
08253   }
08254 };
08255 
08256 struct ScatterNdOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
08257   typedef ScatterNdOptionsT NativeTableType;
08258   bool Verify(flatbuffers::Verifier &verifier) const {
08259     return VerifyTableStart(verifier) &&
08260            verifier.EndTable();
08261   }
08262   ScatterNdOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
08263   void UnPackTo(ScatterNdOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
08264   static flatbuffers::Offset<ScatterNdOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const ScatterNdOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
08265 };
08266 
08267 struct ScatterNdOptionsBuilder {
08268   flatbuffers::FlatBufferBuilder &fbb_;
08269   flatbuffers::uoffset_t start_;
08270   explicit ScatterNdOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
08271         : fbb_(_fbb) {
08272     start_ = fbb_.StartTable();
08273   }
08274   ScatterNdOptionsBuilder &operator=(const ScatterNdOptionsBuilder &);
08275   flatbuffers::Offset<ScatterNdOptions> Finish() {
08276     const auto end = fbb_.EndTable(start_);
08277     auto o = flatbuffers::Offset<ScatterNdOptions>(end);
08278     return o;
08279   }
08280 };
08281 
08282 inline flatbuffers::Offset<ScatterNdOptions> CreateScatterNdOptions(
08283     flatbuffers::FlatBufferBuilder &_fbb) {
08284   ScatterNdOptionsBuilder builder_(_fbb);
08285   return builder_.Finish();
08286 }
08287 
08288 flatbuffers::Offset<ScatterNdOptions> CreateScatterNdOptions(flatbuffers::FlatBufferBuilder &_fbb, const ScatterNdOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
08289 
08290 struct OperatorCodeT : public flatbuffers::NativeTable {
08291   typedef OperatorCode TableType;
08292   BuiltinOperator builtin_code;
08293   std::string custom_code;
08294   int32_t version;
08295   OperatorCodeT()
08296       : builtin_code(BuiltinOperator_ADD),
08297         version(1) {
08298   }
08299 };
08300 
08301 struct OperatorCode FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
08302   typedef OperatorCodeT NativeTableType;
08303   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
08304     VT_BUILTIN_CODE = 4,
08305     VT_CUSTOM_CODE = 6,
08306     VT_VERSION = 8
08307   };
08308   BuiltinOperator builtin_code() const {
08309     return static_cast<BuiltinOperator>(GetField<int8_t>(VT_BUILTIN_CODE, 0));
08310   }
08311   const flatbuffers::String *custom_code() const {
08312     return GetPointer<const flatbuffers::String *>(VT_CUSTOM_CODE);
08313   }
08314   int32_t version() const {
08315     return GetField<int32_t>(VT_VERSION, 1);
08316   }
08317   bool Verify(flatbuffers::Verifier &verifier) const {
08318     return VerifyTableStart(verifier) &&
08319            VerifyField<int8_t>(verifier, VT_BUILTIN_CODE) &&
08320            VerifyOffset(verifier, VT_CUSTOM_CODE) &&
08321            verifier.VerifyString(custom_code()) &&
08322            VerifyField<int32_t>(verifier, VT_VERSION) &&
08323            verifier.EndTable();
08324   }
08325   OperatorCodeT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
08326   void UnPackTo(OperatorCodeT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
08327   static flatbuffers::Offset<OperatorCode> Pack(flatbuffers::FlatBufferBuilder &_fbb, const OperatorCodeT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
08328 };
08329 
08330 struct OperatorCodeBuilder {
08331   flatbuffers::FlatBufferBuilder &fbb_;
08332   flatbuffers::uoffset_t start_;
08333   void add_builtin_code(BuiltinOperator builtin_code) {
08334     fbb_.AddElement<int8_t>(OperatorCode::VT_BUILTIN_CODE, static_cast<int8_t>(builtin_code), 0);
08335   }
08336   void add_custom_code(flatbuffers::Offset<flatbuffers::String> custom_code) {
08337     fbb_.AddOffset(OperatorCode::VT_CUSTOM_CODE, custom_code);
08338   }
08339   void add_version(int32_t version) {
08340     fbb_.AddElement<int32_t>(OperatorCode::VT_VERSION, version, 1);
08341   }
08342   explicit OperatorCodeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
08343         : fbb_(_fbb) {
08344     start_ = fbb_.StartTable();
08345   }
08346   OperatorCodeBuilder &operator=(const OperatorCodeBuilder &);
08347   flatbuffers::Offset<OperatorCode> Finish() {
08348     const auto end = fbb_.EndTable(start_);
08349     auto o = flatbuffers::Offset<OperatorCode>(end);
08350     return o;
08351   }
08352 };
08353 
08354 inline flatbuffers::Offset<OperatorCode> CreateOperatorCode(
08355     flatbuffers::FlatBufferBuilder &_fbb,
08356     BuiltinOperator builtin_code = BuiltinOperator_ADD,
08357     flatbuffers::Offset<flatbuffers::String> custom_code = 0,
08358     int32_t version = 1) {
08359   OperatorCodeBuilder builder_(_fbb);
08360   builder_.add_version(version);
08361   builder_.add_custom_code(custom_code);
08362   builder_.add_builtin_code(builtin_code);
08363   return builder_.Finish();
08364 }
08365 
08366 inline flatbuffers::Offset<OperatorCode> CreateOperatorCodeDirect(
08367     flatbuffers::FlatBufferBuilder &_fbb,
08368     BuiltinOperator builtin_code = BuiltinOperator_ADD,
08369     const char *custom_code = nullptr,
08370     int32_t version = 1) {
08371   auto custom_code__ = custom_code ? _fbb.CreateString(custom_code) : 0;
08372   return tflite::CreateOperatorCode(
08373       _fbb,
08374       builtin_code,
08375       custom_code__,
08376       version);
08377 }
08378 
08379 flatbuffers::Offset<OperatorCode> CreateOperatorCode(flatbuffers::FlatBufferBuilder &_fbb, const OperatorCodeT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
08380 
08381 struct OperatorT : public flatbuffers::NativeTable {
08382   typedef Operator TableType;
08383   uint32_t opcode_index;
08384   std::vector<int32_t> inputs;
08385   std::vector<int32_t> outputs;
08386   BuiltinOptionsUnion builtin_options;
08387   std::vector<uint8_t> custom_options;
08388   CustomOptionsFormat custom_options_format;
08389   std::vector<bool> mutating_variable_inputs;
08390   std::vector<int32_t> intermediates;
08391   OperatorT()
08392       : opcode_index(0),
08393         custom_options_format(CustomOptionsFormat_FLEXBUFFERS) {
08394   }
08395 };
08396 
08397 struct Operator FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
08398   typedef OperatorT NativeTableType;
08399   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
08400     VT_OPCODE_INDEX = 4,
08401     VT_INPUTS = 6,
08402     VT_OUTPUTS = 8,
08403     VT_BUILTIN_OPTIONS_TYPE = 10,
08404     VT_BUILTIN_OPTIONS = 12,
08405     VT_CUSTOM_OPTIONS = 14,
08406     VT_CUSTOM_OPTIONS_FORMAT = 16,
08407     VT_MUTATING_VARIABLE_INPUTS = 18,
08408     VT_INTERMEDIATES = 20
08409   };
08410   uint32_t opcode_index() const {
08411     return GetField<uint32_t>(VT_OPCODE_INDEX, 0);
08412   }
08413   const flatbuffers::Vector<int32_t> *inputs() const {
08414     return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_INPUTS);
08415   }
08416   const flatbuffers::Vector<int32_t> *outputs() const {
08417     return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_OUTPUTS);
08418   }
08419   BuiltinOptions builtin_options_type() const {
08420     return static_cast<BuiltinOptions>(GetField<uint8_t>(VT_BUILTIN_OPTIONS_TYPE, 0));
08421   }
08422   const void *builtin_options() const {
08423     return GetPointer<const void *>(VT_BUILTIN_OPTIONS);
08424   }
08425   template<typename T> const T *builtin_options_as() const;
08426   const Conv2DOptions *builtin_options_as_Conv2DOptions() const {
08427     return builtin_options_type() == BuiltinOptions_Conv2DOptions ? static_cast<const Conv2DOptions *>(builtin_options()) : nullptr;
08428   }
08429   const DepthwiseConv2DOptions *builtin_options_as_DepthwiseConv2DOptions() const {
08430     return builtin_options_type() == BuiltinOptions_DepthwiseConv2DOptions ? static_cast<const DepthwiseConv2DOptions *>(builtin_options()) : nullptr;
08431   }
08432   const ConcatEmbeddingsOptions *builtin_options_as_ConcatEmbeddingsOptions() const {
08433     return builtin_options_type() == BuiltinOptions_ConcatEmbeddingsOptions ? static_cast<const ConcatEmbeddingsOptions *>(builtin_options()) : nullptr;
08434   }
08435   const LSHProjectionOptions *builtin_options_as_LSHProjectionOptions() const {
08436     return builtin_options_type() == BuiltinOptions_LSHProjectionOptions ? static_cast<const LSHProjectionOptions *>(builtin_options()) : nullptr;
08437   }
08438   const Pool2DOptions *builtin_options_as_Pool2DOptions() const {
08439     return builtin_options_type() == BuiltinOptions_Pool2DOptions ? static_cast<const Pool2DOptions *>(builtin_options()) : nullptr;
08440   }
08441   const SVDFOptions *builtin_options_as_SVDFOptions() const {
08442     return builtin_options_type() == BuiltinOptions_SVDFOptions ? static_cast<const SVDFOptions *>(builtin_options()) : nullptr;
08443   }
08444   const RNNOptions *builtin_options_as_RNNOptions() const {
08445     return builtin_options_type() == BuiltinOptions_RNNOptions ? static_cast<const RNNOptions *>(builtin_options()) : nullptr;
08446   }
08447   const FullyConnectedOptions *builtin_options_as_FullyConnectedOptions() const {
08448     return builtin_options_type() == BuiltinOptions_FullyConnectedOptions ? static_cast<const FullyConnectedOptions *>(builtin_options()) : nullptr;
08449   }
08450   const SoftmaxOptions *builtin_options_as_SoftmaxOptions() const {
08451     return builtin_options_type() == BuiltinOptions_SoftmaxOptions ? static_cast<const SoftmaxOptions *>(builtin_options()) : nullptr;
08452   }
08453   const ConcatenationOptions *builtin_options_as_ConcatenationOptions() const {
08454     return builtin_options_type() == BuiltinOptions_ConcatenationOptions ? static_cast<const ConcatenationOptions *>(builtin_options()) : nullptr;
08455   }
08456   const AddOptions *builtin_options_as_AddOptions() const {
08457     return builtin_options_type() == BuiltinOptions_AddOptions ? static_cast<const AddOptions *>(builtin_options()) : nullptr;
08458   }
08459   const L2NormOptions *builtin_options_as_L2NormOptions() const {
08460     return builtin_options_type() == BuiltinOptions_L2NormOptions ? static_cast<const L2NormOptions *>(builtin_options()) : nullptr;
08461   }
08462   const LocalResponseNormalizationOptions *builtin_options_as_LocalResponseNormalizationOptions() const {
08463     return builtin_options_type() == BuiltinOptions_LocalResponseNormalizationOptions ? static_cast<const LocalResponseNormalizationOptions *>(builtin_options()) : nullptr;
08464   }
08465   const LSTMOptions *builtin_options_as_LSTMOptions() const {
08466     return builtin_options_type() == BuiltinOptions_LSTMOptions ? static_cast<const LSTMOptions *>(builtin_options()) : nullptr;
08467   }
08468   const ResizeBilinearOptions *builtin_options_as_ResizeBilinearOptions() const {
08469     return builtin_options_type() == BuiltinOptions_ResizeBilinearOptions ? static_cast<const ResizeBilinearOptions *>(builtin_options()) : nullptr;
08470   }
08471   const CallOptions *builtin_options_as_CallOptions() const {
08472     return builtin_options_type() == BuiltinOptions_CallOptions ? static_cast<const CallOptions *>(builtin_options()) : nullptr;
08473   }
08474   const ReshapeOptions *builtin_options_as_ReshapeOptions() const {
08475     return builtin_options_type() == BuiltinOptions_ReshapeOptions ? static_cast<const ReshapeOptions *>(builtin_options()) : nullptr;
08476   }
08477   const SkipGramOptions *builtin_options_as_SkipGramOptions() const {
08478     return builtin_options_type() == BuiltinOptions_SkipGramOptions ? static_cast<const SkipGramOptions *>(builtin_options()) : nullptr;
08479   }
08480   const SpaceToDepthOptions *builtin_options_as_SpaceToDepthOptions() const {
08481     return builtin_options_type() == BuiltinOptions_SpaceToDepthOptions ? static_cast<const SpaceToDepthOptions *>(builtin_options()) : nullptr;
08482   }
08483   const EmbeddingLookupSparseOptions *builtin_options_as_EmbeddingLookupSparseOptions() const {
08484     return builtin_options_type() == BuiltinOptions_EmbeddingLookupSparseOptions ? static_cast<const EmbeddingLookupSparseOptions *>(builtin_options()) : nullptr;
08485   }
08486   const MulOptions *builtin_options_as_MulOptions() const {
08487     return builtin_options_type() == BuiltinOptions_MulOptions ? static_cast<const MulOptions *>(builtin_options()) : nullptr;
08488   }
08489   const PadOptions *builtin_options_as_PadOptions() const {
08490     return builtin_options_type() == BuiltinOptions_PadOptions ? static_cast<const PadOptions *>(builtin_options()) : nullptr;
08491   }
08492   const GatherOptions *builtin_options_as_GatherOptions() const {
08493     return builtin_options_type() == BuiltinOptions_GatherOptions ? static_cast<const GatherOptions *>(builtin_options()) : nullptr;
08494   }
08495   const BatchToSpaceNDOptions *builtin_options_as_BatchToSpaceNDOptions() const {
08496     return builtin_options_type() == BuiltinOptions_BatchToSpaceNDOptions ? static_cast<const BatchToSpaceNDOptions *>(builtin_options()) : nullptr;
08497   }
08498   const SpaceToBatchNDOptions *builtin_options_as_SpaceToBatchNDOptions() const {
08499     return builtin_options_type() == BuiltinOptions_SpaceToBatchNDOptions ? static_cast<const SpaceToBatchNDOptions *>(builtin_options()) : nullptr;
08500   }
08501   const TransposeOptions *builtin_options_as_TransposeOptions() const {
08502     return builtin_options_type() == BuiltinOptions_TransposeOptions ? static_cast<const TransposeOptions *>(builtin_options()) : nullptr;
08503   }
08504   const ReducerOptions *builtin_options_as_ReducerOptions() const {
08505     return builtin_options_type() == BuiltinOptions_ReducerOptions ? static_cast<const ReducerOptions *>(builtin_options()) : nullptr;
08506   }
08507   const SubOptions *builtin_options_as_SubOptions() const {
08508     return builtin_options_type() == BuiltinOptions_SubOptions ? static_cast<const SubOptions *>(builtin_options()) : nullptr;
08509   }
08510   const DivOptions *builtin_options_as_DivOptions() const {
08511     return builtin_options_type() == BuiltinOptions_DivOptions ? static_cast<const DivOptions *>(builtin_options()) : nullptr;
08512   }
08513   const SqueezeOptions *builtin_options_as_SqueezeOptions() const {
08514     return builtin_options_type() == BuiltinOptions_SqueezeOptions ? static_cast<const SqueezeOptions *>(builtin_options()) : nullptr;
08515   }
08516   const SequenceRNNOptions *builtin_options_as_SequenceRNNOptions() const {
08517     return builtin_options_type() == BuiltinOptions_SequenceRNNOptions ? static_cast<const SequenceRNNOptions *>(builtin_options()) : nullptr;
08518   }
08519   const StridedSliceOptions *builtin_options_as_StridedSliceOptions() const {
08520     return builtin_options_type() == BuiltinOptions_StridedSliceOptions ? static_cast<const StridedSliceOptions *>(builtin_options()) : nullptr;
08521   }
08522   const ExpOptions *builtin_options_as_ExpOptions() const {
08523     return builtin_options_type() == BuiltinOptions_ExpOptions ? static_cast<const ExpOptions *>(builtin_options()) : nullptr;
08524   }
08525   const TopKV2Options *builtin_options_as_TopKV2Options() const {
08526     return builtin_options_type() == BuiltinOptions_TopKV2Options ? static_cast<const TopKV2Options *>(builtin_options()) : nullptr;
08527   }
08528   const SplitOptions *builtin_options_as_SplitOptions() const {
08529     return builtin_options_type() == BuiltinOptions_SplitOptions ? static_cast<const SplitOptions *>(builtin_options()) : nullptr;
08530   }
08531   const LogSoftmaxOptions *builtin_options_as_LogSoftmaxOptions() const {
08532     return builtin_options_type() == BuiltinOptions_LogSoftmaxOptions ? static_cast<const LogSoftmaxOptions *>(builtin_options()) : nullptr;
08533   }
08534   const CastOptions *builtin_options_as_CastOptions() const {
08535     return builtin_options_type() == BuiltinOptions_CastOptions ? static_cast<const CastOptions *>(builtin_options()) : nullptr;
08536   }
08537   const DequantizeOptions *builtin_options_as_DequantizeOptions() const {
08538     return builtin_options_type() == BuiltinOptions_DequantizeOptions ? static_cast<const DequantizeOptions *>(builtin_options()) : nullptr;
08539   }
08540   const MaximumMinimumOptions *builtin_options_as_MaximumMinimumOptions() const {
08541     return builtin_options_type() == BuiltinOptions_MaximumMinimumOptions ? static_cast<const MaximumMinimumOptions *>(builtin_options()) : nullptr;
08542   }
08543   const ArgMaxOptions *builtin_options_as_ArgMaxOptions() const {
08544     return builtin_options_type() == BuiltinOptions_ArgMaxOptions ? static_cast<const ArgMaxOptions *>(builtin_options()) : nullptr;
08545   }
08546   const LessOptions *builtin_options_as_LessOptions() const {
08547     return builtin_options_type() == BuiltinOptions_LessOptions ? static_cast<const LessOptions *>(builtin_options()) : nullptr;
08548   }
08549   const NegOptions *builtin_options_as_NegOptions() const {
08550     return builtin_options_type() == BuiltinOptions_NegOptions ? static_cast<const NegOptions *>(builtin_options()) : nullptr;
08551   }
08552   const PadV2Options *builtin_options_as_PadV2Options() const {
08553     return builtin_options_type() == BuiltinOptions_PadV2Options ? static_cast<const PadV2Options *>(builtin_options()) : nullptr;
08554   }
08555   const GreaterOptions *builtin_options_as_GreaterOptions() const {
08556     return builtin_options_type() == BuiltinOptions_GreaterOptions ? static_cast<const GreaterOptions *>(builtin_options()) : nullptr;
08557   }
08558   const GreaterEqualOptions *builtin_options_as_GreaterEqualOptions() const {
08559     return builtin_options_type() == BuiltinOptions_GreaterEqualOptions ? static_cast<const GreaterEqualOptions *>(builtin_options()) : nullptr;
08560   }
08561   const LessEqualOptions *builtin_options_as_LessEqualOptions() const {
08562     return builtin_options_type() == BuiltinOptions_LessEqualOptions ? static_cast<const LessEqualOptions *>(builtin_options()) : nullptr;
08563   }
08564   const SelectOptions *builtin_options_as_SelectOptions() const {
08565     return builtin_options_type() == BuiltinOptions_SelectOptions ? static_cast<const SelectOptions *>(builtin_options()) : nullptr;
08566   }
08567   const SliceOptions *builtin_options_as_SliceOptions() const {
08568     return builtin_options_type() == BuiltinOptions_SliceOptions ? static_cast<const SliceOptions *>(builtin_options()) : nullptr;
08569   }
08570   const TransposeConvOptions *builtin_options_as_TransposeConvOptions() const {
08571     return builtin_options_type() == BuiltinOptions_TransposeConvOptions ? static_cast<const TransposeConvOptions *>(builtin_options()) : nullptr;
08572   }
08573   const SparseToDenseOptions *builtin_options_as_SparseToDenseOptions() const {
08574     return builtin_options_type() == BuiltinOptions_SparseToDenseOptions ? static_cast<const SparseToDenseOptions *>(builtin_options()) : nullptr;
08575   }
08576   const TileOptions *builtin_options_as_TileOptions() const {
08577     return builtin_options_type() == BuiltinOptions_TileOptions ? static_cast<const TileOptions *>(builtin_options()) : nullptr;
08578   }
08579   const ExpandDimsOptions *builtin_options_as_ExpandDimsOptions() const {
08580     return builtin_options_type() == BuiltinOptions_ExpandDimsOptions ? static_cast<const ExpandDimsOptions *>(builtin_options()) : nullptr;
08581   }
08582   const EqualOptions *builtin_options_as_EqualOptions() const {
08583     return builtin_options_type() == BuiltinOptions_EqualOptions ? static_cast<const EqualOptions *>(builtin_options()) : nullptr;
08584   }
08585   const NotEqualOptions *builtin_options_as_NotEqualOptions() const {
08586     return builtin_options_type() == BuiltinOptions_NotEqualOptions ? static_cast<const NotEqualOptions *>(builtin_options()) : nullptr;
08587   }
08588   const ShapeOptions *builtin_options_as_ShapeOptions() const {
08589     return builtin_options_type() == BuiltinOptions_ShapeOptions ? static_cast<const ShapeOptions *>(builtin_options()) : nullptr;
08590   }
08591   const PowOptions *builtin_options_as_PowOptions() const {
08592     return builtin_options_type() == BuiltinOptions_PowOptions ? static_cast<const PowOptions *>(builtin_options()) : nullptr;
08593   }
08594   const ArgMinOptions *builtin_options_as_ArgMinOptions() const {
08595     return builtin_options_type() == BuiltinOptions_ArgMinOptions ? static_cast<const ArgMinOptions *>(builtin_options()) : nullptr;
08596   }
08597   const FakeQuantOptions *builtin_options_as_FakeQuantOptions() const {
08598     return builtin_options_type() == BuiltinOptions_FakeQuantOptions ? static_cast<const FakeQuantOptions *>(builtin_options()) : nullptr;
08599   }
08600   const PackOptions *builtin_options_as_PackOptions() const {
08601     return builtin_options_type() == BuiltinOptions_PackOptions ? static_cast<const PackOptions *>(builtin_options()) : nullptr;
08602   }
08603   const LogicalOrOptions *builtin_options_as_LogicalOrOptions() const {
08604     return builtin_options_type() == BuiltinOptions_LogicalOrOptions ? static_cast<const LogicalOrOptions *>(builtin_options()) : nullptr;
08605   }
08606   const OneHotOptions *builtin_options_as_OneHotOptions() const {
08607     return builtin_options_type() == BuiltinOptions_OneHotOptions ? static_cast<const OneHotOptions *>(builtin_options()) : nullptr;
08608   }
08609   const LogicalAndOptions *builtin_options_as_LogicalAndOptions() const {
08610     return builtin_options_type() == BuiltinOptions_LogicalAndOptions ? static_cast<const LogicalAndOptions *>(builtin_options()) : nullptr;
08611   }
08612   const LogicalNotOptions *builtin_options_as_LogicalNotOptions() const {
08613     return builtin_options_type() == BuiltinOptions_LogicalNotOptions ? static_cast<const LogicalNotOptions *>(builtin_options()) : nullptr;
08614   }
08615   const UnpackOptions *builtin_options_as_UnpackOptions() const {
08616     return builtin_options_type() == BuiltinOptions_UnpackOptions ? static_cast<const UnpackOptions *>(builtin_options()) : nullptr;
08617   }
08618   const FloorDivOptions *builtin_options_as_FloorDivOptions() const {
08619     return builtin_options_type() == BuiltinOptions_FloorDivOptions ? static_cast<const FloorDivOptions *>(builtin_options()) : nullptr;
08620   }
08621   const SquareOptions *builtin_options_as_SquareOptions() const {
08622     return builtin_options_type() == BuiltinOptions_SquareOptions ? static_cast<const SquareOptions *>(builtin_options()) : nullptr;
08623   }
08624   const ZerosLikeOptions *builtin_options_as_ZerosLikeOptions() const {
08625     return builtin_options_type() == BuiltinOptions_ZerosLikeOptions ? static_cast<const ZerosLikeOptions *>(builtin_options()) : nullptr;
08626   }
08627   const FillOptions *builtin_options_as_FillOptions() const {
08628     return builtin_options_type() == BuiltinOptions_FillOptions ? static_cast<const FillOptions *>(builtin_options()) : nullptr;
08629   }
08630   const BidirectionalSequenceLSTMOptions *builtin_options_as_BidirectionalSequenceLSTMOptions() const {
08631     return builtin_options_type() == BuiltinOptions_BidirectionalSequenceLSTMOptions ? static_cast<const BidirectionalSequenceLSTMOptions *>(builtin_options()) : nullptr;
08632   }
08633   const BidirectionalSequenceRNNOptions *builtin_options_as_BidirectionalSequenceRNNOptions() const {
08634     return builtin_options_type() == BuiltinOptions_BidirectionalSequenceRNNOptions ? static_cast<const BidirectionalSequenceRNNOptions *>(builtin_options()) : nullptr;
08635   }
08636   const UnidirectionalSequenceLSTMOptions *builtin_options_as_UnidirectionalSequenceLSTMOptions() const {
08637     return builtin_options_type() == BuiltinOptions_UnidirectionalSequenceLSTMOptions ? static_cast<const UnidirectionalSequenceLSTMOptions *>(builtin_options()) : nullptr;
08638   }
08639   const FloorModOptions *builtin_options_as_FloorModOptions() const {
08640     return builtin_options_type() == BuiltinOptions_FloorModOptions ? static_cast<const FloorModOptions *>(builtin_options()) : nullptr;
08641   }
08642   const RangeOptions *builtin_options_as_RangeOptions() const {
08643     return builtin_options_type() == BuiltinOptions_RangeOptions ? static_cast<const RangeOptions *>(builtin_options()) : nullptr;
08644   }
08645   const ResizeNearestNeighborOptions *builtin_options_as_ResizeNearestNeighborOptions() const {
08646     return builtin_options_type() == BuiltinOptions_ResizeNearestNeighborOptions ? static_cast<const ResizeNearestNeighborOptions *>(builtin_options()) : nullptr;
08647   }
08648   const LeakyReluOptions *builtin_options_as_LeakyReluOptions() const {
08649     return builtin_options_type() == BuiltinOptions_LeakyReluOptions ? static_cast<const LeakyReluOptions *>(builtin_options()) : nullptr;
08650   }
08651   const SquaredDifferenceOptions *builtin_options_as_SquaredDifferenceOptions() const {
08652     return builtin_options_type() == BuiltinOptions_SquaredDifferenceOptions ? static_cast<const SquaredDifferenceOptions *>(builtin_options()) : nullptr;
08653   }
08654   const MirrorPadOptions *builtin_options_as_MirrorPadOptions() const {
08655     return builtin_options_type() == BuiltinOptions_MirrorPadOptions ? static_cast<const MirrorPadOptions *>(builtin_options()) : nullptr;
08656   }
08657   const AbsOptions *builtin_options_as_AbsOptions() const {
08658     return builtin_options_type() == BuiltinOptions_AbsOptions ? static_cast<const AbsOptions *>(builtin_options()) : nullptr;
08659   }
08660   const SplitVOptions *builtin_options_as_SplitVOptions() const {
08661     return builtin_options_type() == BuiltinOptions_SplitVOptions ? static_cast<const SplitVOptions *>(builtin_options()) : nullptr;
08662   }
08663   const UniqueOptions *builtin_options_as_UniqueOptions() const {
08664     return builtin_options_type() == BuiltinOptions_UniqueOptions ? static_cast<const UniqueOptions *>(builtin_options()) : nullptr;
08665   }
08666   const ReverseV2Options *builtin_options_as_ReverseV2Options() const {
08667     return builtin_options_type() == BuiltinOptions_ReverseV2Options ? static_cast<const ReverseV2Options *>(builtin_options()) : nullptr;
08668   }
08669   const AddNOptions *builtin_options_as_AddNOptions() const {
08670     return builtin_options_type() == BuiltinOptions_AddNOptions ? static_cast<const AddNOptions *>(builtin_options()) : nullptr;
08671   }
08672   const GatherNdOptions *builtin_options_as_GatherNdOptions() const {
08673     return builtin_options_type() == BuiltinOptions_GatherNdOptions ? static_cast<const GatherNdOptions *>(builtin_options()) : nullptr;
08674   }
08675   const CosOptions *builtin_options_as_CosOptions() const {
08676     return builtin_options_type() == BuiltinOptions_CosOptions ? static_cast<const CosOptions *>(builtin_options()) : nullptr;
08677   }
08678   const WhereOptions *builtin_options_as_WhereOptions() const {
08679     return builtin_options_type() == BuiltinOptions_WhereOptions ? static_cast<const WhereOptions *>(builtin_options()) : nullptr;
08680   }
08681   const RankOptions *builtin_options_as_RankOptions() const {
08682     return builtin_options_type() == BuiltinOptions_RankOptions ? static_cast<const RankOptions *>(builtin_options()) : nullptr;
08683   }
08684   const ReverseSequenceOptions *builtin_options_as_ReverseSequenceOptions() const {
08685     return builtin_options_type() == BuiltinOptions_ReverseSequenceOptions ? static_cast<const ReverseSequenceOptions *>(builtin_options()) : nullptr;
08686   }
08687   const MatrixDiagOptions *builtin_options_as_MatrixDiagOptions() const {
08688     return builtin_options_type() == BuiltinOptions_MatrixDiagOptions ? static_cast<const MatrixDiagOptions *>(builtin_options()) : nullptr;
08689   }
08690   const QuantizeOptions *builtin_options_as_QuantizeOptions() const {
08691     return builtin_options_type() == BuiltinOptions_QuantizeOptions ? static_cast<const QuantizeOptions *>(builtin_options()) : nullptr;
08692   }
08693   const MatrixSetDiagOptions *builtin_options_as_MatrixSetDiagOptions() const {
08694     return builtin_options_type() == BuiltinOptions_MatrixSetDiagOptions ? static_cast<const MatrixSetDiagOptions *>(builtin_options()) : nullptr;
08695   }
08696   const HardSwishOptions *builtin_options_as_HardSwishOptions() const {
08697     return builtin_options_type() == BuiltinOptions_HardSwishOptions ? static_cast<const HardSwishOptions *>(builtin_options()) : nullptr;
08698   }
08699   const IfOptions *builtin_options_as_IfOptions() const {
08700     return builtin_options_type() == BuiltinOptions_IfOptions ? static_cast<const IfOptions *>(builtin_options()) : nullptr;
08701   }
08702   const WhileOptions *builtin_options_as_WhileOptions() const {
08703     return builtin_options_type() == BuiltinOptions_WhileOptions ? static_cast<const WhileOptions *>(builtin_options()) : nullptr;
08704   }
08705   const DepthToSpaceOptions *builtin_options_as_DepthToSpaceOptions() const {
08706     return builtin_options_type() == BuiltinOptions_DepthToSpaceOptions ? static_cast<const DepthToSpaceOptions *>(builtin_options()) : nullptr;
08707   }
08708   const NonMaxSuppressionV4Options *builtin_options_as_NonMaxSuppressionV4Options() const {
08709     return builtin_options_type() == BuiltinOptions_NonMaxSuppressionV4Options ? static_cast<const NonMaxSuppressionV4Options *>(builtin_options()) : nullptr;
08710   }
08711   const NonMaxSuppressionV5Options *builtin_options_as_NonMaxSuppressionV5Options() const {
08712     return builtin_options_type() == BuiltinOptions_NonMaxSuppressionV5Options ? static_cast<const NonMaxSuppressionV5Options *>(builtin_options()) : nullptr;
08713   }
08714   const ScatterNdOptions *builtin_options_as_ScatterNdOptions() const {
08715     return builtin_options_type() == BuiltinOptions_ScatterNdOptions ? static_cast<const ScatterNdOptions *>(builtin_options()) : nullptr;
08716   }
08717   const flatbuffers::Vector<uint8_t> *custom_options() const {
08718     return GetPointer<const flatbuffers::Vector<uint8_t> *>(VT_CUSTOM_OPTIONS);
08719   }
08720   CustomOptionsFormat custom_options_format() const {
08721     return static_cast<CustomOptionsFormat>(GetField<int8_t>(VT_CUSTOM_OPTIONS_FORMAT, 0));
08722   }
08723   const flatbuffers::Vector<uint8_t> *mutating_variable_inputs() const {
08724     return GetPointer<const flatbuffers::Vector<uint8_t> *>(VT_MUTATING_VARIABLE_INPUTS);
08725   }
08726   const flatbuffers::Vector<int32_t> *intermediates() const {
08727     return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_INTERMEDIATES);
08728   }
08729   bool Verify(flatbuffers::Verifier &verifier) const {
08730     return VerifyTableStart(verifier) &&
08731            VerifyField<uint32_t>(verifier, VT_OPCODE_INDEX) &&
08732            VerifyOffset(verifier, VT_INPUTS) &&
08733            verifier.VerifyVector(inputs()) &&
08734            VerifyOffset(verifier, VT_OUTPUTS) &&
08735            verifier.VerifyVector(outputs()) &&
08736            VerifyField<uint8_t>(verifier, VT_BUILTIN_OPTIONS_TYPE) &&
08737            VerifyOffset(verifier, VT_BUILTIN_OPTIONS) &&
08738            VerifyBuiltinOptions(verifier, builtin_options(), builtin_options_type()) &&
08739            VerifyOffset(verifier, VT_CUSTOM_OPTIONS) &&
08740            verifier.VerifyVector(custom_options()) &&
08741            VerifyField<int8_t>(verifier, VT_CUSTOM_OPTIONS_FORMAT) &&
08742            VerifyOffset(verifier, VT_MUTATING_VARIABLE_INPUTS) &&
08743            verifier.VerifyVector(mutating_variable_inputs()) &&
08744            VerifyOffset(verifier, VT_INTERMEDIATES) &&
08745            verifier.VerifyVector(intermediates()) &&
08746            verifier.EndTable();
08747   }
08748   OperatorT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
08749   void UnPackTo(OperatorT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
08750   static flatbuffers::Offset<Operator> Pack(flatbuffers::FlatBufferBuilder &_fbb, const OperatorT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
08751 };
08752 
08753 template<> inline const Conv2DOptions *Operator::builtin_options_as<Conv2DOptions>() const {
08754   return builtin_options_as_Conv2DOptions();
08755 }
08756 
08757 template<> inline const DepthwiseConv2DOptions *Operator::builtin_options_as<DepthwiseConv2DOptions>() const {
08758   return builtin_options_as_DepthwiseConv2DOptions();
08759 }
08760 
08761 template<> inline const ConcatEmbeddingsOptions *Operator::builtin_options_as<ConcatEmbeddingsOptions>() const {
08762   return builtin_options_as_ConcatEmbeddingsOptions();
08763 }
08764 
08765 template<> inline const LSHProjectionOptions *Operator::builtin_options_as<LSHProjectionOptions>() const {
08766   return builtin_options_as_LSHProjectionOptions();
08767 }
08768 
08769 template<> inline const Pool2DOptions *Operator::builtin_options_as<Pool2DOptions>() const {
08770   return builtin_options_as_Pool2DOptions();
08771 }
08772 
08773 template<> inline const SVDFOptions *Operator::builtin_options_as<SVDFOptions>() const {
08774   return builtin_options_as_SVDFOptions();
08775 }
08776 
08777 template<> inline const RNNOptions *Operator::builtin_options_as<RNNOptions>() const {
08778   return builtin_options_as_RNNOptions();
08779 }
08780 
08781 template<> inline const FullyConnectedOptions *Operator::builtin_options_as<FullyConnectedOptions>() const {
08782   return builtin_options_as_FullyConnectedOptions();
08783 }
08784 
08785 template<> inline const SoftmaxOptions *Operator::builtin_options_as<SoftmaxOptions>() const {
08786   return builtin_options_as_SoftmaxOptions();
08787 }
08788 
08789 template<> inline const ConcatenationOptions *Operator::builtin_options_as<ConcatenationOptions>() const {
08790   return builtin_options_as_ConcatenationOptions();
08791 }
08792 
08793 template<> inline const AddOptions *Operator::builtin_options_as<AddOptions>() const {
08794   return builtin_options_as_AddOptions();
08795 }
08796 
08797 template<> inline const L2NormOptions *Operator::builtin_options_as<L2NormOptions>() const {
08798   return builtin_options_as_L2NormOptions();
08799 }
08800 
08801 template<> inline const LocalResponseNormalizationOptions *Operator::builtin_options_as<LocalResponseNormalizationOptions>() const {
08802   return builtin_options_as_LocalResponseNormalizationOptions();
08803 }
08804 
08805 template<> inline const LSTMOptions *Operator::builtin_options_as<LSTMOptions>() const {
08806   return builtin_options_as_LSTMOptions();
08807 }
08808 
08809 template<> inline const ResizeBilinearOptions *Operator::builtin_options_as<ResizeBilinearOptions>() const {
08810   return builtin_options_as_ResizeBilinearOptions();
08811 }
08812 
08813 template<> inline const CallOptions *Operator::builtin_options_as<CallOptions>() const {
08814   return builtin_options_as_CallOptions();
08815 }
08816 
08817 template<> inline const ReshapeOptions *Operator::builtin_options_as<ReshapeOptions>() const {
08818   return builtin_options_as_ReshapeOptions();
08819 }
08820 
08821 template<> inline const SkipGramOptions *Operator::builtin_options_as<SkipGramOptions>() const {
08822   return builtin_options_as_SkipGramOptions();
08823 }
08824 
08825 template<> inline const SpaceToDepthOptions *Operator::builtin_options_as<SpaceToDepthOptions>() const {
08826   return builtin_options_as_SpaceToDepthOptions();
08827 }
08828 
08829 template<> inline const EmbeddingLookupSparseOptions *Operator::builtin_options_as<EmbeddingLookupSparseOptions>() const {
08830   return builtin_options_as_EmbeddingLookupSparseOptions();
08831 }
08832 
08833 template<> inline const MulOptions *Operator::builtin_options_as<MulOptions>() const {
08834   return builtin_options_as_MulOptions();
08835 }
08836 
08837 template<> inline const PadOptions *Operator::builtin_options_as<PadOptions>() const {
08838   return builtin_options_as_PadOptions();
08839 }
08840 
08841 template<> inline const GatherOptions *Operator::builtin_options_as<GatherOptions>() const {
08842   return builtin_options_as_GatherOptions();
08843 }
08844 
08845 template<> inline const BatchToSpaceNDOptions *Operator::builtin_options_as<BatchToSpaceNDOptions>() const {
08846   return builtin_options_as_BatchToSpaceNDOptions();
08847 }
08848 
08849 template<> inline const SpaceToBatchNDOptions *Operator::builtin_options_as<SpaceToBatchNDOptions>() const {
08850   return builtin_options_as_SpaceToBatchNDOptions();
08851 }
08852 
08853 template<> inline const TransposeOptions *Operator::builtin_options_as<TransposeOptions>() const {
08854   return builtin_options_as_TransposeOptions();
08855 }
08856 
08857 template<> inline const ReducerOptions *Operator::builtin_options_as<ReducerOptions>() const {
08858   return builtin_options_as_ReducerOptions();
08859 }
08860 
08861 template<> inline const SubOptions *Operator::builtin_options_as<SubOptions>() const {
08862   return builtin_options_as_SubOptions();
08863 }
08864 
08865 template<> inline const DivOptions *Operator::builtin_options_as<DivOptions>() const {
08866   return builtin_options_as_DivOptions();
08867 }
08868 
08869 template<> inline const SqueezeOptions *Operator::builtin_options_as<SqueezeOptions>() const {
08870   return builtin_options_as_SqueezeOptions();
08871 }
08872 
08873 template<> inline const SequenceRNNOptions *Operator::builtin_options_as<SequenceRNNOptions>() const {
08874   return builtin_options_as_SequenceRNNOptions();
08875 }
08876 
08877 template<> inline const StridedSliceOptions *Operator::builtin_options_as<StridedSliceOptions>() const {
08878   return builtin_options_as_StridedSliceOptions();
08879 }
08880 
08881 template<> inline const ExpOptions *Operator::builtin_options_as<ExpOptions>() const {
08882   return builtin_options_as_ExpOptions();
08883 }
08884 
08885 template<> inline const TopKV2Options *Operator::builtin_options_as<TopKV2Options>() const {
08886   return builtin_options_as_TopKV2Options();
08887 }
08888 
08889 template<> inline const SplitOptions *Operator::builtin_options_as<SplitOptions>() const {
08890   return builtin_options_as_SplitOptions();
08891 }
08892 
08893 template<> inline const LogSoftmaxOptions *Operator::builtin_options_as<LogSoftmaxOptions>() const {
08894   return builtin_options_as_LogSoftmaxOptions();
08895 }
08896 
08897 template<> inline const CastOptions *Operator::builtin_options_as<CastOptions>() const {
08898   return builtin_options_as_CastOptions();
08899 }
08900 
08901 template<> inline const DequantizeOptions *Operator::builtin_options_as<DequantizeOptions>() const {
08902   return builtin_options_as_DequantizeOptions();
08903 }
08904 
08905 template<> inline const MaximumMinimumOptions *Operator::builtin_options_as<MaximumMinimumOptions>() const {
08906   return builtin_options_as_MaximumMinimumOptions();
08907 }
08908 
08909 template<> inline const ArgMaxOptions *Operator::builtin_options_as<ArgMaxOptions>() const {
08910   return builtin_options_as_ArgMaxOptions();
08911 }
08912 
08913 template<> inline const LessOptions *Operator::builtin_options_as<LessOptions>() const {
08914   return builtin_options_as_LessOptions();
08915 }
08916 
08917 template<> inline const NegOptions *Operator::builtin_options_as<NegOptions>() const {
08918   return builtin_options_as_NegOptions();
08919 }
08920 
08921 template<> inline const PadV2Options *Operator::builtin_options_as<PadV2Options>() const {
08922   return builtin_options_as_PadV2Options();
08923 }
08924 
08925 template<> inline const GreaterOptions *Operator::builtin_options_as<GreaterOptions>() const {
08926   return builtin_options_as_GreaterOptions();
08927 }
08928 
08929 template<> inline const GreaterEqualOptions *Operator::builtin_options_as<GreaterEqualOptions>() const {
08930   return builtin_options_as_GreaterEqualOptions();
08931 }
08932 
08933 template<> inline const LessEqualOptions *Operator::builtin_options_as<LessEqualOptions>() const {
08934   return builtin_options_as_LessEqualOptions();
08935 }
08936 
08937 template<> inline const SelectOptions *Operator::builtin_options_as<SelectOptions>() const {
08938   return builtin_options_as_SelectOptions();
08939 }
08940 
08941 template<> inline const SliceOptions *Operator::builtin_options_as<SliceOptions>() const {
08942   return builtin_options_as_SliceOptions();
08943 }
08944 
08945 template<> inline const TransposeConvOptions *Operator::builtin_options_as<TransposeConvOptions>() const {
08946   return builtin_options_as_TransposeConvOptions();
08947 }
08948 
08949 template<> inline const SparseToDenseOptions *Operator::builtin_options_as<SparseToDenseOptions>() const {
08950   return builtin_options_as_SparseToDenseOptions();
08951 }
08952 
08953 template<> inline const TileOptions *Operator::builtin_options_as<TileOptions>() const {
08954   return builtin_options_as_TileOptions();
08955 }
08956 
08957 template<> inline const ExpandDimsOptions *Operator::builtin_options_as<ExpandDimsOptions>() const {
08958   return builtin_options_as_ExpandDimsOptions();
08959 }
08960 
08961 template<> inline const EqualOptions *Operator::builtin_options_as<EqualOptions>() const {
08962   return builtin_options_as_EqualOptions();
08963 }
08964 
08965 template<> inline const NotEqualOptions *Operator::builtin_options_as<NotEqualOptions>() const {
08966   return builtin_options_as_NotEqualOptions();
08967 }
08968 
08969 template<> inline const ShapeOptions *Operator::builtin_options_as<ShapeOptions>() const {
08970   return builtin_options_as_ShapeOptions();
08971 }
08972 
08973 template<> inline const PowOptions *Operator::builtin_options_as<PowOptions>() const {
08974   return builtin_options_as_PowOptions();
08975 }
08976 
08977 template<> inline const ArgMinOptions *Operator::builtin_options_as<ArgMinOptions>() const {
08978   return builtin_options_as_ArgMinOptions();
08979 }
08980 
08981 template<> inline const FakeQuantOptions *Operator::builtin_options_as<FakeQuantOptions>() const {
08982   return builtin_options_as_FakeQuantOptions();
08983 }
08984 
08985 template<> inline const PackOptions *Operator::builtin_options_as<PackOptions>() const {
08986   return builtin_options_as_PackOptions();
08987 }
08988 
08989 template<> inline const LogicalOrOptions *Operator::builtin_options_as<LogicalOrOptions>() const {
08990   return builtin_options_as_LogicalOrOptions();
08991 }
08992 
08993 template<> inline const OneHotOptions *Operator::builtin_options_as<OneHotOptions>() const {
08994   return builtin_options_as_OneHotOptions();
08995 }
08996 
08997 template<> inline const LogicalAndOptions *Operator::builtin_options_as<LogicalAndOptions>() const {
08998   return builtin_options_as_LogicalAndOptions();
08999 }
09000 
09001 template<> inline const LogicalNotOptions *Operator::builtin_options_as<LogicalNotOptions>() const {
09002   return builtin_options_as_LogicalNotOptions();
09003 }
09004 
09005 template<> inline const UnpackOptions *Operator::builtin_options_as<UnpackOptions>() const {
09006   return builtin_options_as_UnpackOptions();
09007 }
09008 
09009 template<> inline const FloorDivOptions *Operator::builtin_options_as<FloorDivOptions>() const {
09010   return builtin_options_as_FloorDivOptions();
09011 }
09012 
09013 template<> inline const SquareOptions *Operator::builtin_options_as<SquareOptions>() const {
09014   return builtin_options_as_SquareOptions();
09015 }
09016 
09017 template<> inline const ZerosLikeOptions *Operator::builtin_options_as<ZerosLikeOptions>() const {
09018   return builtin_options_as_ZerosLikeOptions();
09019 }
09020 
09021 template<> inline const FillOptions *Operator::builtin_options_as<FillOptions>() const {
09022   return builtin_options_as_FillOptions();
09023 }
09024 
09025 template<> inline const BidirectionalSequenceLSTMOptions *Operator::builtin_options_as<BidirectionalSequenceLSTMOptions>() const {
09026   return builtin_options_as_BidirectionalSequenceLSTMOptions();
09027 }
09028 
09029 template<> inline const BidirectionalSequenceRNNOptions *Operator::builtin_options_as<BidirectionalSequenceRNNOptions>() const {
09030   return builtin_options_as_BidirectionalSequenceRNNOptions();
09031 }
09032 
09033 template<> inline const UnidirectionalSequenceLSTMOptions *Operator::builtin_options_as<UnidirectionalSequenceLSTMOptions>() const {
09034   return builtin_options_as_UnidirectionalSequenceLSTMOptions();
09035 }
09036 
09037 template<> inline const FloorModOptions *Operator::builtin_options_as<FloorModOptions>() const {
09038   return builtin_options_as_FloorModOptions();
09039 }
09040 
09041 template<> inline const RangeOptions *Operator::builtin_options_as<RangeOptions>() const {
09042   return builtin_options_as_RangeOptions();
09043 }
09044 
09045 template<> inline const ResizeNearestNeighborOptions *Operator::builtin_options_as<ResizeNearestNeighborOptions>() const {
09046   return builtin_options_as_ResizeNearestNeighborOptions();
09047 }
09048 
09049 template<> inline const LeakyReluOptions *Operator::builtin_options_as<LeakyReluOptions>() const {
09050   return builtin_options_as_LeakyReluOptions();
09051 }
09052 
09053 template<> inline const SquaredDifferenceOptions *Operator::builtin_options_as<SquaredDifferenceOptions>() const {
09054   return builtin_options_as_SquaredDifferenceOptions();
09055 }
09056 
09057 template<> inline const MirrorPadOptions *Operator::builtin_options_as<MirrorPadOptions>() const {
09058   return builtin_options_as_MirrorPadOptions();
09059 }
09060 
09061 template<> inline const AbsOptions *Operator::builtin_options_as<AbsOptions>() const {
09062   return builtin_options_as_AbsOptions();
09063 }
09064 
09065 template<> inline const SplitVOptions *Operator::builtin_options_as<SplitVOptions>() const {
09066   return builtin_options_as_SplitVOptions();
09067 }
09068 
09069 template<> inline const UniqueOptions *Operator::builtin_options_as<UniqueOptions>() const {
09070   return builtin_options_as_UniqueOptions();
09071 }
09072 
09073 template<> inline const ReverseV2Options *Operator::builtin_options_as<ReverseV2Options>() const {
09074   return builtin_options_as_ReverseV2Options();
09075 }
09076 
09077 template<> inline const AddNOptions *Operator::builtin_options_as<AddNOptions>() const {
09078   return builtin_options_as_AddNOptions();
09079 }
09080 
09081 template<> inline const GatherNdOptions *Operator::builtin_options_as<GatherNdOptions>() const {
09082   return builtin_options_as_GatherNdOptions();
09083 }
09084 
09085 template<> inline const CosOptions *Operator::builtin_options_as<CosOptions>() const {
09086   return builtin_options_as_CosOptions();
09087 }
09088 
09089 template<> inline const WhereOptions *Operator::builtin_options_as<WhereOptions>() const {
09090   return builtin_options_as_WhereOptions();
09091 }
09092 
09093 template<> inline const RankOptions *Operator::builtin_options_as<RankOptions>() const {
09094   return builtin_options_as_RankOptions();
09095 }
09096 
09097 template<> inline const ReverseSequenceOptions *Operator::builtin_options_as<ReverseSequenceOptions>() const {
09098   return builtin_options_as_ReverseSequenceOptions();
09099 }
09100 
09101 template<> inline const MatrixDiagOptions *Operator::builtin_options_as<MatrixDiagOptions>() const {
09102   return builtin_options_as_MatrixDiagOptions();
09103 }
09104 
09105 template<> inline const QuantizeOptions *Operator::builtin_options_as<QuantizeOptions>() const {
09106   return builtin_options_as_QuantizeOptions();
09107 }
09108 
09109 template<> inline const MatrixSetDiagOptions *Operator::builtin_options_as<MatrixSetDiagOptions>() const {
09110   return builtin_options_as_MatrixSetDiagOptions();
09111 }
09112 
09113 template<> inline const HardSwishOptions *Operator::builtin_options_as<HardSwishOptions>() const {
09114   return builtin_options_as_HardSwishOptions();
09115 }
09116 
09117 template<> inline const IfOptions *Operator::builtin_options_as<IfOptions>() const {
09118   return builtin_options_as_IfOptions();
09119 }
09120 
09121 template<> inline const WhileOptions *Operator::builtin_options_as<WhileOptions>() const {
09122   return builtin_options_as_WhileOptions();
09123 }
09124 
09125 template<> inline const DepthToSpaceOptions *Operator::builtin_options_as<DepthToSpaceOptions>() const {
09126   return builtin_options_as_DepthToSpaceOptions();
09127 }
09128 
09129 template<> inline const NonMaxSuppressionV4Options *Operator::builtin_options_as<NonMaxSuppressionV4Options>() const {
09130   return builtin_options_as_NonMaxSuppressionV4Options();
09131 }
09132 
09133 template<> inline const NonMaxSuppressionV5Options *Operator::builtin_options_as<NonMaxSuppressionV5Options>() const {
09134   return builtin_options_as_NonMaxSuppressionV5Options();
09135 }
09136 
09137 template<> inline const ScatterNdOptions *Operator::builtin_options_as<ScatterNdOptions>() const {
09138   return builtin_options_as_ScatterNdOptions();
09139 }
09140 
09141 struct OperatorBuilder {
09142   flatbuffers::FlatBufferBuilder &fbb_;
09143   flatbuffers::uoffset_t start_;
09144   void add_opcode_index(uint32_t opcode_index) {
09145     fbb_.AddElement<uint32_t>(Operator::VT_OPCODE_INDEX, opcode_index, 0);
09146   }
09147   void add_inputs(flatbuffers::Offset<flatbuffers::Vector<int32_t>> inputs) {
09148     fbb_.AddOffset(Operator::VT_INPUTS, inputs);
09149   }
09150   void add_outputs(flatbuffers::Offset<flatbuffers::Vector<int32_t>> outputs) {
09151     fbb_.AddOffset(Operator::VT_OUTPUTS, outputs);
09152   }
09153   void add_builtin_options_type(BuiltinOptions builtin_options_type) {
09154     fbb_.AddElement<uint8_t>(Operator::VT_BUILTIN_OPTIONS_TYPE, static_cast<uint8_t>(builtin_options_type), 0);
09155   }
09156   void add_builtin_options(flatbuffers::Offset<void> builtin_options) {
09157     fbb_.AddOffset(Operator::VT_BUILTIN_OPTIONS, builtin_options);
09158   }
09159   void add_custom_options(flatbuffers::Offset<flatbuffers::Vector<uint8_t>> custom_options) {
09160     fbb_.AddOffset(Operator::VT_CUSTOM_OPTIONS, custom_options);
09161   }
09162   void add_custom_options_format(CustomOptionsFormat custom_options_format) {
09163     fbb_.AddElement<int8_t>(Operator::VT_CUSTOM_OPTIONS_FORMAT, static_cast<int8_t>(custom_options_format), 0);
09164   }
09165   void add_mutating_variable_inputs(flatbuffers::Offset<flatbuffers::Vector<uint8_t>> mutating_variable_inputs) {
09166     fbb_.AddOffset(Operator::VT_MUTATING_VARIABLE_INPUTS, mutating_variable_inputs);
09167   }
09168   void add_intermediates(flatbuffers::Offset<flatbuffers::Vector<int32_t>> intermediates) {
09169     fbb_.AddOffset(Operator::VT_INTERMEDIATES, intermediates);
09170   }
09171   explicit OperatorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
09172         : fbb_(_fbb) {
09173     start_ = fbb_.StartTable();
09174   }
09175   OperatorBuilder &operator=(const OperatorBuilder &);
09176   flatbuffers::Offset<Operator> Finish() {
09177     const auto end = fbb_.EndTable(start_);
09178     auto o = flatbuffers::Offset<Operator>(end);
09179     return o;
09180   }
09181 };
09182 
09183 inline flatbuffers::Offset<Operator> CreateOperator(
09184     flatbuffers::FlatBufferBuilder &_fbb,
09185     uint32_t opcode_index = 0,
09186     flatbuffers::Offset<flatbuffers::Vector<int32_t>> inputs = 0,
09187     flatbuffers::Offset<flatbuffers::Vector<int32_t>> outputs = 0,
09188     BuiltinOptions builtin_options_type = BuiltinOptions_NONE,
09189     flatbuffers::Offset<void> builtin_options = 0,
09190     flatbuffers::Offset<flatbuffers::Vector<uint8_t>> custom_options = 0,
09191     CustomOptionsFormat custom_options_format = CustomOptionsFormat_FLEXBUFFERS,
09192     flatbuffers::Offset<flatbuffers::Vector<uint8_t>> mutating_variable_inputs = 0,
09193     flatbuffers::Offset<flatbuffers::Vector<int32_t>> intermediates = 0) {
09194   OperatorBuilder builder_(_fbb);
09195   builder_.add_intermediates(intermediates);
09196   builder_.add_mutating_variable_inputs(mutating_variable_inputs);
09197   builder_.add_custom_options(custom_options);
09198   builder_.add_builtin_options(builtin_options);
09199   builder_.add_outputs(outputs);
09200   builder_.add_inputs(inputs);
09201   builder_.add_opcode_index(opcode_index);
09202   builder_.add_custom_options_format(custom_options_format);
09203   builder_.add_builtin_options_type(builtin_options_type);
09204   return builder_.Finish();
09205 }
09206 
09207 inline flatbuffers::Offset<Operator> CreateOperatorDirect(
09208     flatbuffers::FlatBufferBuilder &_fbb,
09209     uint32_t opcode_index = 0,
09210     const std::vector<int32_t> *inputs = nullptr,
09211     const std::vector<int32_t> *outputs = nullptr,
09212     BuiltinOptions builtin_options_type = BuiltinOptions_NONE,
09213     flatbuffers::Offset<void> builtin_options = 0,
09214     const std::vector<uint8_t> *custom_options = nullptr,
09215     CustomOptionsFormat custom_options_format = CustomOptionsFormat_FLEXBUFFERS,
09216     const std::vector<uint8_t> *mutating_variable_inputs = nullptr,
09217     const std::vector<int32_t> *intermediates = nullptr) {
09218   auto inputs__ = inputs ? _fbb.CreateVector<int32_t>(*inputs) : 0;
09219   auto outputs__ = outputs ? _fbb.CreateVector<int32_t>(*outputs) : 0;
09220   auto custom_options__ = custom_options ? _fbb.CreateVector<uint8_t>(*custom_options) : 0;
09221   auto mutating_variable_inputs__ = mutating_variable_inputs ? _fbb.CreateVector<uint8_t>(*mutating_variable_inputs) : 0;
09222   auto intermediates__ = intermediates ? _fbb.CreateVector<int32_t>(*intermediates) : 0;
09223   return tflite::CreateOperator(
09224       _fbb,
09225       opcode_index,
09226       inputs__,
09227       outputs__,
09228       builtin_options_type,
09229       builtin_options,
09230       custom_options__,
09231       custom_options_format,
09232       mutating_variable_inputs__,
09233       intermediates__);
09234 }
09235 
09236 flatbuffers::Offset<Operator> CreateOperator(flatbuffers::FlatBufferBuilder &_fbb, const OperatorT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
09237 
09238 struct SubGraphT : public flatbuffers::NativeTable {
09239   typedef SubGraph TableType;
09240   std::vector<std::unique_ptr<TensorT>> tensors;
09241   std::vector<int32_t> inputs;
09242   std::vector<int32_t> outputs;
09243   std::vector<std::unique_ptr<OperatorT>> operators;
09244   std::string name;
09245   SubGraphT() {
09246   }
09247 };
09248 
09249 struct SubGraph FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
09250   typedef SubGraphT NativeTableType;
09251   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
09252     VT_TENSORS = 4,
09253     VT_INPUTS = 6,
09254     VT_OUTPUTS = 8,
09255     VT_OPERATORS = 10,
09256     VT_NAME = 12
09257   };
09258   const flatbuffers::Vector<flatbuffers::Offset<Tensor>> *tensors() const {
09259     return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<Tensor>> *>(VT_TENSORS);
09260   }
09261   const flatbuffers::Vector<int32_t> *inputs() const {
09262     return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_INPUTS);
09263   }
09264   const flatbuffers::Vector<int32_t> *outputs() const {
09265     return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_OUTPUTS);
09266   }
09267   const flatbuffers::Vector<flatbuffers::Offset<Operator>> *operators() const {
09268     return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<Operator>> *>(VT_OPERATORS);
09269   }
09270   const flatbuffers::String *name() const {
09271     return GetPointer<const flatbuffers::String *>(VT_NAME);
09272   }
09273   bool Verify(flatbuffers::Verifier &verifier) const {
09274     return VerifyTableStart(verifier) &&
09275            VerifyOffset(verifier, VT_TENSORS) &&
09276            verifier.VerifyVector(tensors()) &&
09277            verifier.VerifyVectorOfTables(tensors()) &&
09278            VerifyOffset(verifier, VT_INPUTS) &&
09279            verifier.VerifyVector(inputs()) &&
09280            VerifyOffset(verifier, VT_OUTPUTS) &&
09281            verifier.VerifyVector(outputs()) &&
09282            VerifyOffset(verifier, VT_OPERATORS) &&
09283            verifier.VerifyVector(operators()) &&
09284            verifier.VerifyVectorOfTables(operators()) &&
09285            VerifyOffset(verifier, VT_NAME) &&
09286            verifier.VerifyString(name()) &&
09287            verifier.EndTable();
09288   }
09289   SubGraphT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
09290   void UnPackTo(SubGraphT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
09291   static flatbuffers::Offset<SubGraph> Pack(flatbuffers::FlatBufferBuilder &_fbb, const SubGraphT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
09292 };
09293 
09294 struct SubGraphBuilder {
09295   flatbuffers::FlatBufferBuilder &fbb_;
09296   flatbuffers::uoffset_t start_;
09297   void add_tensors(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<Tensor>>> tensors) {
09298     fbb_.AddOffset(SubGraph::VT_TENSORS, tensors);
09299   }
09300   void add_inputs(flatbuffers::Offset<flatbuffers::Vector<int32_t>> inputs) {
09301     fbb_.AddOffset(SubGraph::VT_INPUTS, inputs);
09302   }
09303   void add_outputs(flatbuffers::Offset<flatbuffers::Vector<int32_t>> outputs) {
09304     fbb_.AddOffset(SubGraph::VT_OUTPUTS, outputs);
09305   }
09306   void add_operators(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<Operator>>> operators) {
09307     fbb_.AddOffset(SubGraph::VT_OPERATORS, operators);
09308   }
09309   void add_name(flatbuffers::Offset<flatbuffers::String> name) {
09310     fbb_.AddOffset(SubGraph::VT_NAME, name);
09311   }
09312   explicit SubGraphBuilder(flatbuffers::FlatBufferBuilder &_fbb)
09313         : fbb_(_fbb) {
09314     start_ = fbb_.StartTable();
09315   }
09316   SubGraphBuilder &operator=(const SubGraphBuilder &);
09317   flatbuffers::Offset<SubGraph> Finish() {
09318     const auto end = fbb_.EndTable(start_);
09319     auto o = flatbuffers::Offset<SubGraph>(end);
09320     return o;
09321   }
09322 };
09323 
09324 inline flatbuffers::Offset<SubGraph> CreateSubGraph(
09325     flatbuffers::FlatBufferBuilder &_fbb,
09326     flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<Tensor>>> tensors = 0,
09327     flatbuffers::Offset<flatbuffers::Vector<int32_t>> inputs = 0,
09328     flatbuffers::Offset<flatbuffers::Vector<int32_t>> outputs = 0,
09329     flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<Operator>>> operators = 0,
09330     flatbuffers::Offset<flatbuffers::String> name = 0) {
09331   SubGraphBuilder builder_(_fbb);
09332   builder_.add_name(name);
09333   builder_.add_operators(operators);
09334   builder_.add_outputs(outputs);
09335   builder_.add_inputs(inputs);
09336   builder_.add_tensors(tensors);
09337   return builder_.Finish();
09338 }
09339 
09340 inline flatbuffers::Offset<SubGraph> CreateSubGraphDirect(
09341     flatbuffers::FlatBufferBuilder &_fbb,
09342     const std::vector<flatbuffers::Offset<Tensor>> *tensors = nullptr,
09343     const std::vector<int32_t> *inputs = nullptr,
09344     const std::vector<int32_t> *outputs = nullptr,
09345     const std::vector<flatbuffers::Offset<Operator>> *operators = nullptr,
09346     const char *name = nullptr) {
09347   auto tensors__ = tensors ? _fbb.CreateVector<flatbuffers::Offset<Tensor>>(*tensors) : 0;
09348   auto inputs__ = inputs ? _fbb.CreateVector<int32_t>(*inputs) : 0;
09349   auto outputs__ = outputs ? _fbb.CreateVector<int32_t>(*outputs) : 0;
09350   auto operators__ = operators ? _fbb.CreateVector<flatbuffers::Offset<Operator>>(*operators) : 0;
09351   auto name__ = name ? _fbb.CreateString(name) : 0;
09352   return tflite::CreateSubGraph(
09353       _fbb,
09354       tensors__,
09355       inputs__,
09356       outputs__,
09357       operators__,
09358       name__);
09359 }
09360 
09361 flatbuffers::Offset<SubGraph> CreateSubGraph(flatbuffers::FlatBufferBuilder &_fbb, const SubGraphT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
09362 
09363 struct BufferT : public flatbuffers::NativeTable {
09364   typedef Buffer TableType;
09365   std::vector<uint8_t> data;
09366   BufferT() {
09367   }
09368 };
09369 
09370 struct Buffer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
09371   typedef BufferT NativeTableType;
09372   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
09373     VT_DATA = 4
09374   };
09375   const flatbuffers::Vector<uint8_t> *data() const {
09376     return GetPointer<const flatbuffers::Vector<uint8_t> *>(VT_DATA);
09377   }
09378   bool Verify(flatbuffers::Verifier &verifier) const {
09379     return VerifyTableStart(verifier) &&
09380            VerifyOffset(verifier, VT_DATA) &&
09381            verifier.VerifyVector(data()) &&
09382            verifier.EndTable();
09383   }
09384   BufferT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
09385   void UnPackTo(BufferT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
09386   static flatbuffers::Offset<Buffer> Pack(flatbuffers::FlatBufferBuilder &_fbb, const BufferT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
09387 };
09388 
09389 struct BufferBuilder {
09390   flatbuffers::FlatBufferBuilder &fbb_;
09391   flatbuffers::uoffset_t start_;
09392   void add_data(flatbuffers::Offset<flatbuffers::Vector<uint8_t>> data) {
09393     fbb_.AddOffset(Buffer::VT_DATA, data);
09394   }
09395   explicit BufferBuilder(flatbuffers::FlatBufferBuilder &_fbb)
09396         : fbb_(_fbb) {
09397     start_ = fbb_.StartTable();
09398   }
09399   BufferBuilder &operator=(const BufferBuilder &);
09400   flatbuffers::Offset<Buffer> Finish() {
09401     const auto end = fbb_.EndTable(start_);
09402     auto o = flatbuffers::Offset<Buffer>(end);
09403     return o;
09404   }
09405 };
09406 
09407 inline flatbuffers::Offset<Buffer> CreateBuffer(
09408     flatbuffers::FlatBufferBuilder &_fbb,
09409     flatbuffers::Offset<flatbuffers::Vector<uint8_t>> data = 0) {
09410   BufferBuilder builder_(_fbb);
09411   builder_.add_data(data);
09412   return builder_.Finish();
09413 }
09414 
09415 inline flatbuffers::Offset<Buffer> CreateBufferDirect(
09416     flatbuffers::FlatBufferBuilder &_fbb,
09417     const std::vector<uint8_t> *data = nullptr) {
09418   auto data__ = data ? _fbb.CreateVector<uint8_t>(*data) : 0;
09419   return tflite::CreateBuffer(
09420       _fbb,
09421       data__);
09422 }
09423 
09424 flatbuffers::Offset<Buffer> CreateBuffer(flatbuffers::FlatBufferBuilder &_fbb, const BufferT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
09425 
09426 struct MetadataT : public flatbuffers::NativeTable {
09427   typedef Metadata TableType;
09428   std::string name;
09429   uint32_t buffer;
09430   MetadataT()
09431       : buffer(0) {
09432   }
09433 };
09434 
09435 struct Metadata FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
09436   typedef MetadataT NativeTableType;
09437   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
09438     VT_NAME = 4,
09439     VT_BUFFER = 6
09440   };
09441   const flatbuffers::String *name() const {
09442     return GetPointer<const flatbuffers::String *>(VT_NAME);
09443   }
09444   uint32_t buffer() const {
09445     return GetField<uint32_t>(VT_BUFFER, 0);
09446   }
09447   bool Verify(flatbuffers::Verifier &verifier) const {
09448     return VerifyTableStart(verifier) &&
09449            VerifyOffset(verifier, VT_NAME) &&
09450            verifier.VerifyString(name()) &&
09451            VerifyField<uint32_t>(verifier, VT_BUFFER) &&
09452            verifier.EndTable();
09453   }
09454   MetadataT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
09455   void UnPackTo(MetadataT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
09456   static flatbuffers::Offset<Metadata> Pack(flatbuffers::FlatBufferBuilder &_fbb, const MetadataT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
09457 };
09458 
09459 struct MetadataBuilder {
09460   flatbuffers::FlatBufferBuilder &fbb_;
09461   flatbuffers::uoffset_t start_;
09462   void add_name(flatbuffers::Offset<flatbuffers::String> name) {
09463     fbb_.AddOffset(Metadata::VT_NAME, name);
09464   }
09465   void add_buffer(uint32_t buffer) {
09466     fbb_.AddElement<uint32_t>(Metadata::VT_BUFFER, buffer, 0);
09467   }
09468   explicit MetadataBuilder(flatbuffers::FlatBufferBuilder &_fbb)
09469         : fbb_(_fbb) {
09470     start_ = fbb_.StartTable();
09471   }
09472   MetadataBuilder &operator=(const MetadataBuilder &);
09473   flatbuffers::Offset<Metadata> Finish() {
09474     const auto end = fbb_.EndTable(start_);
09475     auto o = flatbuffers::Offset<Metadata>(end);
09476     return o;
09477   }
09478 };
09479 
09480 inline flatbuffers::Offset<Metadata> CreateMetadata(
09481     flatbuffers::FlatBufferBuilder &_fbb,
09482     flatbuffers::Offset<flatbuffers::String> name = 0,
09483     uint32_t buffer = 0) {
09484   MetadataBuilder builder_(_fbb);
09485   builder_.add_buffer(buffer);
09486   builder_.add_name(name);
09487   return builder_.Finish();
09488 }
09489 
09490 inline flatbuffers::Offset<Metadata> CreateMetadataDirect(
09491     flatbuffers::FlatBufferBuilder &_fbb,
09492     const char *name = nullptr,
09493     uint32_t buffer = 0) {
09494   auto name__ = name ? _fbb.CreateString(name) : 0;
09495   return tflite::CreateMetadata(
09496       _fbb,
09497       name__,
09498       buffer);
09499 }
09500 
09501 flatbuffers::Offset<Metadata> CreateMetadata(flatbuffers::FlatBufferBuilder &_fbb, const MetadataT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
09502 
09503 struct ModelT : public flatbuffers::NativeTable {
09504   typedef Model TableType;
09505   uint32_t version;
09506   std::vector<std::unique_ptr<OperatorCodeT>> operator_codes;
09507   std::vector<std::unique_ptr<SubGraphT>> subgraphs;
09508   std::string description;
09509   std::vector<std::unique_ptr<BufferT>> buffers;
09510   std::vector<int32_t> metadata_buffer;
09511   std::vector<std::unique_ptr<MetadataT>> metadata;
09512   ModelT()
09513       : version(0) {
09514   }
09515 };
09516 
09517 struct Model FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
09518   typedef ModelT NativeTableType;
09519   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
09520     VT_VERSION = 4,
09521     VT_OPERATOR_CODES = 6,
09522     VT_SUBGRAPHS = 8,
09523     VT_DESCRIPTION = 10,
09524     VT_BUFFERS = 12,
09525     VT_METADATA_BUFFER = 14,
09526     VT_METADATA = 16
09527   };
09528   uint32_t version() const {
09529     return GetField<uint32_t>(VT_VERSION, 0);
09530   }
09531   const flatbuffers::Vector<flatbuffers::Offset<OperatorCode>> *operator_codes() const {
09532     return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<OperatorCode>> *>(VT_OPERATOR_CODES);
09533   }
09534   const flatbuffers::Vector<flatbuffers::Offset<SubGraph>> *subgraphs() const {
09535     return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<SubGraph>> *>(VT_SUBGRAPHS);
09536   }
09537   const flatbuffers::String *description() const {
09538     return GetPointer<const flatbuffers::String *>(VT_DESCRIPTION);
09539   }
09540   const flatbuffers::Vector<flatbuffers::Offset<Buffer>> *buffers() const {
09541     return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<Buffer>> *>(VT_BUFFERS);
09542   }
09543   const flatbuffers::Vector<int32_t> *metadata_buffer() const {
09544     return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_METADATA_BUFFER);
09545   }
09546   const flatbuffers::Vector<flatbuffers::Offset<Metadata>> *metadata() const {
09547     return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<Metadata>> *>(VT_METADATA);
09548   }
09549   bool Verify(flatbuffers::Verifier &verifier) const {
09550     return VerifyTableStart(verifier) &&
09551            VerifyField<uint32_t>(verifier, VT_VERSION) &&
09552            VerifyOffset(verifier, VT_OPERATOR_CODES) &&
09553            verifier.VerifyVector(operator_codes()) &&
09554            verifier.VerifyVectorOfTables(operator_codes()) &&
09555            VerifyOffset(verifier, VT_SUBGRAPHS) &&
09556            verifier.VerifyVector(subgraphs()) &&
09557            verifier.VerifyVectorOfTables(subgraphs()) &&
09558            VerifyOffset(verifier, VT_DESCRIPTION) &&
09559            verifier.VerifyString(description()) &&
09560            VerifyOffset(verifier, VT_BUFFERS) &&
09561            verifier.VerifyVector(buffers()) &&
09562            verifier.VerifyVectorOfTables(buffers()) &&
09563            VerifyOffset(verifier, VT_METADATA_BUFFER) &&
09564            verifier.VerifyVector(metadata_buffer()) &&
09565            VerifyOffset(verifier, VT_METADATA) &&
09566            verifier.VerifyVector(metadata()) &&
09567            verifier.VerifyVectorOfTables(metadata()) &&
09568            verifier.EndTable();
09569   }
09570   ModelT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
09571   void UnPackTo(ModelT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
09572   static flatbuffers::Offset<Model> Pack(flatbuffers::FlatBufferBuilder &_fbb, const ModelT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
09573 };
09574 
09575 struct ModelBuilder {
09576   flatbuffers::FlatBufferBuilder &fbb_;
09577   flatbuffers::uoffset_t start_;
09578   void add_version(uint32_t version) {
09579     fbb_.AddElement<uint32_t>(Model::VT_VERSION, version, 0);
09580   }
09581   void add_operator_codes(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<OperatorCode>>> operator_codes) {
09582     fbb_.AddOffset(Model::VT_OPERATOR_CODES, operator_codes);
09583   }
09584   void add_subgraphs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<SubGraph>>> subgraphs) {
09585     fbb_.AddOffset(Model::VT_SUBGRAPHS, subgraphs);
09586   }
09587   void add_description(flatbuffers::Offset<flatbuffers::String> description) {
09588     fbb_.AddOffset(Model::VT_DESCRIPTION, description);
09589   }
09590   void add_buffers(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<Buffer>>> buffers) {
09591     fbb_.AddOffset(Model::VT_BUFFERS, buffers);
09592   }
09593   void add_metadata_buffer(flatbuffers::Offset<flatbuffers::Vector<int32_t>> metadata_buffer) {
09594     fbb_.AddOffset(Model::VT_METADATA_BUFFER, metadata_buffer);
09595   }
09596   void add_metadata(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<Metadata>>> metadata) {
09597     fbb_.AddOffset(Model::VT_METADATA, metadata);
09598   }
09599   explicit ModelBuilder(flatbuffers::FlatBufferBuilder &_fbb)
09600         : fbb_(_fbb) {
09601     start_ = fbb_.StartTable();
09602   }
09603   ModelBuilder &operator=(const ModelBuilder &);
09604   flatbuffers::Offset<Model> Finish() {
09605     const auto end = fbb_.EndTable(start_);
09606     auto o = flatbuffers::Offset<Model>(end);
09607     return o;
09608   }
09609 };
09610 
09611 inline flatbuffers::Offset<Model> CreateModel(
09612     flatbuffers::FlatBufferBuilder &_fbb,
09613     uint32_t version = 0,
09614     flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<OperatorCode>>> operator_codes = 0,
09615     flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<SubGraph>>> subgraphs = 0,
09616     flatbuffers::Offset<flatbuffers::String> description = 0,
09617     flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<Buffer>>> buffers = 0,
09618     flatbuffers::Offset<flatbuffers::Vector<int32_t>> metadata_buffer = 0,
09619     flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<Metadata>>> metadata = 0) {
09620   ModelBuilder builder_(_fbb);
09621   builder_.add_metadata(metadata);
09622   builder_.add_metadata_buffer(metadata_buffer);
09623   builder_.add_buffers(buffers);
09624   builder_.add_description(description);
09625   builder_.add_subgraphs(subgraphs);
09626   builder_.add_operator_codes(operator_codes);
09627   builder_.add_version(version);
09628   return builder_.Finish();
09629 }
09630 
09631 inline flatbuffers::Offset<Model> CreateModelDirect(
09632     flatbuffers::FlatBufferBuilder &_fbb,
09633     uint32_t version = 0,
09634     const std::vector<flatbuffers::Offset<OperatorCode>> *operator_codes = nullptr,
09635     const std::vector<flatbuffers::Offset<SubGraph>> *subgraphs = nullptr,
09636     const char *description = nullptr,
09637     const std::vector<flatbuffers::Offset<Buffer>> *buffers = nullptr,
09638     const std::vector<int32_t> *metadata_buffer = nullptr,
09639     const std::vector<flatbuffers::Offset<Metadata>> *metadata = nullptr) {
09640   auto operator_codes__ = operator_codes ? _fbb.CreateVector<flatbuffers::Offset<OperatorCode>>(*operator_codes) : 0;
09641   auto subgraphs__ = subgraphs ? _fbb.CreateVector<flatbuffers::Offset<SubGraph>>(*subgraphs) : 0;
09642   auto description__ = description ? _fbb.CreateString(description) : 0;
09643   auto buffers__ = buffers ? _fbb.CreateVector<flatbuffers::Offset<Buffer>>(*buffers) : 0;
09644   auto metadata_buffer__ = metadata_buffer ? _fbb.CreateVector<int32_t>(*metadata_buffer) : 0;
09645   auto metadata__ = metadata ? _fbb.CreateVector<flatbuffers::Offset<Metadata>>(*metadata) : 0;
09646   return tflite::CreateModel(
09647       _fbb,
09648       version,
09649       operator_codes__,
09650       subgraphs__,
09651       description__,
09652       buffers__,
09653       metadata_buffer__,
09654       metadata__);
09655 }
09656 
09657 flatbuffers::Offset<Model> CreateModel(flatbuffers::FlatBufferBuilder &_fbb, const ModelT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
09658 
09659 inline CustomQuantizationT *CustomQuantization::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
09660   auto _o = new CustomQuantizationT();
09661   UnPackTo(_o, _resolver);
09662   return _o;
09663 }
09664 
09665 inline void CustomQuantization::UnPackTo(CustomQuantizationT *_o, const flatbuffers::resolver_function_t *_resolver) const {
09666   (void)_o;
09667   (void)_resolver;
09668   { auto _e = custom(); if (_e) { _o->custom.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->custom[_i] = _e->Get(_i); } } };
09669 }
09670 
09671 inline flatbuffers::Offset<CustomQuantization> CustomQuantization::Pack(flatbuffers::FlatBufferBuilder &_fbb, const CustomQuantizationT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
09672   return CreateCustomQuantization(_fbb, _o, _rehasher);
09673 }
09674 
09675 inline flatbuffers::Offset<CustomQuantization> CreateCustomQuantization(flatbuffers::FlatBufferBuilder &_fbb, const CustomQuantizationT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
09676   (void)_rehasher;
09677   (void)_o;
09678   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const CustomQuantizationT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
09679   auto _custom = _o->custom.size() ? _fbb.CreateVector(_o->custom) : 0;
09680   return tflite::CreateCustomQuantization(
09681       _fbb,
09682       _custom);
09683 }
09684 
09685 inline QuantizationParametersT *QuantizationParameters::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
09686   auto _o = new QuantizationParametersT();
09687   UnPackTo(_o, _resolver);
09688   return _o;
09689 }
09690 
09691 inline void QuantizationParameters::UnPackTo(QuantizationParametersT *_o, const flatbuffers::resolver_function_t *_resolver) const {
09692   (void)_o;
09693   (void)_resolver;
09694   { auto _e = min(); if (_e) { _o->min.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->min[_i] = _e->Get(_i); } } };
09695   { auto _e = max(); if (_e) { _o->max.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->max[_i] = _e->Get(_i); } } };
09696   { 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); } } };
09697   { auto _e = zero_point(); if (_e) { _o->zero_point.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->zero_point[_i] = _e->Get(_i); } } };
09698   { auto _e = details_type(); _o->details.type = _e; };
09699   { auto _e = details(); if (_e) _o->details.value = QuantizationDetailsUnion::UnPack(_e, details_type(), _resolver); };
09700   { auto _e = quantized_dimension(); _o->quantized_dimension = _e; };
09701 }
09702 
09703 inline flatbuffers::Offset<QuantizationParameters> QuantizationParameters::Pack(flatbuffers::FlatBufferBuilder &_fbb, const QuantizationParametersT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
09704   return CreateQuantizationParameters(_fbb, _o, _rehasher);
09705 }
09706 
09707 inline flatbuffers::Offset<QuantizationParameters> CreateQuantizationParameters(flatbuffers::FlatBufferBuilder &_fbb, const QuantizationParametersT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
09708   (void)_rehasher;
09709   (void)_o;
09710   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const QuantizationParametersT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
09711   auto _min = _o->min.size() ? _fbb.CreateVector(_o->min) : 0;
09712   auto _max = _o->max.size() ? _fbb.CreateVector(_o->max) : 0;
09713   auto _scale = _o->scale.size() ? _fbb.CreateVector(_o->scale) : 0;
09714   auto _zero_point = _o->zero_point.size() ? _fbb.CreateVector(_o->zero_point) : 0;
09715   auto _details_type = _o->details.type;
09716   auto _details = _o->details.Pack(_fbb);
09717   auto _quantized_dimension = _o->quantized_dimension;
09718   return tflite::CreateQuantizationParameters(
09719       _fbb,
09720       _min,
09721       _max,
09722       _scale,
09723       _zero_point,
09724       _details_type,
09725       _details,
09726       _quantized_dimension);
09727 }
09728 
09729 inline TensorT *Tensor::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
09730   auto _o = new TensorT();
09731   UnPackTo(_o, _resolver);
09732   return _o;
09733 }
09734 
09735 inline void Tensor::UnPackTo(TensorT *_o, const flatbuffers::resolver_function_t *_resolver) const {
09736   (void)_o;
09737   (void)_resolver;
09738   { auto _e = shape(); if (_e) { _o->shape.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->shape[_i] = _e->Get(_i); } } };
09739   { auto _e = type(); _o->type = _e; };
09740   { auto _e = buffer(); _o->buffer = _e; };
09741   { auto _e = name(); if (_e) _o->name = _e->str(); };
09742   { auto _e = quantization(); if (_e) _o->quantization = std::unique_ptr<QuantizationParametersT>(_e->UnPack(_resolver)); };
09743   { auto _e = is_variable(); _o->is_variable = _e; };
09744 }
09745 
09746 inline flatbuffers::Offset<Tensor> Tensor::Pack(flatbuffers::FlatBufferBuilder &_fbb, const TensorT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
09747   return CreateTensor(_fbb, _o, _rehasher);
09748 }
09749 
09750 inline flatbuffers::Offset<Tensor> CreateTensor(flatbuffers::FlatBufferBuilder &_fbb, const TensorT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
09751   (void)_rehasher;
09752   (void)_o;
09753   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const TensorT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
09754   auto _shape = _o->shape.size() ? _fbb.CreateVector(_o->shape) : 0;
09755   auto _type = _o->type;
09756   auto _buffer = _o->buffer;
09757   auto _name = _o->name.empty() ? 0 : _fbb.CreateString(_o->name);
09758   auto _quantization = _o->quantization ? CreateQuantizationParameters(_fbb, _o->quantization.get(), _rehasher) : 0;
09759   auto _is_variable = _o->is_variable;
09760   return tflite::CreateTensor(
09761       _fbb,
09762       _shape,
09763       _type,
09764       _buffer,
09765       _name,
09766       _quantization,
09767       _is_variable);
09768 }
09769 
09770 inline Conv2DOptionsT *Conv2DOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
09771   auto _o = new Conv2DOptionsT();
09772   UnPackTo(_o, _resolver);
09773   return _o;
09774 }
09775 
09776 inline void Conv2DOptions::UnPackTo(Conv2DOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
09777   (void)_o;
09778   (void)_resolver;
09779   { auto _e = padding(); _o->padding = _e; };
09780   { auto _e = stride_w(); _o->stride_w = _e; };
09781   { auto _e = stride_h(); _o->stride_h = _e; };
09782   { auto _e = fused_activation_function(); _o->fused_activation_function = _e; };
09783   { auto _e = dilation_w_factor(); _o->dilation_w_factor = _e; };
09784   { auto _e = dilation_h_factor(); _o->dilation_h_factor = _e; };
09785 }
09786 
09787 inline flatbuffers::Offset<Conv2DOptions> Conv2DOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const Conv2DOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
09788   return CreateConv2DOptions(_fbb, _o, _rehasher);
09789 }
09790 
09791 inline flatbuffers::Offset<Conv2DOptions> CreateConv2DOptions(flatbuffers::FlatBufferBuilder &_fbb, const Conv2DOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
09792   (void)_rehasher;
09793   (void)_o;
09794   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const Conv2DOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
09795   auto _padding = _o->padding;
09796   auto _stride_w = _o->stride_w;
09797   auto _stride_h = _o->stride_h;
09798   auto _fused_activation_function = _o->fused_activation_function;
09799   auto _dilation_w_factor = _o->dilation_w_factor;
09800   auto _dilation_h_factor = _o->dilation_h_factor;
09801   return tflite::CreateConv2DOptions(
09802       _fbb,
09803       _padding,
09804       _stride_w,
09805       _stride_h,
09806       _fused_activation_function,
09807       _dilation_w_factor,
09808       _dilation_h_factor);
09809 }
09810 
09811 inline Pool2DOptionsT *Pool2DOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
09812   auto _o = new Pool2DOptionsT();
09813   UnPackTo(_o, _resolver);
09814   return _o;
09815 }
09816 
09817 inline void Pool2DOptions::UnPackTo(Pool2DOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
09818   (void)_o;
09819   (void)_resolver;
09820   { auto _e = padding(); _o->padding = _e; };
09821   { auto _e = stride_w(); _o->stride_w = _e; };
09822   { auto _e = stride_h(); _o->stride_h = _e; };
09823   { auto _e = filter_width(); _o->filter_width = _e; };
09824   { auto _e = filter_height(); _o->filter_height = _e; };
09825   { auto _e = fused_activation_function(); _o->fused_activation_function = _e; };
09826 }
09827 
09828 inline flatbuffers::Offset<Pool2DOptions> Pool2DOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const Pool2DOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
09829   return CreatePool2DOptions(_fbb, _o, _rehasher);
09830 }
09831 
09832 inline flatbuffers::Offset<Pool2DOptions> CreatePool2DOptions(flatbuffers::FlatBufferBuilder &_fbb, const Pool2DOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
09833   (void)_rehasher;
09834   (void)_o;
09835   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const Pool2DOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
09836   auto _padding = _o->padding;
09837   auto _stride_w = _o->stride_w;
09838   auto _stride_h = _o->stride_h;
09839   auto _filter_width = _o->filter_width;
09840   auto _filter_height = _o->filter_height;
09841   auto _fused_activation_function = _o->fused_activation_function;
09842   return tflite::CreatePool2DOptions(
09843       _fbb,
09844       _padding,
09845       _stride_w,
09846       _stride_h,
09847       _filter_width,
09848       _filter_height,
09849       _fused_activation_function);
09850 }
09851 
09852 inline DepthwiseConv2DOptionsT *DepthwiseConv2DOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
09853   auto _o = new DepthwiseConv2DOptionsT();
09854   UnPackTo(_o, _resolver);
09855   return _o;
09856 }
09857 
09858 inline void DepthwiseConv2DOptions::UnPackTo(DepthwiseConv2DOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
09859   (void)_o;
09860   (void)_resolver;
09861   { auto _e = padding(); _o->padding = _e; };
09862   { auto _e = stride_w(); _o->stride_w = _e; };
09863   { auto _e = stride_h(); _o->stride_h = _e; };
09864   { auto _e = depth_multiplier(); _o->depth_multiplier = _e; };
09865   { auto _e = fused_activation_function(); _o->fused_activation_function = _e; };
09866   { auto _e = dilation_w_factor(); _o->dilation_w_factor = _e; };
09867   { auto _e = dilation_h_factor(); _o->dilation_h_factor = _e; };
09868 }
09869 
09870 inline flatbuffers::Offset<DepthwiseConv2DOptions> DepthwiseConv2DOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const DepthwiseConv2DOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
09871   return CreateDepthwiseConv2DOptions(_fbb, _o, _rehasher);
09872 }
09873 
09874 inline flatbuffers::Offset<DepthwiseConv2DOptions> CreateDepthwiseConv2DOptions(flatbuffers::FlatBufferBuilder &_fbb, const DepthwiseConv2DOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
09875   (void)_rehasher;
09876   (void)_o;
09877   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const DepthwiseConv2DOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
09878   auto _padding = _o->padding;
09879   auto _stride_w = _o->stride_w;
09880   auto _stride_h = _o->stride_h;
09881   auto _depth_multiplier = _o->depth_multiplier;
09882   auto _fused_activation_function = _o->fused_activation_function;
09883   auto _dilation_w_factor = _o->dilation_w_factor;
09884   auto _dilation_h_factor = _o->dilation_h_factor;
09885   return tflite::CreateDepthwiseConv2DOptions(
09886       _fbb,
09887       _padding,
09888       _stride_w,
09889       _stride_h,
09890       _depth_multiplier,
09891       _fused_activation_function,
09892       _dilation_w_factor,
09893       _dilation_h_factor);
09894 }
09895 
09896 inline ConcatEmbeddingsOptionsT *ConcatEmbeddingsOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
09897   auto _o = new ConcatEmbeddingsOptionsT();
09898   UnPackTo(_o, _resolver);
09899   return _o;
09900 }
09901 
09902 inline void ConcatEmbeddingsOptions::UnPackTo(ConcatEmbeddingsOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
09903   (void)_o;
09904   (void)_resolver;
09905   { auto _e = num_channels(); _o->num_channels = _e; };
09906   { auto _e = num_columns_per_channel(); if (_e) { _o->num_columns_per_channel.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->num_columns_per_channel[_i] = _e->Get(_i); } } };
09907   { auto _e = embedding_dim_per_channel(); if (_e) { _o->embedding_dim_per_channel.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->embedding_dim_per_channel[_i] = _e->Get(_i); } } };
09908 }
09909 
09910 inline flatbuffers::Offset<ConcatEmbeddingsOptions> ConcatEmbeddingsOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const ConcatEmbeddingsOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
09911   return CreateConcatEmbeddingsOptions(_fbb, _o, _rehasher);
09912 }
09913 
09914 inline flatbuffers::Offset<ConcatEmbeddingsOptions> CreateConcatEmbeddingsOptions(flatbuffers::FlatBufferBuilder &_fbb, const ConcatEmbeddingsOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
09915   (void)_rehasher;
09916   (void)_o;
09917   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const ConcatEmbeddingsOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
09918   auto _num_channels = _o->num_channels;
09919   auto _num_columns_per_channel = _o->num_columns_per_channel.size() ? _fbb.CreateVector(_o->num_columns_per_channel) : 0;
09920   auto _embedding_dim_per_channel = _o->embedding_dim_per_channel.size() ? _fbb.CreateVector(_o->embedding_dim_per_channel) : 0;
09921   return tflite::CreateConcatEmbeddingsOptions(
09922       _fbb,
09923       _num_channels,
09924       _num_columns_per_channel,
09925       _embedding_dim_per_channel);
09926 }
09927 
09928 inline LSHProjectionOptionsT *LSHProjectionOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
09929   auto _o = new LSHProjectionOptionsT();
09930   UnPackTo(_o, _resolver);
09931   return _o;
09932 }
09933 
09934 inline void LSHProjectionOptions::UnPackTo(LSHProjectionOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
09935   (void)_o;
09936   (void)_resolver;
09937   { auto _e = type(); _o->type = _e; };
09938 }
09939 
09940 inline flatbuffers::Offset<LSHProjectionOptions> LSHProjectionOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const LSHProjectionOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
09941   return CreateLSHProjectionOptions(_fbb, _o, _rehasher);
09942 }
09943 
09944 inline flatbuffers::Offset<LSHProjectionOptions> CreateLSHProjectionOptions(flatbuffers::FlatBufferBuilder &_fbb, const LSHProjectionOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
09945   (void)_rehasher;
09946   (void)_o;
09947   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const LSHProjectionOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
09948   auto _type = _o->type;
09949   return tflite::CreateLSHProjectionOptions(
09950       _fbb,
09951       _type);
09952 }
09953 
09954 inline SVDFOptionsT *SVDFOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
09955   auto _o = new SVDFOptionsT();
09956   UnPackTo(_o, _resolver);
09957   return _o;
09958 }
09959 
09960 inline void SVDFOptions::UnPackTo(SVDFOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
09961   (void)_o;
09962   (void)_resolver;
09963   { auto _e = rank(); _o->rank = _e; };
09964   { auto _e = fused_activation_function(); _o->fused_activation_function = _e; };
09965 }
09966 
09967 inline flatbuffers::Offset<SVDFOptions> SVDFOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const SVDFOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
09968   return CreateSVDFOptions(_fbb, _o, _rehasher);
09969 }
09970 
09971 inline flatbuffers::Offset<SVDFOptions> CreateSVDFOptions(flatbuffers::FlatBufferBuilder &_fbb, const SVDFOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
09972   (void)_rehasher;
09973   (void)_o;
09974   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const SVDFOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
09975   auto _rank = _o->rank;
09976   auto _fused_activation_function = _o->fused_activation_function;
09977   return tflite::CreateSVDFOptions(
09978       _fbb,
09979       _rank,
09980       _fused_activation_function);
09981 }
09982 
09983 inline RNNOptionsT *RNNOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
09984   auto _o = new RNNOptionsT();
09985   UnPackTo(_o, _resolver);
09986   return _o;
09987 }
09988 
09989 inline void RNNOptions::UnPackTo(RNNOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
09990   (void)_o;
09991   (void)_resolver;
09992   { auto _e = fused_activation_function(); _o->fused_activation_function = _e; };
09993 }
09994 
09995 inline flatbuffers::Offset<RNNOptions> RNNOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const RNNOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
09996   return CreateRNNOptions(_fbb, _o, _rehasher);
09997 }
09998 
09999 inline flatbuffers::Offset<RNNOptions> CreateRNNOptions(flatbuffers::FlatBufferBuilder &_fbb, const RNNOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
10000   (void)_rehasher;
10001   (void)_o;
10002   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const RNNOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
10003   auto _fused_activation_function = _o->fused_activation_function;
10004   return tflite::CreateRNNOptions(
10005       _fbb,
10006       _fused_activation_function);
10007 }
10008 
10009 inline SequenceRNNOptionsT *SequenceRNNOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
10010   auto _o = new SequenceRNNOptionsT();
10011   UnPackTo(_o, _resolver);
10012   return _o;
10013 }
10014 
10015 inline void SequenceRNNOptions::UnPackTo(SequenceRNNOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
10016   (void)_o;
10017   (void)_resolver;
10018   { auto _e = time_major(); _o->time_major = _e; };
10019   { auto _e = fused_activation_function(); _o->fused_activation_function = _e; };
10020 }
10021 
10022 inline flatbuffers::Offset<SequenceRNNOptions> SequenceRNNOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const SequenceRNNOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
10023   return CreateSequenceRNNOptions(_fbb, _o, _rehasher);
10024 }
10025 
10026 inline flatbuffers::Offset<SequenceRNNOptions> CreateSequenceRNNOptions(flatbuffers::FlatBufferBuilder &_fbb, const SequenceRNNOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
10027   (void)_rehasher;
10028   (void)_o;
10029   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const SequenceRNNOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
10030   auto _time_major = _o->time_major;
10031   auto _fused_activation_function = _o->fused_activation_function;
10032   return tflite::CreateSequenceRNNOptions(
10033       _fbb,
10034       _time_major,
10035       _fused_activation_function);
10036 }
10037 
10038 inline BidirectionalSequenceRNNOptionsT *BidirectionalSequenceRNNOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
10039   auto _o = new BidirectionalSequenceRNNOptionsT();
10040   UnPackTo(_o, _resolver);
10041   return _o;
10042 }
10043 
10044 inline void BidirectionalSequenceRNNOptions::UnPackTo(BidirectionalSequenceRNNOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
10045   (void)_o;
10046   (void)_resolver;
10047   { auto _e = time_major(); _o->time_major = _e; };
10048   { auto _e = fused_activation_function(); _o->fused_activation_function = _e; };
10049   { auto _e = merge_outputs(); _o->merge_outputs = _e; };
10050 }
10051 
10052 inline flatbuffers::Offset<BidirectionalSequenceRNNOptions> BidirectionalSequenceRNNOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const BidirectionalSequenceRNNOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
10053   return CreateBidirectionalSequenceRNNOptions(_fbb, _o, _rehasher);
10054 }
10055 
10056 inline flatbuffers::Offset<BidirectionalSequenceRNNOptions> CreateBidirectionalSequenceRNNOptions(flatbuffers::FlatBufferBuilder &_fbb, const BidirectionalSequenceRNNOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
10057   (void)_rehasher;
10058   (void)_o;
10059   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const BidirectionalSequenceRNNOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
10060   auto _time_major = _o->time_major;
10061   auto _fused_activation_function = _o->fused_activation_function;
10062   auto _merge_outputs = _o->merge_outputs;
10063   return tflite::CreateBidirectionalSequenceRNNOptions(
10064       _fbb,
10065       _time_major,
10066       _fused_activation_function,
10067       _merge_outputs);
10068 }
10069 
10070 inline FullyConnectedOptionsT *FullyConnectedOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
10071   auto _o = new FullyConnectedOptionsT();
10072   UnPackTo(_o, _resolver);
10073   return _o;
10074 }
10075 
10076 inline void FullyConnectedOptions::UnPackTo(FullyConnectedOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
10077   (void)_o;
10078   (void)_resolver;
10079   { auto _e = fused_activation_function(); _o->fused_activation_function = _e; };
10080   { auto _e = weights_format(); _o->weights_format = _e; };
10081   { auto _e = keep_num_dims(); _o->keep_num_dims = _e; };
10082 }
10083 
10084 inline flatbuffers::Offset<FullyConnectedOptions> FullyConnectedOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const FullyConnectedOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
10085   return CreateFullyConnectedOptions(_fbb, _o, _rehasher);
10086 }
10087 
10088 inline flatbuffers::Offset<FullyConnectedOptions> CreateFullyConnectedOptions(flatbuffers::FlatBufferBuilder &_fbb, const FullyConnectedOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
10089   (void)_rehasher;
10090   (void)_o;
10091   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const FullyConnectedOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
10092   auto _fused_activation_function = _o->fused_activation_function;
10093   auto _weights_format = _o->weights_format;
10094   auto _keep_num_dims = _o->keep_num_dims;
10095   return tflite::CreateFullyConnectedOptions(
10096       _fbb,
10097       _fused_activation_function,
10098       _weights_format,
10099       _keep_num_dims);
10100 }
10101 
10102 inline SoftmaxOptionsT *SoftmaxOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
10103   auto _o = new SoftmaxOptionsT();
10104   UnPackTo(_o, _resolver);
10105   return _o;
10106 }
10107 
10108 inline void SoftmaxOptions::UnPackTo(SoftmaxOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
10109   (void)_o;
10110   (void)_resolver;
10111   { auto _e = beta(); _o->beta = _e; };
10112 }
10113 
10114 inline flatbuffers::Offset<SoftmaxOptions> SoftmaxOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const SoftmaxOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
10115   return CreateSoftmaxOptions(_fbb, _o, _rehasher);
10116 }
10117 
10118 inline flatbuffers::Offset<SoftmaxOptions> CreateSoftmaxOptions(flatbuffers::FlatBufferBuilder &_fbb, const SoftmaxOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
10119   (void)_rehasher;
10120   (void)_o;
10121   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const SoftmaxOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
10122   auto _beta = _o->beta;
10123   return tflite::CreateSoftmaxOptions(
10124       _fbb,
10125       _beta);
10126 }
10127 
10128 inline ConcatenationOptionsT *ConcatenationOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
10129   auto _o = new ConcatenationOptionsT();
10130   UnPackTo(_o, _resolver);
10131   return _o;
10132 }
10133 
10134 inline void ConcatenationOptions::UnPackTo(ConcatenationOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
10135   (void)_o;
10136   (void)_resolver;
10137   { auto _e = axis(); _o->axis = _e; };
10138   { auto _e = fused_activation_function(); _o->fused_activation_function = _e; };
10139 }
10140 
10141 inline flatbuffers::Offset<ConcatenationOptions> ConcatenationOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const ConcatenationOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
10142   return CreateConcatenationOptions(_fbb, _o, _rehasher);
10143 }
10144 
10145 inline flatbuffers::Offset<ConcatenationOptions> CreateConcatenationOptions(flatbuffers::FlatBufferBuilder &_fbb, const ConcatenationOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
10146   (void)_rehasher;
10147   (void)_o;
10148   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const ConcatenationOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
10149   auto _axis = _o->axis;
10150   auto _fused_activation_function = _o->fused_activation_function;
10151   return tflite::CreateConcatenationOptions(
10152       _fbb,
10153       _axis,
10154       _fused_activation_function);
10155 }
10156 
10157 inline AddOptionsT *AddOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
10158   auto _o = new AddOptionsT();
10159   UnPackTo(_o, _resolver);
10160   return _o;
10161 }
10162 
10163 inline void AddOptions::UnPackTo(AddOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
10164   (void)_o;
10165   (void)_resolver;
10166   { auto _e = fused_activation_function(); _o->fused_activation_function = _e; };
10167 }
10168 
10169 inline flatbuffers::Offset<AddOptions> AddOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const AddOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
10170   return CreateAddOptions(_fbb, _o, _rehasher);
10171 }
10172 
10173 inline flatbuffers::Offset<AddOptions> CreateAddOptions(flatbuffers::FlatBufferBuilder &_fbb, const AddOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
10174   (void)_rehasher;
10175   (void)_o;
10176   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const AddOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
10177   auto _fused_activation_function = _o->fused_activation_function;
10178   return tflite::CreateAddOptions(
10179       _fbb,
10180       _fused_activation_function);
10181 }
10182 
10183 inline MulOptionsT *MulOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
10184   auto _o = new MulOptionsT();
10185   UnPackTo(_o, _resolver);
10186   return _o;
10187 }
10188 
10189 inline void MulOptions::UnPackTo(MulOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
10190   (void)_o;
10191   (void)_resolver;
10192   { auto _e = fused_activation_function(); _o->fused_activation_function = _e; };
10193 }
10194 
10195 inline flatbuffers::Offset<MulOptions> MulOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const MulOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
10196   return CreateMulOptions(_fbb, _o, _rehasher);
10197 }
10198 
10199 inline flatbuffers::Offset<MulOptions> CreateMulOptions(flatbuffers::FlatBufferBuilder &_fbb, const MulOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
10200   (void)_rehasher;
10201   (void)_o;
10202   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const MulOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
10203   auto _fused_activation_function = _o->fused_activation_function;
10204   return tflite::CreateMulOptions(
10205       _fbb,
10206       _fused_activation_function);
10207 }
10208 
10209 inline L2NormOptionsT *L2NormOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
10210   auto _o = new L2NormOptionsT();
10211   UnPackTo(_o, _resolver);
10212   return _o;
10213 }
10214 
10215 inline void L2NormOptions::UnPackTo(L2NormOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
10216   (void)_o;
10217   (void)_resolver;
10218   { auto _e = fused_activation_function(); _o->fused_activation_function = _e; };
10219 }
10220 
10221 inline flatbuffers::Offset<L2NormOptions> L2NormOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const L2NormOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
10222   return CreateL2NormOptions(_fbb, _o, _rehasher);
10223 }
10224 
10225 inline flatbuffers::Offset<L2NormOptions> CreateL2NormOptions(flatbuffers::FlatBufferBuilder &_fbb, const L2NormOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
10226   (void)_rehasher;
10227   (void)_o;
10228   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const L2NormOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
10229   auto _fused_activation_function = _o->fused_activation_function;
10230   return tflite::CreateL2NormOptions(
10231       _fbb,
10232       _fused_activation_function);
10233 }
10234 
10235 inline LocalResponseNormalizationOptionsT *LocalResponseNormalizationOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
10236   auto _o = new LocalResponseNormalizationOptionsT();
10237   UnPackTo(_o, _resolver);
10238   return _o;
10239 }
10240 
10241 inline void LocalResponseNormalizationOptions::UnPackTo(LocalResponseNormalizationOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
10242   (void)_o;
10243   (void)_resolver;
10244   { auto _e = radius(); _o->radius = _e; };
10245   { auto _e = bias(); _o->bias = _e; };
10246   { auto _e = alpha(); _o->alpha = _e; };
10247   { auto _e = beta(); _o->beta = _e; };
10248 }
10249 
10250 inline flatbuffers::Offset<LocalResponseNormalizationOptions> LocalResponseNormalizationOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const LocalResponseNormalizationOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
10251   return CreateLocalResponseNormalizationOptions(_fbb, _o, _rehasher);
10252 }
10253 
10254 inline flatbuffers::Offset<LocalResponseNormalizationOptions> CreateLocalResponseNormalizationOptions(flatbuffers::FlatBufferBuilder &_fbb, const LocalResponseNormalizationOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
10255   (void)_rehasher;
10256   (void)_o;
10257   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const LocalResponseNormalizationOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
10258   auto _radius = _o->radius;
10259   auto _bias = _o->bias;
10260   auto _alpha = _o->alpha;
10261   auto _beta = _o->beta;
10262   return tflite::CreateLocalResponseNormalizationOptions(
10263       _fbb,
10264       _radius,
10265       _bias,
10266       _alpha,
10267       _beta);
10268 }
10269 
10270 inline LSTMOptionsT *LSTMOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
10271   auto _o = new LSTMOptionsT();
10272   UnPackTo(_o, _resolver);
10273   return _o;
10274 }
10275 
10276 inline void LSTMOptions::UnPackTo(LSTMOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
10277   (void)_o;
10278   (void)_resolver;
10279   { auto _e = fused_activation_function(); _o->fused_activation_function = _e; };
10280   { auto _e = cell_clip(); _o->cell_clip = _e; };
10281   { auto _e = proj_clip(); _o->proj_clip = _e; };
10282   { auto _e = kernel_type(); _o->kernel_type = _e; };
10283 }
10284 
10285 inline flatbuffers::Offset<LSTMOptions> LSTMOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const LSTMOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
10286   return CreateLSTMOptions(_fbb, _o, _rehasher);
10287 }
10288 
10289 inline flatbuffers::Offset<LSTMOptions> CreateLSTMOptions(flatbuffers::FlatBufferBuilder &_fbb, const LSTMOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
10290   (void)_rehasher;
10291   (void)_o;
10292   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const LSTMOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
10293   auto _fused_activation_function = _o->fused_activation_function;
10294   auto _cell_clip = _o->cell_clip;
10295   auto _proj_clip = _o->proj_clip;
10296   auto _kernel_type = _o->kernel_type;
10297   return tflite::CreateLSTMOptions(
10298       _fbb,
10299       _fused_activation_function,
10300       _cell_clip,
10301       _proj_clip,
10302       _kernel_type);
10303 }
10304 
10305 inline UnidirectionalSequenceLSTMOptionsT *UnidirectionalSequenceLSTMOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
10306   auto _o = new UnidirectionalSequenceLSTMOptionsT();
10307   UnPackTo(_o, _resolver);
10308   return _o;
10309 }
10310 
10311 inline void UnidirectionalSequenceLSTMOptions::UnPackTo(UnidirectionalSequenceLSTMOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
10312   (void)_o;
10313   (void)_resolver;
10314   { auto _e = fused_activation_function(); _o->fused_activation_function = _e; };
10315   { auto _e = cell_clip(); _o->cell_clip = _e; };
10316   { auto _e = proj_clip(); _o->proj_clip = _e; };
10317   { auto _e = time_major(); _o->time_major = _e; };
10318 }
10319 
10320 inline flatbuffers::Offset<UnidirectionalSequenceLSTMOptions> UnidirectionalSequenceLSTMOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const UnidirectionalSequenceLSTMOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
10321   return CreateUnidirectionalSequenceLSTMOptions(_fbb, _o, _rehasher);
10322 }
10323 
10324 inline flatbuffers::Offset<UnidirectionalSequenceLSTMOptions> CreateUnidirectionalSequenceLSTMOptions(flatbuffers::FlatBufferBuilder &_fbb, const UnidirectionalSequenceLSTMOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
10325   (void)_rehasher;
10326   (void)_o;
10327   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const UnidirectionalSequenceLSTMOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
10328   auto _fused_activation_function = _o->fused_activation_function;
10329   auto _cell_clip = _o->cell_clip;
10330   auto _proj_clip = _o->proj_clip;
10331   auto _time_major = _o->time_major;
10332   return tflite::CreateUnidirectionalSequenceLSTMOptions(
10333       _fbb,
10334       _fused_activation_function,
10335       _cell_clip,
10336       _proj_clip,
10337       _time_major);
10338 }
10339 
10340 inline BidirectionalSequenceLSTMOptionsT *BidirectionalSequenceLSTMOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
10341   auto _o = new BidirectionalSequenceLSTMOptionsT();
10342   UnPackTo(_o, _resolver);
10343   return _o;
10344 }
10345 
10346 inline void BidirectionalSequenceLSTMOptions::UnPackTo(BidirectionalSequenceLSTMOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
10347   (void)_o;
10348   (void)_resolver;
10349   { auto _e = fused_activation_function(); _o->fused_activation_function = _e; };
10350   { auto _e = cell_clip(); _o->cell_clip = _e; };
10351   { auto _e = proj_clip(); _o->proj_clip = _e; };
10352   { auto _e = merge_outputs(); _o->merge_outputs = _e; };
10353   { auto _e = time_major(); _o->time_major = _e; };
10354 }
10355 
10356 inline flatbuffers::Offset<BidirectionalSequenceLSTMOptions> BidirectionalSequenceLSTMOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const BidirectionalSequenceLSTMOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
10357   return CreateBidirectionalSequenceLSTMOptions(_fbb, _o, _rehasher);
10358 }
10359 
10360 inline flatbuffers::Offset<BidirectionalSequenceLSTMOptions> CreateBidirectionalSequenceLSTMOptions(flatbuffers::FlatBufferBuilder &_fbb, const BidirectionalSequenceLSTMOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
10361   (void)_rehasher;
10362   (void)_o;
10363   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const BidirectionalSequenceLSTMOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
10364   auto _fused_activation_function = _o->fused_activation_function;
10365   auto _cell_clip = _o->cell_clip;
10366   auto _proj_clip = _o->proj_clip;
10367   auto _merge_outputs = _o->merge_outputs;
10368   auto _time_major = _o->time_major;
10369   return tflite::CreateBidirectionalSequenceLSTMOptions(
10370       _fbb,
10371       _fused_activation_function,
10372       _cell_clip,
10373       _proj_clip,
10374       _merge_outputs,
10375       _time_major);
10376 }
10377 
10378 inline ResizeBilinearOptionsT *ResizeBilinearOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
10379   auto _o = new ResizeBilinearOptionsT();
10380   UnPackTo(_o, _resolver);
10381   return _o;
10382 }
10383 
10384 inline void ResizeBilinearOptions::UnPackTo(ResizeBilinearOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
10385   (void)_o;
10386   (void)_resolver;
10387   { auto _e = align_corners(); _o->align_corners = _e; };
10388 }
10389 
10390 inline flatbuffers::Offset<ResizeBilinearOptions> ResizeBilinearOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const ResizeBilinearOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
10391   return CreateResizeBilinearOptions(_fbb, _o, _rehasher);
10392 }
10393 
10394 inline flatbuffers::Offset<ResizeBilinearOptions> CreateResizeBilinearOptions(flatbuffers::FlatBufferBuilder &_fbb, const ResizeBilinearOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
10395   (void)_rehasher;
10396   (void)_o;
10397   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const ResizeBilinearOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
10398   auto _align_corners = _o->align_corners;
10399   return tflite::CreateResizeBilinearOptions(
10400       _fbb,
10401       _align_corners);
10402 }
10403 
10404 inline ResizeNearestNeighborOptionsT *ResizeNearestNeighborOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
10405   auto _o = new ResizeNearestNeighborOptionsT();
10406   UnPackTo(_o, _resolver);
10407   return _o;
10408 }
10409 
10410 inline void ResizeNearestNeighborOptions::UnPackTo(ResizeNearestNeighborOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
10411   (void)_o;
10412   (void)_resolver;
10413   { auto _e = align_corners(); _o->align_corners = _e; };
10414 }
10415 
10416 inline flatbuffers::Offset<ResizeNearestNeighborOptions> ResizeNearestNeighborOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const ResizeNearestNeighborOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
10417   return CreateResizeNearestNeighborOptions(_fbb, _o, _rehasher);
10418 }
10419 
10420 inline flatbuffers::Offset<ResizeNearestNeighborOptions> CreateResizeNearestNeighborOptions(flatbuffers::FlatBufferBuilder &_fbb, const ResizeNearestNeighborOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
10421   (void)_rehasher;
10422   (void)_o;
10423   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const ResizeNearestNeighborOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
10424   auto _align_corners = _o->align_corners;
10425   return tflite::CreateResizeNearestNeighborOptions(
10426       _fbb,
10427       _align_corners);
10428 }
10429 
10430 inline CallOptionsT *CallOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
10431   auto _o = new CallOptionsT();
10432   UnPackTo(_o, _resolver);
10433   return _o;
10434 }
10435 
10436 inline void CallOptions::UnPackTo(CallOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
10437   (void)_o;
10438   (void)_resolver;
10439   { auto _e = subgraph(); _o->subgraph = _e; };
10440 }
10441 
10442 inline flatbuffers::Offset<CallOptions> CallOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const CallOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
10443   return CreateCallOptions(_fbb, _o, _rehasher);
10444 }
10445 
10446 inline flatbuffers::Offset<CallOptions> CreateCallOptions(flatbuffers::FlatBufferBuilder &_fbb, const CallOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
10447   (void)_rehasher;
10448   (void)_o;
10449   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const CallOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
10450   auto _subgraph = _o->subgraph;
10451   return tflite::CreateCallOptions(
10452       _fbb,
10453       _subgraph);
10454 }
10455 
10456 inline PadOptionsT *PadOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
10457   auto _o = new PadOptionsT();
10458   UnPackTo(_o, _resolver);
10459   return _o;
10460 }
10461 
10462 inline void PadOptions::UnPackTo(PadOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
10463   (void)_o;
10464   (void)_resolver;
10465 }
10466 
10467 inline flatbuffers::Offset<PadOptions> PadOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const PadOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
10468   return CreatePadOptions(_fbb, _o, _rehasher);
10469 }
10470 
10471 inline flatbuffers::Offset<PadOptions> CreatePadOptions(flatbuffers::FlatBufferBuilder &_fbb, const PadOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
10472   (void)_rehasher;
10473   (void)_o;
10474   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const PadOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
10475   return tflite::CreatePadOptions(
10476       _fbb);
10477 }
10478 
10479 inline PadV2OptionsT *PadV2Options::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
10480   auto _o = new PadV2OptionsT();
10481   UnPackTo(_o, _resolver);
10482   return _o;
10483 }
10484 
10485 inline void PadV2Options::UnPackTo(PadV2OptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
10486   (void)_o;
10487   (void)_resolver;
10488 }
10489 
10490 inline flatbuffers::Offset<PadV2Options> PadV2Options::Pack(flatbuffers::FlatBufferBuilder &_fbb, const PadV2OptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
10491   return CreatePadV2Options(_fbb, _o, _rehasher);
10492 }
10493 
10494 inline flatbuffers::Offset<PadV2Options> CreatePadV2Options(flatbuffers::FlatBufferBuilder &_fbb, const PadV2OptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
10495   (void)_rehasher;
10496   (void)_o;
10497   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const PadV2OptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
10498   return tflite::CreatePadV2Options(
10499       _fbb);
10500 }
10501 
10502 inline ReshapeOptionsT *ReshapeOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
10503   auto _o = new ReshapeOptionsT();
10504   UnPackTo(_o, _resolver);
10505   return _o;
10506 }
10507 
10508 inline void ReshapeOptions::UnPackTo(ReshapeOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
10509   (void)_o;
10510   (void)_resolver;
10511   { auto _e = new_shape(); if (_e) { _o->new_shape.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->new_shape[_i] = _e->Get(_i); } } };
10512 }
10513 
10514 inline flatbuffers::Offset<ReshapeOptions> ReshapeOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const ReshapeOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
10515   return CreateReshapeOptions(_fbb, _o, _rehasher);
10516 }
10517 
10518 inline flatbuffers::Offset<ReshapeOptions> CreateReshapeOptions(flatbuffers::FlatBufferBuilder &_fbb, const ReshapeOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
10519   (void)_rehasher;
10520   (void)_o;
10521   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const ReshapeOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
10522   auto _new_shape = _o->new_shape.size() ? _fbb.CreateVector(_o->new_shape) : 0;
10523   return tflite::CreateReshapeOptions(
10524       _fbb,
10525       _new_shape);
10526 }
10527 
10528 inline SpaceToBatchNDOptionsT *SpaceToBatchNDOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
10529   auto _o = new SpaceToBatchNDOptionsT();
10530   UnPackTo(_o, _resolver);
10531   return _o;
10532 }
10533 
10534 inline void SpaceToBatchNDOptions::UnPackTo(SpaceToBatchNDOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
10535   (void)_o;
10536   (void)_resolver;
10537 }
10538 
10539 inline flatbuffers::Offset<SpaceToBatchNDOptions> SpaceToBatchNDOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const SpaceToBatchNDOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
10540   return CreateSpaceToBatchNDOptions(_fbb, _o, _rehasher);
10541 }
10542 
10543 inline flatbuffers::Offset<SpaceToBatchNDOptions> CreateSpaceToBatchNDOptions(flatbuffers::FlatBufferBuilder &_fbb, const SpaceToBatchNDOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
10544   (void)_rehasher;
10545   (void)_o;
10546   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const SpaceToBatchNDOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
10547   return tflite::CreateSpaceToBatchNDOptions(
10548       _fbb);
10549 }
10550 
10551 inline BatchToSpaceNDOptionsT *BatchToSpaceNDOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
10552   auto _o = new BatchToSpaceNDOptionsT();
10553   UnPackTo(_o, _resolver);
10554   return _o;
10555 }
10556 
10557 inline void BatchToSpaceNDOptions::UnPackTo(BatchToSpaceNDOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
10558   (void)_o;
10559   (void)_resolver;
10560 }
10561 
10562 inline flatbuffers::Offset<BatchToSpaceNDOptions> BatchToSpaceNDOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const BatchToSpaceNDOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
10563   return CreateBatchToSpaceNDOptions(_fbb, _o, _rehasher);
10564 }
10565 
10566 inline flatbuffers::Offset<BatchToSpaceNDOptions> CreateBatchToSpaceNDOptions(flatbuffers::FlatBufferBuilder &_fbb, const BatchToSpaceNDOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
10567   (void)_rehasher;
10568   (void)_o;
10569   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const BatchToSpaceNDOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
10570   return tflite::CreateBatchToSpaceNDOptions(
10571       _fbb);
10572 }
10573 
10574 inline SkipGramOptionsT *SkipGramOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
10575   auto _o = new SkipGramOptionsT();
10576   UnPackTo(_o, _resolver);
10577   return _o;
10578 }
10579 
10580 inline void SkipGramOptions::UnPackTo(SkipGramOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
10581   (void)_o;
10582   (void)_resolver;
10583   { auto _e = ngram_size(); _o->ngram_size = _e; };
10584   { auto _e = max_skip_size(); _o->max_skip_size = _e; };
10585   { auto _e = include_all_ngrams(); _o->include_all_ngrams = _e; };
10586 }
10587 
10588 inline flatbuffers::Offset<SkipGramOptions> SkipGramOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const SkipGramOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
10589   return CreateSkipGramOptions(_fbb, _o, _rehasher);
10590 }
10591 
10592 inline flatbuffers::Offset<SkipGramOptions> CreateSkipGramOptions(flatbuffers::FlatBufferBuilder &_fbb, const SkipGramOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
10593   (void)_rehasher;
10594   (void)_o;
10595   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const SkipGramOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
10596   auto _ngram_size = _o->ngram_size;
10597   auto _max_skip_size = _o->max_skip_size;
10598   auto _include_all_ngrams = _o->include_all_ngrams;
10599   return tflite::CreateSkipGramOptions(
10600       _fbb,
10601       _ngram_size,
10602       _max_skip_size,
10603       _include_all_ngrams);
10604 }
10605 
10606 inline SpaceToDepthOptionsT *SpaceToDepthOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
10607   auto _o = new SpaceToDepthOptionsT();
10608   UnPackTo(_o, _resolver);
10609   return _o;
10610 }
10611 
10612 inline void SpaceToDepthOptions::UnPackTo(SpaceToDepthOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
10613   (void)_o;
10614   (void)_resolver;
10615   { auto _e = block_size(); _o->block_size = _e; };
10616 }
10617 
10618 inline flatbuffers::Offset<SpaceToDepthOptions> SpaceToDepthOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const SpaceToDepthOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
10619   return CreateSpaceToDepthOptions(_fbb, _o, _rehasher);
10620 }
10621 
10622 inline flatbuffers::Offset<SpaceToDepthOptions> CreateSpaceToDepthOptions(flatbuffers::FlatBufferBuilder &_fbb, const SpaceToDepthOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
10623   (void)_rehasher;
10624   (void)_o;
10625   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const SpaceToDepthOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
10626   auto _block_size = _o->block_size;
10627   return tflite::CreateSpaceToDepthOptions(
10628       _fbb,
10629       _block_size);
10630 }
10631 
10632 inline DepthToSpaceOptionsT *DepthToSpaceOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
10633   auto _o = new DepthToSpaceOptionsT();
10634   UnPackTo(_o, _resolver);
10635   return _o;
10636 }
10637 
10638 inline void DepthToSpaceOptions::UnPackTo(DepthToSpaceOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
10639   (void)_o;
10640   (void)_resolver;
10641   { auto _e = block_size(); _o->block_size = _e; };
10642 }
10643 
10644 inline flatbuffers::Offset<DepthToSpaceOptions> DepthToSpaceOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const DepthToSpaceOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
10645   return CreateDepthToSpaceOptions(_fbb, _o, _rehasher);
10646 }
10647 
10648 inline flatbuffers::Offset<DepthToSpaceOptions> CreateDepthToSpaceOptions(flatbuffers::FlatBufferBuilder &_fbb, const DepthToSpaceOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
10649   (void)_rehasher;
10650   (void)_o;
10651   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const DepthToSpaceOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
10652   auto _block_size = _o->block_size;
10653   return tflite::CreateDepthToSpaceOptions(
10654       _fbb,
10655       _block_size);
10656 }
10657 
10658 inline SubOptionsT *SubOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
10659   auto _o = new SubOptionsT();
10660   UnPackTo(_o, _resolver);
10661   return _o;
10662 }
10663 
10664 inline void SubOptions::UnPackTo(SubOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
10665   (void)_o;
10666   (void)_resolver;
10667   { auto _e = fused_activation_function(); _o->fused_activation_function = _e; };
10668 }
10669 
10670 inline flatbuffers::Offset<SubOptions> SubOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const SubOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
10671   return CreateSubOptions(_fbb, _o, _rehasher);
10672 }
10673 
10674 inline flatbuffers::Offset<SubOptions> CreateSubOptions(flatbuffers::FlatBufferBuilder &_fbb, const SubOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
10675   (void)_rehasher;
10676   (void)_o;
10677   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const SubOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
10678   auto _fused_activation_function = _o->fused_activation_function;
10679   return tflite::CreateSubOptions(
10680       _fbb,
10681       _fused_activation_function);
10682 }
10683 
10684 inline DivOptionsT *DivOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
10685   auto _o = new DivOptionsT();
10686   UnPackTo(_o, _resolver);
10687   return _o;
10688 }
10689 
10690 inline void DivOptions::UnPackTo(DivOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
10691   (void)_o;
10692   (void)_resolver;
10693   { auto _e = fused_activation_function(); _o->fused_activation_function = _e; };
10694 }
10695 
10696 inline flatbuffers::Offset<DivOptions> DivOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const DivOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
10697   return CreateDivOptions(_fbb, _o, _rehasher);
10698 }
10699 
10700 inline flatbuffers::Offset<DivOptions> CreateDivOptions(flatbuffers::FlatBufferBuilder &_fbb, const DivOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
10701   (void)_rehasher;
10702   (void)_o;
10703   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const DivOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
10704   auto _fused_activation_function = _o->fused_activation_function;
10705   return tflite::CreateDivOptions(
10706       _fbb,
10707       _fused_activation_function);
10708 }
10709 
10710 inline TopKV2OptionsT *TopKV2Options::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
10711   auto _o = new TopKV2OptionsT();
10712   UnPackTo(_o, _resolver);
10713   return _o;
10714 }
10715 
10716 inline void TopKV2Options::UnPackTo(TopKV2OptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
10717   (void)_o;
10718   (void)_resolver;
10719 }
10720 
10721 inline flatbuffers::Offset<TopKV2Options> TopKV2Options::Pack(flatbuffers::FlatBufferBuilder &_fbb, const TopKV2OptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
10722   return CreateTopKV2Options(_fbb, _o, _rehasher);
10723 }
10724 
10725 inline flatbuffers::Offset<TopKV2Options> CreateTopKV2Options(flatbuffers::FlatBufferBuilder &_fbb, const TopKV2OptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
10726   (void)_rehasher;
10727   (void)_o;
10728   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const TopKV2OptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
10729   return tflite::CreateTopKV2Options(
10730       _fbb);
10731 }
10732 
10733 inline EmbeddingLookupSparseOptionsT *EmbeddingLookupSparseOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
10734   auto _o = new EmbeddingLookupSparseOptionsT();
10735   UnPackTo(_o, _resolver);
10736   return _o;
10737 }
10738 
10739 inline void EmbeddingLookupSparseOptions::UnPackTo(EmbeddingLookupSparseOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
10740   (void)_o;
10741   (void)_resolver;
10742   { auto _e = combiner(); _o->combiner = _e; };
10743 }
10744 
10745 inline flatbuffers::Offset<EmbeddingLookupSparseOptions> EmbeddingLookupSparseOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const EmbeddingLookupSparseOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
10746   return CreateEmbeddingLookupSparseOptions(_fbb, _o, _rehasher);
10747 }
10748 
10749 inline flatbuffers::Offset<EmbeddingLookupSparseOptions> CreateEmbeddingLookupSparseOptions(flatbuffers::FlatBufferBuilder &_fbb, const EmbeddingLookupSparseOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
10750   (void)_rehasher;
10751   (void)_o;
10752   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const EmbeddingLookupSparseOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
10753   auto _combiner = _o->combiner;
10754   return tflite::CreateEmbeddingLookupSparseOptions(
10755       _fbb,
10756       _combiner);
10757 }
10758 
10759 inline GatherOptionsT *GatherOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
10760   auto _o = new GatherOptionsT();
10761   UnPackTo(_o, _resolver);
10762   return _o;
10763 }
10764 
10765 inline void GatherOptions::UnPackTo(GatherOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
10766   (void)_o;
10767   (void)_resolver;
10768   { auto _e = axis(); _o->axis = _e; };
10769 }
10770 
10771 inline flatbuffers::Offset<GatherOptions> GatherOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const GatherOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
10772   return CreateGatherOptions(_fbb, _o, _rehasher);
10773 }
10774 
10775 inline flatbuffers::Offset<GatherOptions> CreateGatherOptions(flatbuffers::FlatBufferBuilder &_fbb, const GatherOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
10776   (void)_rehasher;
10777   (void)_o;
10778   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const GatherOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
10779   auto _axis = _o->axis;
10780   return tflite::CreateGatherOptions(
10781       _fbb,
10782       _axis);
10783 }
10784 
10785 inline TransposeOptionsT *TransposeOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
10786   auto _o = new TransposeOptionsT();
10787   UnPackTo(_o, _resolver);
10788   return _o;
10789 }
10790 
10791 inline void TransposeOptions::UnPackTo(TransposeOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
10792   (void)_o;
10793   (void)_resolver;
10794 }
10795 
10796 inline flatbuffers::Offset<TransposeOptions> TransposeOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const TransposeOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
10797   return CreateTransposeOptions(_fbb, _o, _rehasher);
10798 }
10799 
10800 inline flatbuffers::Offset<TransposeOptions> CreateTransposeOptions(flatbuffers::FlatBufferBuilder &_fbb, const TransposeOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
10801   (void)_rehasher;
10802   (void)_o;
10803   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const TransposeOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
10804   return tflite::CreateTransposeOptions(
10805       _fbb);
10806 }
10807 
10808 inline ExpOptionsT *ExpOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
10809   auto _o = new ExpOptionsT();
10810   UnPackTo(_o, _resolver);
10811   return _o;
10812 }
10813 
10814 inline void ExpOptions::UnPackTo(ExpOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
10815   (void)_o;
10816   (void)_resolver;
10817 }
10818 
10819 inline flatbuffers::Offset<ExpOptions> ExpOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const ExpOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
10820   return CreateExpOptions(_fbb, _o, _rehasher);
10821 }
10822 
10823 inline flatbuffers::Offset<ExpOptions> CreateExpOptions(flatbuffers::FlatBufferBuilder &_fbb, const ExpOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
10824   (void)_rehasher;
10825   (void)_o;
10826   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const ExpOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
10827   return tflite::CreateExpOptions(
10828       _fbb);
10829 }
10830 
10831 inline CosOptionsT *CosOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
10832   auto _o = new CosOptionsT();
10833   UnPackTo(_o, _resolver);
10834   return _o;
10835 }
10836 
10837 inline void CosOptions::UnPackTo(CosOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
10838   (void)_o;
10839   (void)_resolver;
10840 }
10841 
10842 inline flatbuffers::Offset<CosOptions> CosOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const CosOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
10843   return CreateCosOptions(_fbb, _o, _rehasher);
10844 }
10845 
10846 inline flatbuffers::Offset<CosOptions> CreateCosOptions(flatbuffers::FlatBufferBuilder &_fbb, const CosOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
10847   (void)_rehasher;
10848   (void)_o;
10849   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const CosOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
10850   return tflite::CreateCosOptions(
10851       _fbb);
10852 }
10853 
10854 inline ReducerOptionsT *ReducerOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
10855   auto _o = new ReducerOptionsT();
10856   UnPackTo(_o, _resolver);
10857   return _o;
10858 }
10859 
10860 inline void ReducerOptions::UnPackTo(ReducerOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
10861   (void)_o;
10862   (void)_resolver;
10863   { auto _e = keep_dims(); _o->keep_dims = _e; };
10864 }
10865 
10866 inline flatbuffers::Offset<ReducerOptions> ReducerOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const ReducerOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
10867   return CreateReducerOptions(_fbb, _o, _rehasher);
10868 }
10869 
10870 inline flatbuffers::Offset<ReducerOptions> CreateReducerOptions(flatbuffers::FlatBufferBuilder &_fbb, const ReducerOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
10871   (void)_rehasher;
10872   (void)_o;
10873   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const ReducerOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
10874   auto _keep_dims = _o->keep_dims;
10875   return tflite::CreateReducerOptions(
10876       _fbb,
10877       _keep_dims);
10878 }
10879 
10880 inline SqueezeOptionsT *SqueezeOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
10881   auto _o = new SqueezeOptionsT();
10882   UnPackTo(_o, _resolver);
10883   return _o;
10884 }
10885 
10886 inline void SqueezeOptions::UnPackTo(SqueezeOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
10887   (void)_o;
10888   (void)_resolver;
10889   { auto _e = squeeze_dims(); if (_e) { _o->squeeze_dims.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->squeeze_dims[_i] = _e->Get(_i); } } };
10890 }
10891 
10892 inline flatbuffers::Offset<SqueezeOptions> SqueezeOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const SqueezeOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
10893   return CreateSqueezeOptions(_fbb, _o, _rehasher);
10894 }
10895 
10896 inline flatbuffers::Offset<SqueezeOptions> CreateSqueezeOptions(flatbuffers::FlatBufferBuilder &_fbb, const SqueezeOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
10897   (void)_rehasher;
10898   (void)_o;
10899   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const SqueezeOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
10900   auto _squeeze_dims = _o->squeeze_dims.size() ? _fbb.CreateVector(_o->squeeze_dims) : 0;
10901   return tflite::CreateSqueezeOptions(
10902       _fbb,
10903       _squeeze_dims);
10904 }
10905 
10906 inline SplitOptionsT *SplitOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
10907   auto _o = new SplitOptionsT();
10908   UnPackTo(_o, _resolver);
10909   return _o;
10910 }
10911 
10912 inline void SplitOptions::UnPackTo(SplitOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
10913   (void)_o;
10914   (void)_resolver;
10915   { auto _e = num_splits(); _o->num_splits = _e; };
10916 }
10917 
10918 inline flatbuffers::Offset<SplitOptions> SplitOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const SplitOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
10919   return CreateSplitOptions(_fbb, _o, _rehasher);
10920 }
10921 
10922 inline flatbuffers::Offset<SplitOptions> CreateSplitOptions(flatbuffers::FlatBufferBuilder &_fbb, const SplitOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
10923   (void)_rehasher;
10924   (void)_o;
10925   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const SplitOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
10926   auto _num_splits = _o->num_splits;
10927   return tflite::CreateSplitOptions(
10928       _fbb,
10929       _num_splits);
10930 }
10931 
10932 inline SplitVOptionsT *SplitVOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
10933   auto _o = new SplitVOptionsT();
10934   UnPackTo(_o, _resolver);
10935   return _o;
10936 }
10937 
10938 inline void SplitVOptions::UnPackTo(SplitVOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
10939   (void)_o;
10940   (void)_resolver;
10941   { auto _e = num_splits(); _o->num_splits = _e; };
10942 }
10943 
10944 inline flatbuffers::Offset<SplitVOptions> SplitVOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const SplitVOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
10945   return CreateSplitVOptions(_fbb, _o, _rehasher);
10946 }
10947 
10948 inline flatbuffers::Offset<SplitVOptions> CreateSplitVOptions(flatbuffers::FlatBufferBuilder &_fbb, const SplitVOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
10949   (void)_rehasher;
10950   (void)_o;
10951   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const SplitVOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
10952   auto _num_splits = _o->num_splits;
10953   return tflite::CreateSplitVOptions(
10954       _fbb,
10955       _num_splits);
10956 }
10957 
10958 inline StridedSliceOptionsT *StridedSliceOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
10959   auto _o = new StridedSliceOptionsT();
10960   UnPackTo(_o, _resolver);
10961   return _o;
10962 }
10963 
10964 inline void StridedSliceOptions::UnPackTo(StridedSliceOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
10965   (void)_o;
10966   (void)_resolver;
10967   { auto _e = begin_mask(); _o->begin_mask = _e; };
10968   { auto _e = end_mask(); _o->end_mask = _e; };
10969   { auto _e = ellipsis_mask(); _o->ellipsis_mask = _e; };
10970   { auto _e = new_axis_mask(); _o->new_axis_mask = _e; };
10971   { auto _e = shrink_axis_mask(); _o->shrink_axis_mask = _e; };
10972 }
10973 
10974 inline flatbuffers::Offset<StridedSliceOptions> StridedSliceOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const StridedSliceOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
10975   return CreateStridedSliceOptions(_fbb, _o, _rehasher);
10976 }
10977 
10978 inline flatbuffers::Offset<StridedSliceOptions> CreateStridedSliceOptions(flatbuffers::FlatBufferBuilder &_fbb, const StridedSliceOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
10979   (void)_rehasher;
10980   (void)_o;
10981   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const StridedSliceOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
10982   auto _begin_mask = _o->begin_mask;
10983   auto _end_mask = _o->end_mask;
10984   auto _ellipsis_mask = _o->ellipsis_mask;
10985   auto _new_axis_mask = _o->new_axis_mask;
10986   auto _shrink_axis_mask = _o->shrink_axis_mask;
10987   return tflite::CreateStridedSliceOptions(
10988       _fbb,
10989       _begin_mask,
10990       _end_mask,
10991       _ellipsis_mask,
10992       _new_axis_mask,
10993       _shrink_axis_mask);
10994 }
10995 
10996 inline LogSoftmaxOptionsT *LogSoftmaxOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
10997   auto _o = new LogSoftmaxOptionsT();
10998   UnPackTo(_o, _resolver);
10999   return _o;
11000 }
11001 
11002 inline void LogSoftmaxOptions::UnPackTo(LogSoftmaxOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
11003   (void)_o;
11004   (void)_resolver;
11005 }
11006 
11007 inline flatbuffers::Offset<LogSoftmaxOptions> LogSoftmaxOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const LogSoftmaxOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
11008   return CreateLogSoftmaxOptions(_fbb, _o, _rehasher);
11009 }
11010 
11011 inline flatbuffers::Offset<LogSoftmaxOptions> CreateLogSoftmaxOptions(flatbuffers::FlatBufferBuilder &_fbb, const LogSoftmaxOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
11012   (void)_rehasher;
11013   (void)_o;
11014   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const LogSoftmaxOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
11015   return tflite::CreateLogSoftmaxOptions(
11016       _fbb);
11017 }
11018 
11019 inline CastOptionsT *CastOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
11020   auto _o = new CastOptionsT();
11021   UnPackTo(_o, _resolver);
11022   return _o;
11023 }
11024 
11025 inline void CastOptions::UnPackTo(CastOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
11026   (void)_o;
11027   (void)_resolver;
11028   { auto _e = in_data_type(); _o->in_data_type = _e; };
11029   { auto _e = out_data_type(); _o->out_data_type = _e; };
11030 }
11031 
11032 inline flatbuffers::Offset<CastOptions> CastOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const CastOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
11033   return CreateCastOptions(_fbb, _o, _rehasher);
11034 }
11035 
11036 inline flatbuffers::Offset<CastOptions> CreateCastOptions(flatbuffers::FlatBufferBuilder &_fbb, const CastOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
11037   (void)_rehasher;
11038   (void)_o;
11039   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const CastOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
11040   auto _in_data_type = _o->in_data_type;
11041   auto _out_data_type = _o->out_data_type;
11042   return tflite::CreateCastOptions(
11043       _fbb,
11044       _in_data_type,
11045       _out_data_type);
11046 }
11047 
11048 inline DequantizeOptionsT *DequantizeOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
11049   auto _o = new DequantizeOptionsT();
11050   UnPackTo(_o, _resolver);
11051   return _o;
11052 }
11053 
11054 inline void DequantizeOptions::UnPackTo(DequantizeOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
11055   (void)_o;
11056   (void)_resolver;
11057 }
11058 
11059 inline flatbuffers::Offset<DequantizeOptions> DequantizeOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const DequantizeOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
11060   return CreateDequantizeOptions(_fbb, _o, _rehasher);
11061 }
11062 
11063 inline flatbuffers::Offset<DequantizeOptions> CreateDequantizeOptions(flatbuffers::FlatBufferBuilder &_fbb, const DequantizeOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
11064   (void)_rehasher;
11065   (void)_o;
11066   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const DequantizeOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
11067   return tflite::CreateDequantizeOptions(
11068       _fbb);
11069 }
11070 
11071 inline MaximumMinimumOptionsT *MaximumMinimumOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
11072   auto _o = new MaximumMinimumOptionsT();
11073   UnPackTo(_o, _resolver);
11074   return _o;
11075 }
11076 
11077 inline void MaximumMinimumOptions::UnPackTo(MaximumMinimumOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
11078   (void)_o;
11079   (void)_resolver;
11080 }
11081 
11082 inline flatbuffers::Offset<MaximumMinimumOptions> MaximumMinimumOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const MaximumMinimumOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
11083   return CreateMaximumMinimumOptions(_fbb, _o, _rehasher);
11084 }
11085 
11086 inline flatbuffers::Offset<MaximumMinimumOptions> CreateMaximumMinimumOptions(flatbuffers::FlatBufferBuilder &_fbb, const MaximumMinimumOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
11087   (void)_rehasher;
11088   (void)_o;
11089   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const MaximumMinimumOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
11090   return tflite::CreateMaximumMinimumOptions(
11091       _fbb);
11092 }
11093 
11094 inline TileOptionsT *TileOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
11095   auto _o = new TileOptionsT();
11096   UnPackTo(_o, _resolver);
11097   return _o;
11098 }
11099 
11100 inline void TileOptions::UnPackTo(TileOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
11101   (void)_o;
11102   (void)_resolver;
11103 }
11104 
11105 inline flatbuffers::Offset<TileOptions> TileOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const TileOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
11106   return CreateTileOptions(_fbb, _o, _rehasher);
11107 }
11108 
11109 inline flatbuffers::Offset<TileOptions> CreateTileOptions(flatbuffers::FlatBufferBuilder &_fbb, const TileOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
11110   (void)_rehasher;
11111   (void)_o;
11112   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const TileOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
11113   return tflite::CreateTileOptions(
11114       _fbb);
11115 }
11116 
11117 inline ArgMaxOptionsT *ArgMaxOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
11118   auto _o = new ArgMaxOptionsT();
11119   UnPackTo(_o, _resolver);
11120   return _o;
11121 }
11122 
11123 inline void ArgMaxOptions::UnPackTo(ArgMaxOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
11124   (void)_o;
11125   (void)_resolver;
11126   { auto _e = output_type(); _o->output_type = _e; };
11127 }
11128 
11129 inline flatbuffers::Offset<ArgMaxOptions> ArgMaxOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const ArgMaxOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
11130   return CreateArgMaxOptions(_fbb, _o, _rehasher);
11131 }
11132 
11133 inline flatbuffers::Offset<ArgMaxOptions> CreateArgMaxOptions(flatbuffers::FlatBufferBuilder &_fbb, const ArgMaxOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
11134   (void)_rehasher;
11135   (void)_o;
11136   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const ArgMaxOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
11137   auto _output_type = _o->output_type;
11138   return tflite::CreateArgMaxOptions(
11139       _fbb,
11140       _output_type);
11141 }
11142 
11143 inline ArgMinOptionsT *ArgMinOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
11144   auto _o = new ArgMinOptionsT();
11145   UnPackTo(_o, _resolver);
11146   return _o;
11147 }
11148 
11149 inline void ArgMinOptions::UnPackTo(ArgMinOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
11150   (void)_o;
11151   (void)_resolver;
11152   { auto _e = output_type(); _o->output_type = _e; };
11153 }
11154 
11155 inline flatbuffers::Offset<ArgMinOptions> ArgMinOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const ArgMinOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
11156   return CreateArgMinOptions(_fbb, _o, _rehasher);
11157 }
11158 
11159 inline flatbuffers::Offset<ArgMinOptions> CreateArgMinOptions(flatbuffers::FlatBufferBuilder &_fbb, const ArgMinOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
11160   (void)_rehasher;
11161   (void)_o;
11162   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const ArgMinOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
11163   auto _output_type = _o->output_type;
11164   return tflite::CreateArgMinOptions(
11165       _fbb,
11166       _output_type);
11167 }
11168 
11169 inline GreaterOptionsT *GreaterOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
11170   auto _o = new GreaterOptionsT();
11171   UnPackTo(_o, _resolver);
11172   return _o;
11173 }
11174 
11175 inline void GreaterOptions::UnPackTo(GreaterOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
11176   (void)_o;
11177   (void)_resolver;
11178 }
11179 
11180 inline flatbuffers::Offset<GreaterOptions> GreaterOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const GreaterOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
11181   return CreateGreaterOptions(_fbb, _o, _rehasher);
11182 }
11183 
11184 inline flatbuffers::Offset<GreaterOptions> CreateGreaterOptions(flatbuffers::FlatBufferBuilder &_fbb, const GreaterOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
11185   (void)_rehasher;
11186   (void)_o;
11187   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const GreaterOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
11188   return tflite::CreateGreaterOptions(
11189       _fbb);
11190 }
11191 
11192 inline GreaterEqualOptionsT *GreaterEqualOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
11193   auto _o = new GreaterEqualOptionsT();
11194   UnPackTo(_o, _resolver);
11195   return _o;
11196 }
11197 
11198 inline void GreaterEqualOptions::UnPackTo(GreaterEqualOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
11199   (void)_o;
11200   (void)_resolver;
11201 }
11202 
11203 inline flatbuffers::Offset<GreaterEqualOptions> GreaterEqualOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const GreaterEqualOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
11204   return CreateGreaterEqualOptions(_fbb, _o, _rehasher);
11205 }
11206 
11207 inline flatbuffers::Offset<GreaterEqualOptions> CreateGreaterEqualOptions(flatbuffers::FlatBufferBuilder &_fbb, const GreaterEqualOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
11208   (void)_rehasher;
11209   (void)_o;
11210   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const GreaterEqualOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
11211   return tflite::CreateGreaterEqualOptions(
11212       _fbb);
11213 }
11214 
11215 inline LessOptionsT *LessOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
11216   auto _o = new LessOptionsT();
11217   UnPackTo(_o, _resolver);
11218   return _o;
11219 }
11220 
11221 inline void LessOptions::UnPackTo(LessOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
11222   (void)_o;
11223   (void)_resolver;
11224 }
11225 
11226 inline flatbuffers::Offset<LessOptions> LessOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const LessOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
11227   return CreateLessOptions(_fbb, _o, _rehasher);
11228 }
11229 
11230 inline flatbuffers::Offset<LessOptions> CreateLessOptions(flatbuffers::FlatBufferBuilder &_fbb, const LessOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
11231   (void)_rehasher;
11232   (void)_o;
11233   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const LessOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
11234   return tflite::CreateLessOptions(
11235       _fbb);
11236 }
11237 
11238 inline LessEqualOptionsT *LessEqualOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
11239   auto _o = new LessEqualOptionsT();
11240   UnPackTo(_o, _resolver);
11241   return _o;
11242 }
11243 
11244 inline void LessEqualOptions::UnPackTo(LessEqualOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
11245   (void)_o;
11246   (void)_resolver;
11247 }
11248 
11249 inline flatbuffers::Offset<LessEqualOptions> LessEqualOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const LessEqualOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
11250   return CreateLessEqualOptions(_fbb, _o, _rehasher);
11251 }
11252 
11253 inline flatbuffers::Offset<LessEqualOptions> CreateLessEqualOptions(flatbuffers::FlatBufferBuilder &_fbb, const LessEqualOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
11254   (void)_rehasher;
11255   (void)_o;
11256   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const LessEqualOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
11257   return tflite::CreateLessEqualOptions(
11258       _fbb);
11259 }
11260 
11261 inline NegOptionsT *NegOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
11262   auto _o = new NegOptionsT();
11263   UnPackTo(_o, _resolver);
11264   return _o;
11265 }
11266 
11267 inline void NegOptions::UnPackTo(NegOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
11268   (void)_o;
11269   (void)_resolver;
11270 }
11271 
11272 inline flatbuffers::Offset<NegOptions> NegOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const NegOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
11273   return CreateNegOptions(_fbb, _o, _rehasher);
11274 }
11275 
11276 inline flatbuffers::Offset<NegOptions> CreateNegOptions(flatbuffers::FlatBufferBuilder &_fbb, const NegOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
11277   (void)_rehasher;
11278   (void)_o;
11279   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const NegOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
11280   return tflite::CreateNegOptions(
11281       _fbb);
11282 }
11283 
11284 inline SelectOptionsT *SelectOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
11285   auto _o = new SelectOptionsT();
11286   UnPackTo(_o, _resolver);
11287   return _o;
11288 }
11289 
11290 inline void SelectOptions::UnPackTo(SelectOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
11291   (void)_o;
11292   (void)_resolver;
11293 }
11294 
11295 inline flatbuffers::Offset<SelectOptions> SelectOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const SelectOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
11296   return CreateSelectOptions(_fbb, _o, _rehasher);
11297 }
11298 
11299 inline flatbuffers::Offset<SelectOptions> CreateSelectOptions(flatbuffers::FlatBufferBuilder &_fbb, const SelectOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
11300   (void)_rehasher;
11301   (void)_o;
11302   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const SelectOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
11303   return tflite::CreateSelectOptions(
11304       _fbb);
11305 }
11306 
11307 inline SliceOptionsT *SliceOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
11308   auto _o = new SliceOptionsT();
11309   UnPackTo(_o, _resolver);
11310   return _o;
11311 }
11312 
11313 inline void SliceOptions::UnPackTo(SliceOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
11314   (void)_o;
11315   (void)_resolver;
11316 }
11317 
11318 inline flatbuffers::Offset<SliceOptions> SliceOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const SliceOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
11319   return CreateSliceOptions(_fbb, _o, _rehasher);
11320 }
11321 
11322 inline flatbuffers::Offset<SliceOptions> CreateSliceOptions(flatbuffers::FlatBufferBuilder &_fbb, const SliceOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
11323   (void)_rehasher;
11324   (void)_o;
11325   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const SliceOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
11326   return tflite::CreateSliceOptions(
11327       _fbb);
11328 }
11329 
11330 inline TransposeConvOptionsT *TransposeConvOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
11331   auto _o = new TransposeConvOptionsT();
11332   UnPackTo(_o, _resolver);
11333   return _o;
11334 }
11335 
11336 inline void TransposeConvOptions::UnPackTo(TransposeConvOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
11337   (void)_o;
11338   (void)_resolver;
11339   { auto _e = padding(); _o->padding = _e; };
11340   { auto _e = stride_w(); _o->stride_w = _e; };
11341   { auto _e = stride_h(); _o->stride_h = _e; };
11342 }
11343 
11344 inline flatbuffers::Offset<TransposeConvOptions> TransposeConvOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const TransposeConvOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
11345   return CreateTransposeConvOptions(_fbb, _o, _rehasher);
11346 }
11347 
11348 inline flatbuffers::Offset<TransposeConvOptions> CreateTransposeConvOptions(flatbuffers::FlatBufferBuilder &_fbb, const TransposeConvOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
11349   (void)_rehasher;
11350   (void)_o;
11351   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const TransposeConvOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
11352   auto _padding = _o->padding;
11353   auto _stride_w = _o->stride_w;
11354   auto _stride_h = _o->stride_h;
11355   return tflite::CreateTransposeConvOptions(
11356       _fbb,
11357       _padding,
11358       _stride_w,
11359       _stride_h);
11360 }
11361 
11362 inline ExpandDimsOptionsT *ExpandDimsOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
11363   auto _o = new ExpandDimsOptionsT();
11364   UnPackTo(_o, _resolver);
11365   return _o;
11366 }
11367 
11368 inline void ExpandDimsOptions::UnPackTo(ExpandDimsOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
11369   (void)_o;
11370   (void)_resolver;
11371 }
11372 
11373 inline flatbuffers::Offset<ExpandDimsOptions> ExpandDimsOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const ExpandDimsOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
11374   return CreateExpandDimsOptions(_fbb, _o, _rehasher);
11375 }
11376 
11377 inline flatbuffers::Offset<ExpandDimsOptions> CreateExpandDimsOptions(flatbuffers::FlatBufferBuilder &_fbb, const ExpandDimsOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
11378   (void)_rehasher;
11379   (void)_o;
11380   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const ExpandDimsOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
11381   return tflite::CreateExpandDimsOptions(
11382       _fbb);
11383 }
11384 
11385 inline SparseToDenseOptionsT *SparseToDenseOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
11386   auto _o = new SparseToDenseOptionsT();
11387   UnPackTo(_o, _resolver);
11388   return _o;
11389 }
11390 
11391 inline void SparseToDenseOptions::UnPackTo(SparseToDenseOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
11392   (void)_o;
11393   (void)_resolver;
11394   { auto _e = validate_indices(); _o->validate_indices = _e; };
11395 }
11396 
11397 inline flatbuffers::Offset<SparseToDenseOptions> SparseToDenseOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const SparseToDenseOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
11398   return CreateSparseToDenseOptions(_fbb, _o, _rehasher);
11399 }
11400 
11401 inline flatbuffers::Offset<SparseToDenseOptions> CreateSparseToDenseOptions(flatbuffers::FlatBufferBuilder &_fbb, const SparseToDenseOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
11402   (void)_rehasher;
11403   (void)_o;
11404   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const SparseToDenseOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
11405   auto _validate_indices = _o->validate_indices;
11406   return tflite::CreateSparseToDenseOptions(
11407       _fbb,
11408       _validate_indices);
11409 }
11410 
11411 inline EqualOptionsT *EqualOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
11412   auto _o = new EqualOptionsT();
11413   UnPackTo(_o, _resolver);
11414   return _o;
11415 }
11416 
11417 inline void EqualOptions::UnPackTo(EqualOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
11418   (void)_o;
11419   (void)_resolver;
11420 }
11421 
11422 inline flatbuffers::Offset<EqualOptions> EqualOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const EqualOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
11423   return CreateEqualOptions(_fbb, _o, _rehasher);
11424 }
11425 
11426 inline flatbuffers::Offset<EqualOptions> CreateEqualOptions(flatbuffers::FlatBufferBuilder &_fbb, const EqualOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
11427   (void)_rehasher;
11428   (void)_o;
11429   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const EqualOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
11430   return tflite::CreateEqualOptions(
11431       _fbb);
11432 }
11433 
11434 inline NotEqualOptionsT *NotEqualOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
11435   auto _o = new NotEqualOptionsT();
11436   UnPackTo(_o, _resolver);
11437   return _o;
11438 }
11439 
11440 inline void NotEqualOptions::UnPackTo(NotEqualOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
11441   (void)_o;
11442   (void)_resolver;
11443 }
11444 
11445 inline flatbuffers::Offset<NotEqualOptions> NotEqualOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const NotEqualOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
11446   return CreateNotEqualOptions(_fbb, _o, _rehasher);
11447 }
11448 
11449 inline flatbuffers::Offset<NotEqualOptions> CreateNotEqualOptions(flatbuffers::FlatBufferBuilder &_fbb, const NotEqualOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
11450   (void)_rehasher;
11451   (void)_o;
11452   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const NotEqualOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
11453   return tflite::CreateNotEqualOptions(
11454       _fbb);
11455 }
11456 
11457 inline ShapeOptionsT *ShapeOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
11458   auto _o = new ShapeOptionsT();
11459   UnPackTo(_o, _resolver);
11460   return _o;
11461 }
11462 
11463 inline void ShapeOptions::UnPackTo(ShapeOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
11464   (void)_o;
11465   (void)_resolver;
11466   { auto _e = out_type(); _o->out_type = _e; };
11467 }
11468 
11469 inline flatbuffers::Offset<ShapeOptions> ShapeOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const ShapeOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
11470   return CreateShapeOptions(_fbb, _o, _rehasher);
11471 }
11472 
11473 inline flatbuffers::Offset<ShapeOptions> CreateShapeOptions(flatbuffers::FlatBufferBuilder &_fbb, const ShapeOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
11474   (void)_rehasher;
11475   (void)_o;
11476   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const ShapeOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
11477   auto _out_type = _o->out_type;
11478   return tflite::CreateShapeOptions(
11479       _fbb,
11480       _out_type);
11481 }
11482 
11483 inline RankOptionsT *RankOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
11484   auto _o = new RankOptionsT();
11485   UnPackTo(_o, _resolver);
11486   return _o;
11487 }
11488 
11489 inline void RankOptions::UnPackTo(RankOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
11490   (void)_o;
11491   (void)_resolver;
11492 }
11493 
11494 inline flatbuffers::Offset<RankOptions> RankOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const RankOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
11495   return CreateRankOptions(_fbb, _o, _rehasher);
11496 }
11497 
11498 inline flatbuffers::Offset<RankOptions> CreateRankOptions(flatbuffers::FlatBufferBuilder &_fbb, const RankOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
11499   (void)_rehasher;
11500   (void)_o;
11501   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const RankOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
11502   return tflite::CreateRankOptions(
11503       _fbb);
11504 }
11505 
11506 inline PowOptionsT *PowOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
11507   auto _o = new PowOptionsT();
11508   UnPackTo(_o, _resolver);
11509   return _o;
11510 }
11511 
11512 inline void PowOptions::UnPackTo(PowOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
11513   (void)_o;
11514   (void)_resolver;
11515 }
11516 
11517 inline flatbuffers::Offset<PowOptions> PowOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const PowOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
11518   return CreatePowOptions(_fbb, _o, _rehasher);
11519 }
11520 
11521 inline flatbuffers::Offset<PowOptions> CreatePowOptions(flatbuffers::FlatBufferBuilder &_fbb, const PowOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
11522   (void)_rehasher;
11523   (void)_o;
11524   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const PowOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
11525   return tflite::CreatePowOptions(
11526       _fbb);
11527 }
11528 
11529 inline FakeQuantOptionsT *FakeQuantOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
11530   auto _o = new FakeQuantOptionsT();
11531   UnPackTo(_o, _resolver);
11532   return _o;
11533 }
11534 
11535 inline void FakeQuantOptions::UnPackTo(FakeQuantOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
11536   (void)_o;
11537   (void)_resolver;
11538   { auto _e = min(); _o->min = _e; };
11539   { auto _e = max(); _o->max = _e; };
11540   { auto _e = num_bits(); _o->num_bits = _e; };
11541   { auto _e = narrow_range(); _o->narrow_range = _e; };
11542 }
11543 
11544 inline flatbuffers::Offset<FakeQuantOptions> FakeQuantOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const FakeQuantOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
11545   return CreateFakeQuantOptions(_fbb, _o, _rehasher);
11546 }
11547 
11548 inline flatbuffers::Offset<FakeQuantOptions> CreateFakeQuantOptions(flatbuffers::FlatBufferBuilder &_fbb, const FakeQuantOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
11549   (void)_rehasher;
11550   (void)_o;
11551   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const FakeQuantOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
11552   auto _min = _o->min;
11553   auto _max = _o->max;
11554   auto _num_bits = _o->num_bits;
11555   auto _narrow_range = _o->narrow_range;
11556   return tflite::CreateFakeQuantOptions(
11557       _fbb,
11558       _min,
11559       _max,
11560       _num_bits,
11561       _narrow_range);
11562 }
11563 
11564 inline PackOptionsT *PackOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
11565   auto _o = new PackOptionsT();
11566   UnPackTo(_o, _resolver);
11567   return _o;
11568 }
11569 
11570 inline void PackOptions::UnPackTo(PackOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
11571   (void)_o;
11572   (void)_resolver;
11573   { auto _e = values_count(); _o->values_count = _e; };
11574   { auto _e = axis(); _o->axis = _e; };
11575 }
11576 
11577 inline flatbuffers::Offset<PackOptions> PackOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const PackOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
11578   return CreatePackOptions(_fbb, _o, _rehasher);
11579 }
11580 
11581 inline flatbuffers::Offset<PackOptions> CreatePackOptions(flatbuffers::FlatBufferBuilder &_fbb, const PackOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
11582   (void)_rehasher;
11583   (void)_o;
11584   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const PackOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
11585   auto _values_count = _o->values_count;
11586   auto _axis = _o->axis;
11587   return tflite::CreatePackOptions(
11588       _fbb,
11589       _values_count,
11590       _axis);
11591 }
11592 
11593 inline LogicalOrOptionsT *LogicalOrOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
11594   auto _o = new LogicalOrOptionsT();
11595   UnPackTo(_o, _resolver);
11596   return _o;
11597 }
11598 
11599 inline void LogicalOrOptions::UnPackTo(LogicalOrOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
11600   (void)_o;
11601   (void)_resolver;
11602 }
11603 
11604 inline flatbuffers::Offset<LogicalOrOptions> LogicalOrOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const LogicalOrOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
11605   return CreateLogicalOrOptions(_fbb, _o, _rehasher);
11606 }
11607 
11608 inline flatbuffers::Offset<LogicalOrOptions> CreateLogicalOrOptions(flatbuffers::FlatBufferBuilder &_fbb, const LogicalOrOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
11609   (void)_rehasher;
11610   (void)_o;
11611   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const LogicalOrOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
11612   return tflite::CreateLogicalOrOptions(
11613       _fbb);
11614 }
11615 
11616 inline OneHotOptionsT *OneHotOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
11617   auto _o = new OneHotOptionsT();
11618   UnPackTo(_o, _resolver);
11619   return _o;
11620 }
11621 
11622 inline void OneHotOptions::UnPackTo(OneHotOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
11623   (void)_o;
11624   (void)_resolver;
11625   { auto _e = axis(); _o->axis = _e; };
11626 }
11627 
11628 inline flatbuffers::Offset<OneHotOptions> OneHotOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const OneHotOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
11629   return CreateOneHotOptions(_fbb, _o, _rehasher);
11630 }
11631 
11632 inline flatbuffers::Offset<OneHotOptions> CreateOneHotOptions(flatbuffers::FlatBufferBuilder &_fbb, const OneHotOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
11633   (void)_rehasher;
11634   (void)_o;
11635   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const OneHotOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
11636   auto _axis = _o->axis;
11637   return tflite::CreateOneHotOptions(
11638       _fbb,
11639       _axis);
11640 }
11641 
11642 inline AbsOptionsT *AbsOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
11643   auto _o = new AbsOptionsT();
11644   UnPackTo(_o, _resolver);
11645   return _o;
11646 }
11647 
11648 inline void AbsOptions::UnPackTo(AbsOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
11649   (void)_o;
11650   (void)_resolver;
11651 }
11652 
11653 inline flatbuffers::Offset<AbsOptions> AbsOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const AbsOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
11654   return CreateAbsOptions(_fbb, _o, _rehasher);
11655 }
11656 
11657 inline flatbuffers::Offset<AbsOptions> CreateAbsOptions(flatbuffers::FlatBufferBuilder &_fbb, const AbsOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
11658   (void)_rehasher;
11659   (void)_o;
11660   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const AbsOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
11661   return tflite::CreateAbsOptions(
11662       _fbb);
11663 }
11664 
11665 inline HardSwishOptionsT *HardSwishOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
11666   auto _o = new HardSwishOptionsT();
11667   UnPackTo(_o, _resolver);
11668   return _o;
11669 }
11670 
11671 inline void HardSwishOptions::UnPackTo(HardSwishOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
11672   (void)_o;
11673   (void)_resolver;
11674 }
11675 
11676 inline flatbuffers::Offset<HardSwishOptions> HardSwishOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const HardSwishOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
11677   return CreateHardSwishOptions(_fbb, _o, _rehasher);
11678 }
11679 
11680 inline flatbuffers::Offset<HardSwishOptions> CreateHardSwishOptions(flatbuffers::FlatBufferBuilder &_fbb, const HardSwishOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
11681   (void)_rehasher;
11682   (void)_o;
11683   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const HardSwishOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
11684   return tflite::CreateHardSwishOptions(
11685       _fbb);
11686 }
11687 
11688 inline LogicalAndOptionsT *LogicalAndOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
11689   auto _o = new LogicalAndOptionsT();
11690   UnPackTo(_o, _resolver);
11691   return _o;
11692 }
11693 
11694 inline void LogicalAndOptions::UnPackTo(LogicalAndOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
11695   (void)_o;
11696   (void)_resolver;
11697 }
11698 
11699 inline flatbuffers::Offset<LogicalAndOptions> LogicalAndOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const LogicalAndOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
11700   return CreateLogicalAndOptions(_fbb, _o, _rehasher);
11701 }
11702 
11703 inline flatbuffers::Offset<LogicalAndOptions> CreateLogicalAndOptions(flatbuffers::FlatBufferBuilder &_fbb, const LogicalAndOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
11704   (void)_rehasher;
11705   (void)_o;
11706   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const LogicalAndOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
11707   return tflite::CreateLogicalAndOptions(
11708       _fbb);
11709 }
11710 
11711 inline LogicalNotOptionsT *LogicalNotOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
11712   auto _o = new LogicalNotOptionsT();
11713   UnPackTo(_o, _resolver);
11714   return _o;
11715 }
11716 
11717 inline void LogicalNotOptions::UnPackTo(LogicalNotOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
11718   (void)_o;
11719   (void)_resolver;
11720 }
11721 
11722 inline flatbuffers::Offset<LogicalNotOptions> LogicalNotOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const LogicalNotOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
11723   return CreateLogicalNotOptions(_fbb, _o, _rehasher);
11724 }
11725 
11726 inline flatbuffers::Offset<LogicalNotOptions> CreateLogicalNotOptions(flatbuffers::FlatBufferBuilder &_fbb, const LogicalNotOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
11727   (void)_rehasher;
11728   (void)_o;
11729   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const LogicalNotOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
11730   return tflite::CreateLogicalNotOptions(
11731       _fbb);
11732 }
11733 
11734 inline UnpackOptionsT *UnpackOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
11735   auto _o = new UnpackOptionsT();
11736   UnPackTo(_o, _resolver);
11737   return _o;
11738 }
11739 
11740 inline void UnpackOptions::UnPackTo(UnpackOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
11741   (void)_o;
11742   (void)_resolver;
11743   { auto _e = num(); _o->num = _e; };
11744   { auto _e = axis(); _o->axis = _e; };
11745 }
11746 
11747 inline flatbuffers::Offset<UnpackOptions> UnpackOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const UnpackOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
11748   return CreateUnpackOptions(_fbb, _o, _rehasher);
11749 }
11750 
11751 inline flatbuffers::Offset<UnpackOptions> CreateUnpackOptions(flatbuffers::FlatBufferBuilder &_fbb, const UnpackOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
11752   (void)_rehasher;
11753   (void)_o;
11754   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const UnpackOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
11755   auto _num = _o->num;
11756   auto _axis = _o->axis;
11757   return tflite::CreateUnpackOptions(
11758       _fbb,
11759       _num,
11760       _axis);
11761 }
11762 
11763 inline FloorDivOptionsT *FloorDivOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
11764   auto _o = new FloorDivOptionsT();
11765   UnPackTo(_o, _resolver);
11766   return _o;
11767 }
11768 
11769 inline void FloorDivOptions::UnPackTo(FloorDivOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
11770   (void)_o;
11771   (void)_resolver;
11772 }
11773 
11774 inline flatbuffers::Offset<FloorDivOptions> FloorDivOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const FloorDivOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
11775   return CreateFloorDivOptions(_fbb, _o, _rehasher);
11776 }
11777 
11778 inline flatbuffers::Offset<FloorDivOptions> CreateFloorDivOptions(flatbuffers::FlatBufferBuilder &_fbb, const FloorDivOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
11779   (void)_rehasher;
11780   (void)_o;
11781   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const FloorDivOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
11782   return tflite::CreateFloorDivOptions(
11783       _fbb);
11784 }
11785 
11786 inline SquareOptionsT *SquareOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
11787   auto _o = new SquareOptionsT();
11788   UnPackTo(_o, _resolver);
11789   return _o;
11790 }
11791 
11792 inline void SquareOptions::UnPackTo(SquareOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
11793   (void)_o;
11794   (void)_resolver;
11795 }
11796 
11797 inline flatbuffers::Offset<SquareOptions> SquareOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const SquareOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
11798   return CreateSquareOptions(_fbb, _o, _rehasher);
11799 }
11800 
11801 inline flatbuffers::Offset<SquareOptions> CreateSquareOptions(flatbuffers::FlatBufferBuilder &_fbb, const SquareOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
11802   (void)_rehasher;
11803   (void)_o;
11804   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const SquareOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
11805   return tflite::CreateSquareOptions(
11806       _fbb);
11807 }
11808 
11809 inline ZerosLikeOptionsT *ZerosLikeOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
11810   auto _o = new ZerosLikeOptionsT();
11811   UnPackTo(_o, _resolver);
11812   return _o;
11813 }
11814 
11815 inline void ZerosLikeOptions::UnPackTo(ZerosLikeOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
11816   (void)_o;
11817   (void)_resolver;
11818 }
11819 
11820 inline flatbuffers::Offset<ZerosLikeOptions> ZerosLikeOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const ZerosLikeOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
11821   return CreateZerosLikeOptions(_fbb, _o, _rehasher);
11822 }
11823 
11824 inline flatbuffers::Offset<ZerosLikeOptions> CreateZerosLikeOptions(flatbuffers::FlatBufferBuilder &_fbb, const ZerosLikeOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
11825   (void)_rehasher;
11826   (void)_o;
11827   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const ZerosLikeOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
11828   return tflite::CreateZerosLikeOptions(
11829       _fbb);
11830 }
11831 
11832 inline FillOptionsT *FillOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
11833   auto _o = new FillOptionsT();
11834   UnPackTo(_o, _resolver);
11835   return _o;
11836 }
11837 
11838 inline void FillOptions::UnPackTo(FillOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
11839   (void)_o;
11840   (void)_resolver;
11841 }
11842 
11843 inline flatbuffers::Offset<FillOptions> FillOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const FillOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
11844   return CreateFillOptions(_fbb, _o, _rehasher);
11845 }
11846 
11847 inline flatbuffers::Offset<FillOptions> CreateFillOptions(flatbuffers::FlatBufferBuilder &_fbb, const FillOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
11848   (void)_rehasher;
11849   (void)_o;
11850   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const FillOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
11851   return tflite::CreateFillOptions(
11852       _fbb);
11853 }
11854 
11855 inline FloorModOptionsT *FloorModOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
11856   auto _o = new FloorModOptionsT();
11857   UnPackTo(_o, _resolver);
11858   return _o;
11859 }
11860 
11861 inline void FloorModOptions::UnPackTo(FloorModOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
11862   (void)_o;
11863   (void)_resolver;
11864 }
11865 
11866 inline flatbuffers::Offset<FloorModOptions> FloorModOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const FloorModOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
11867   return CreateFloorModOptions(_fbb, _o, _rehasher);
11868 }
11869 
11870 inline flatbuffers::Offset<FloorModOptions> CreateFloorModOptions(flatbuffers::FlatBufferBuilder &_fbb, const FloorModOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
11871   (void)_rehasher;
11872   (void)_o;
11873   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const FloorModOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
11874   return tflite::CreateFloorModOptions(
11875       _fbb);
11876 }
11877 
11878 inline RangeOptionsT *RangeOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
11879   auto _o = new RangeOptionsT();
11880   UnPackTo(_o, _resolver);
11881   return _o;
11882 }
11883 
11884 inline void RangeOptions::UnPackTo(RangeOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
11885   (void)_o;
11886   (void)_resolver;
11887 }
11888 
11889 inline flatbuffers::Offset<RangeOptions> RangeOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const RangeOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
11890   return CreateRangeOptions(_fbb, _o, _rehasher);
11891 }
11892 
11893 inline flatbuffers::Offset<RangeOptions> CreateRangeOptions(flatbuffers::FlatBufferBuilder &_fbb, const RangeOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
11894   (void)_rehasher;
11895   (void)_o;
11896   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const RangeOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
11897   return tflite::CreateRangeOptions(
11898       _fbb);
11899 }
11900 
11901 inline LeakyReluOptionsT *LeakyReluOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
11902   auto _o = new LeakyReluOptionsT();
11903   UnPackTo(_o, _resolver);
11904   return _o;
11905 }
11906 
11907 inline void LeakyReluOptions::UnPackTo(LeakyReluOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
11908   (void)_o;
11909   (void)_resolver;
11910   { auto _e = alpha(); _o->alpha = _e; };
11911 }
11912 
11913 inline flatbuffers::Offset<LeakyReluOptions> LeakyReluOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const LeakyReluOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
11914   return CreateLeakyReluOptions(_fbb, _o, _rehasher);
11915 }
11916 
11917 inline flatbuffers::Offset<LeakyReluOptions> CreateLeakyReluOptions(flatbuffers::FlatBufferBuilder &_fbb, const LeakyReluOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
11918   (void)_rehasher;
11919   (void)_o;
11920   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const LeakyReluOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
11921   auto _alpha = _o->alpha;
11922   return tflite::CreateLeakyReluOptions(
11923       _fbb,
11924       _alpha);
11925 }
11926 
11927 inline SquaredDifferenceOptionsT *SquaredDifferenceOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
11928   auto _o = new SquaredDifferenceOptionsT();
11929   UnPackTo(_o, _resolver);
11930   return _o;
11931 }
11932 
11933 inline void SquaredDifferenceOptions::UnPackTo(SquaredDifferenceOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
11934   (void)_o;
11935   (void)_resolver;
11936 }
11937 
11938 inline flatbuffers::Offset<SquaredDifferenceOptions> SquaredDifferenceOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const SquaredDifferenceOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
11939   return CreateSquaredDifferenceOptions(_fbb, _o, _rehasher);
11940 }
11941 
11942 inline flatbuffers::Offset<SquaredDifferenceOptions> CreateSquaredDifferenceOptions(flatbuffers::FlatBufferBuilder &_fbb, const SquaredDifferenceOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
11943   (void)_rehasher;
11944   (void)_o;
11945   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const SquaredDifferenceOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
11946   return tflite::CreateSquaredDifferenceOptions(
11947       _fbb);
11948 }
11949 
11950 inline MirrorPadOptionsT *MirrorPadOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
11951   auto _o = new MirrorPadOptionsT();
11952   UnPackTo(_o, _resolver);
11953   return _o;
11954 }
11955 
11956 inline void MirrorPadOptions::UnPackTo(MirrorPadOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
11957   (void)_o;
11958   (void)_resolver;
11959   { auto _e = mode(); _o->mode = _e; };
11960 }
11961 
11962 inline flatbuffers::Offset<MirrorPadOptions> MirrorPadOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const MirrorPadOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
11963   return CreateMirrorPadOptions(_fbb, _o, _rehasher);
11964 }
11965 
11966 inline flatbuffers::Offset<MirrorPadOptions> CreateMirrorPadOptions(flatbuffers::FlatBufferBuilder &_fbb, const MirrorPadOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
11967   (void)_rehasher;
11968   (void)_o;
11969   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const MirrorPadOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
11970   auto _mode = _o->mode;
11971   return tflite::CreateMirrorPadOptions(
11972       _fbb,
11973       _mode);
11974 }
11975 
11976 inline UniqueOptionsT *UniqueOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
11977   auto _o = new UniqueOptionsT();
11978   UnPackTo(_o, _resolver);
11979   return _o;
11980 }
11981 
11982 inline void UniqueOptions::UnPackTo(UniqueOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
11983   (void)_o;
11984   (void)_resolver;
11985   { auto _e = idx_out_type(); _o->idx_out_type = _e; };
11986 }
11987 
11988 inline flatbuffers::Offset<UniqueOptions> UniqueOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const UniqueOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
11989   return CreateUniqueOptions(_fbb, _o, _rehasher);
11990 }
11991 
11992 inline flatbuffers::Offset<UniqueOptions> CreateUniqueOptions(flatbuffers::FlatBufferBuilder &_fbb, const UniqueOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
11993   (void)_rehasher;
11994   (void)_o;
11995   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const UniqueOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
11996   auto _idx_out_type = _o->idx_out_type;
11997   return tflite::CreateUniqueOptions(
11998       _fbb,
11999       _idx_out_type);
12000 }
12001 
12002 inline ReverseV2OptionsT *ReverseV2Options::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
12003   auto _o = new ReverseV2OptionsT();
12004   UnPackTo(_o, _resolver);
12005   return _o;
12006 }
12007 
12008 inline void ReverseV2Options::UnPackTo(ReverseV2OptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
12009   (void)_o;
12010   (void)_resolver;
12011 }
12012 
12013 inline flatbuffers::Offset<ReverseV2Options> ReverseV2Options::Pack(flatbuffers::FlatBufferBuilder &_fbb, const ReverseV2OptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
12014   return CreateReverseV2Options(_fbb, _o, _rehasher);
12015 }
12016 
12017 inline flatbuffers::Offset<ReverseV2Options> CreateReverseV2Options(flatbuffers::FlatBufferBuilder &_fbb, const ReverseV2OptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
12018   (void)_rehasher;
12019   (void)_o;
12020   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const ReverseV2OptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
12021   return tflite::CreateReverseV2Options(
12022       _fbb);
12023 }
12024 
12025 inline AddNOptionsT *AddNOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
12026   auto _o = new AddNOptionsT();
12027   UnPackTo(_o, _resolver);
12028   return _o;
12029 }
12030 
12031 inline void AddNOptions::UnPackTo(AddNOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
12032   (void)_o;
12033   (void)_resolver;
12034 }
12035 
12036 inline flatbuffers::Offset<AddNOptions> AddNOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const AddNOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
12037   return CreateAddNOptions(_fbb, _o, _rehasher);
12038 }
12039 
12040 inline flatbuffers::Offset<AddNOptions> CreateAddNOptions(flatbuffers::FlatBufferBuilder &_fbb, const AddNOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
12041   (void)_rehasher;
12042   (void)_o;
12043   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const AddNOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
12044   return tflite::CreateAddNOptions(
12045       _fbb);
12046 }
12047 
12048 inline GatherNdOptionsT *GatherNdOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
12049   auto _o = new GatherNdOptionsT();
12050   UnPackTo(_o, _resolver);
12051   return _o;
12052 }
12053 
12054 inline void GatherNdOptions::UnPackTo(GatherNdOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
12055   (void)_o;
12056   (void)_resolver;
12057 }
12058 
12059 inline flatbuffers::Offset<GatherNdOptions> GatherNdOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const GatherNdOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
12060   return CreateGatherNdOptions(_fbb, _o, _rehasher);
12061 }
12062 
12063 inline flatbuffers::Offset<GatherNdOptions> CreateGatherNdOptions(flatbuffers::FlatBufferBuilder &_fbb, const GatherNdOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
12064   (void)_rehasher;
12065   (void)_o;
12066   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const GatherNdOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
12067   return tflite::CreateGatherNdOptions(
12068       _fbb);
12069 }
12070 
12071 inline WhereOptionsT *WhereOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
12072   auto _o = new WhereOptionsT();
12073   UnPackTo(_o, _resolver);
12074   return _o;
12075 }
12076 
12077 inline void WhereOptions::UnPackTo(WhereOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
12078   (void)_o;
12079   (void)_resolver;
12080 }
12081 
12082 inline flatbuffers::Offset<WhereOptions> WhereOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const WhereOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
12083   return CreateWhereOptions(_fbb, _o, _rehasher);
12084 }
12085 
12086 inline flatbuffers::Offset<WhereOptions> CreateWhereOptions(flatbuffers::FlatBufferBuilder &_fbb, const WhereOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
12087   (void)_rehasher;
12088   (void)_o;
12089   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const WhereOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
12090   return tflite::CreateWhereOptions(
12091       _fbb);
12092 }
12093 
12094 inline ReverseSequenceOptionsT *ReverseSequenceOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
12095   auto _o = new ReverseSequenceOptionsT();
12096   UnPackTo(_o, _resolver);
12097   return _o;
12098 }
12099 
12100 inline void ReverseSequenceOptions::UnPackTo(ReverseSequenceOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
12101   (void)_o;
12102   (void)_resolver;
12103   { auto _e = seq_dim(); _o->seq_dim = _e; };
12104   { auto _e = batch_dim(); _o->batch_dim = _e; };
12105 }
12106 
12107 inline flatbuffers::Offset<ReverseSequenceOptions> ReverseSequenceOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const ReverseSequenceOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
12108   return CreateReverseSequenceOptions(_fbb, _o, _rehasher);
12109 }
12110 
12111 inline flatbuffers::Offset<ReverseSequenceOptions> CreateReverseSequenceOptions(flatbuffers::FlatBufferBuilder &_fbb, const ReverseSequenceOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
12112   (void)_rehasher;
12113   (void)_o;
12114   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const ReverseSequenceOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
12115   auto _seq_dim = _o->seq_dim;
12116   auto _batch_dim = _o->batch_dim;
12117   return tflite::CreateReverseSequenceOptions(
12118       _fbb,
12119       _seq_dim,
12120       _batch_dim);
12121 }
12122 
12123 inline MatrixDiagOptionsT *MatrixDiagOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
12124   auto _o = new MatrixDiagOptionsT();
12125   UnPackTo(_o, _resolver);
12126   return _o;
12127 }
12128 
12129 inline void MatrixDiagOptions::UnPackTo(MatrixDiagOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
12130   (void)_o;
12131   (void)_resolver;
12132 }
12133 
12134 inline flatbuffers::Offset<MatrixDiagOptions> MatrixDiagOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const MatrixDiagOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
12135   return CreateMatrixDiagOptions(_fbb, _o, _rehasher);
12136 }
12137 
12138 inline flatbuffers::Offset<MatrixDiagOptions> CreateMatrixDiagOptions(flatbuffers::FlatBufferBuilder &_fbb, const MatrixDiagOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
12139   (void)_rehasher;
12140   (void)_o;
12141   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const MatrixDiagOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
12142   return tflite::CreateMatrixDiagOptions(
12143       _fbb);
12144 }
12145 
12146 inline QuantizeOptionsT *QuantizeOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
12147   auto _o = new QuantizeOptionsT();
12148   UnPackTo(_o, _resolver);
12149   return _o;
12150 }
12151 
12152 inline void QuantizeOptions::UnPackTo(QuantizeOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
12153   (void)_o;
12154   (void)_resolver;
12155 }
12156 
12157 inline flatbuffers::Offset<QuantizeOptions> QuantizeOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const QuantizeOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
12158   return CreateQuantizeOptions(_fbb, _o, _rehasher);
12159 }
12160 
12161 inline flatbuffers::Offset<QuantizeOptions> CreateQuantizeOptions(flatbuffers::FlatBufferBuilder &_fbb, const QuantizeOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
12162   (void)_rehasher;
12163   (void)_o;
12164   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const QuantizeOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
12165   return tflite::CreateQuantizeOptions(
12166       _fbb);
12167 }
12168 
12169 inline MatrixSetDiagOptionsT *MatrixSetDiagOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
12170   auto _o = new MatrixSetDiagOptionsT();
12171   UnPackTo(_o, _resolver);
12172   return _o;
12173 }
12174 
12175 inline void MatrixSetDiagOptions::UnPackTo(MatrixSetDiagOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
12176   (void)_o;
12177   (void)_resolver;
12178 }
12179 
12180 inline flatbuffers::Offset<MatrixSetDiagOptions> MatrixSetDiagOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const MatrixSetDiagOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
12181   return CreateMatrixSetDiagOptions(_fbb, _o, _rehasher);
12182 }
12183 
12184 inline flatbuffers::Offset<MatrixSetDiagOptions> CreateMatrixSetDiagOptions(flatbuffers::FlatBufferBuilder &_fbb, const MatrixSetDiagOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
12185   (void)_rehasher;
12186   (void)_o;
12187   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const MatrixSetDiagOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
12188   return tflite::CreateMatrixSetDiagOptions(
12189       _fbb);
12190 }
12191 
12192 inline IfOptionsT *IfOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
12193   auto _o = new IfOptionsT();
12194   UnPackTo(_o, _resolver);
12195   return _o;
12196 }
12197 
12198 inline void IfOptions::UnPackTo(IfOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
12199   (void)_o;
12200   (void)_resolver;
12201   { auto _e = then_subgraph_index(); _o->then_subgraph_index = _e; };
12202   { auto _e = else_subgraph_index(); _o->else_subgraph_index = _e; };
12203 }
12204 
12205 inline flatbuffers::Offset<IfOptions> IfOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const IfOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
12206   return CreateIfOptions(_fbb, _o, _rehasher);
12207 }
12208 
12209 inline flatbuffers::Offset<IfOptions> CreateIfOptions(flatbuffers::FlatBufferBuilder &_fbb, const IfOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
12210   (void)_rehasher;
12211   (void)_o;
12212   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const IfOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
12213   auto _then_subgraph_index = _o->then_subgraph_index;
12214   auto _else_subgraph_index = _o->else_subgraph_index;
12215   return tflite::CreateIfOptions(
12216       _fbb,
12217       _then_subgraph_index,
12218       _else_subgraph_index);
12219 }
12220 
12221 inline WhileOptionsT *WhileOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
12222   auto _o = new WhileOptionsT();
12223   UnPackTo(_o, _resolver);
12224   return _o;
12225 }
12226 
12227 inline void WhileOptions::UnPackTo(WhileOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
12228   (void)_o;
12229   (void)_resolver;
12230   { auto _e = cond_subgraph_index(); _o->cond_subgraph_index = _e; };
12231   { auto _e = body_subgraph_index(); _o->body_subgraph_index = _e; };
12232 }
12233 
12234 inline flatbuffers::Offset<WhileOptions> WhileOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const WhileOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
12235   return CreateWhileOptions(_fbb, _o, _rehasher);
12236 }
12237 
12238 inline flatbuffers::Offset<WhileOptions> CreateWhileOptions(flatbuffers::FlatBufferBuilder &_fbb, const WhileOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
12239   (void)_rehasher;
12240   (void)_o;
12241   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const WhileOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
12242   auto _cond_subgraph_index = _o->cond_subgraph_index;
12243   auto _body_subgraph_index = _o->body_subgraph_index;
12244   return tflite::CreateWhileOptions(
12245       _fbb,
12246       _cond_subgraph_index,
12247       _body_subgraph_index);
12248 }
12249 
12250 inline NonMaxSuppressionV4OptionsT *NonMaxSuppressionV4Options::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
12251   auto _o = new NonMaxSuppressionV4OptionsT();
12252   UnPackTo(_o, _resolver);
12253   return _o;
12254 }
12255 
12256 inline void NonMaxSuppressionV4Options::UnPackTo(NonMaxSuppressionV4OptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
12257   (void)_o;
12258   (void)_resolver;
12259 }
12260 
12261 inline flatbuffers::Offset<NonMaxSuppressionV4Options> NonMaxSuppressionV4Options::Pack(flatbuffers::FlatBufferBuilder &_fbb, const NonMaxSuppressionV4OptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
12262   return CreateNonMaxSuppressionV4Options(_fbb, _o, _rehasher);
12263 }
12264 
12265 inline flatbuffers::Offset<NonMaxSuppressionV4Options> CreateNonMaxSuppressionV4Options(flatbuffers::FlatBufferBuilder &_fbb, const NonMaxSuppressionV4OptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
12266   (void)_rehasher;
12267   (void)_o;
12268   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const NonMaxSuppressionV4OptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
12269   return tflite::CreateNonMaxSuppressionV4Options(
12270       _fbb);
12271 }
12272 
12273 inline NonMaxSuppressionV5OptionsT *NonMaxSuppressionV5Options::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
12274   auto _o = new NonMaxSuppressionV5OptionsT();
12275   UnPackTo(_o, _resolver);
12276   return _o;
12277 }
12278 
12279 inline void NonMaxSuppressionV5Options::UnPackTo(NonMaxSuppressionV5OptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
12280   (void)_o;
12281   (void)_resolver;
12282 }
12283 
12284 inline flatbuffers::Offset<NonMaxSuppressionV5Options> NonMaxSuppressionV5Options::Pack(flatbuffers::FlatBufferBuilder &_fbb, const NonMaxSuppressionV5OptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
12285   return CreateNonMaxSuppressionV5Options(_fbb, _o, _rehasher);
12286 }
12287 
12288 inline flatbuffers::Offset<NonMaxSuppressionV5Options> CreateNonMaxSuppressionV5Options(flatbuffers::FlatBufferBuilder &_fbb, const NonMaxSuppressionV5OptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
12289   (void)_rehasher;
12290   (void)_o;
12291   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const NonMaxSuppressionV5OptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
12292   return tflite::CreateNonMaxSuppressionV5Options(
12293       _fbb);
12294 }
12295 
12296 inline ScatterNdOptionsT *ScatterNdOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
12297   auto _o = new ScatterNdOptionsT();
12298   UnPackTo(_o, _resolver);
12299   return _o;
12300 }
12301 
12302 inline void ScatterNdOptions::UnPackTo(ScatterNdOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
12303   (void)_o;
12304   (void)_resolver;
12305 }
12306 
12307 inline flatbuffers::Offset<ScatterNdOptions> ScatterNdOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const ScatterNdOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
12308   return CreateScatterNdOptions(_fbb, _o, _rehasher);
12309 }
12310 
12311 inline flatbuffers::Offset<ScatterNdOptions> CreateScatterNdOptions(flatbuffers::FlatBufferBuilder &_fbb, const ScatterNdOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
12312   (void)_rehasher;
12313   (void)_o;
12314   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const ScatterNdOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
12315   return tflite::CreateScatterNdOptions(
12316       _fbb);
12317 }
12318 
12319 inline OperatorCodeT *OperatorCode::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
12320   auto _o = new OperatorCodeT();
12321   UnPackTo(_o, _resolver);
12322   return _o;
12323 }
12324 
12325 inline void OperatorCode::UnPackTo(OperatorCodeT *_o, const flatbuffers::resolver_function_t *_resolver) const {
12326   (void)_o;
12327   (void)_resolver;
12328   { auto _e = builtin_code(); _o->builtin_code = _e; };
12329   { auto _e = custom_code(); if (_e) _o->custom_code = _e->str(); };
12330   { auto _e = version(); _o->version = _e; };
12331 }
12332 
12333 inline flatbuffers::Offset<OperatorCode> OperatorCode::Pack(flatbuffers::FlatBufferBuilder &_fbb, const OperatorCodeT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
12334   return CreateOperatorCode(_fbb, _o, _rehasher);
12335 }
12336 
12337 inline flatbuffers::Offset<OperatorCode> CreateOperatorCode(flatbuffers::FlatBufferBuilder &_fbb, const OperatorCodeT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
12338   (void)_rehasher;
12339   (void)_o;
12340   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const OperatorCodeT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
12341   auto _builtin_code = _o->builtin_code;
12342   auto _custom_code = _o->custom_code.empty() ? 0 : _fbb.CreateString(_o->custom_code);
12343   auto _version = _o->version;
12344   return tflite::CreateOperatorCode(
12345       _fbb,
12346       _builtin_code,
12347       _custom_code,
12348       _version);
12349 }
12350 
12351 inline OperatorT *Operator::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
12352   auto _o = new OperatorT();
12353   UnPackTo(_o, _resolver);
12354   return _o;
12355 }
12356 
12357 inline void Operator::UnPackTo(OperatorT *_o, const flatbuffers::resolver_function_t *_resolver) const {
12358   (void)_o;
12359   (void)_resolver;
12360   { auto _e = opcode_index(); _o->opcode_index = _e; };
12361   { auto _e = inputs(); if (_e) { _o->inputs.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->inputs[_i] = _e->Get(_i); } } };
12362   { auto _e = outputs(); if (_e) { _o->outputs.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->outputs[_i] = _e->Get(_i); } } };
12363   { auto _e = builtin_options_type(); _o->builtin_options.type = _e; };
12364   { auto _e = builtin_options(); if (_e) _o->builtin_options.value = BuiltinOptionsUnion::UnPack(_e, builtin_options_type(), _resolver); };
12365   { auto _e = custom_options(); if (_e) { _o->custom_options.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->custom_options[_i] = _e->Get(_i); } } };
12366   { auto _e = custom_options_format(); _o->custom_options_format = _e; };
12367   { auto _e = mutating_variable_inputs(); if (_e) { _o->mutating_variable_inputs.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->mutating_variable_inputs[_i] = _e->Get(_i) != 0; } } };
12368   { auto _e = intermediates(); if (_e) { _o->intermediates.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->intermediates[_i] = _e->Get(_i); } } };
12369 }
12370 
12371 inline flatbuffers::Offset<Operator> Operator::Pack(flatbuffers::FlatBufferBuilder &_fbb, const OperatorT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
12372   return CreateOperator(_fbb, _o, _rehasher);
12373 }
12374 
12375 inline flatbuffers::Offset<Operator> CreateOperator(flatbuffers::FlatBufferBuilder &_fbb, const OperatorT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
12376   (void)_rehasher;
12377   (void)_o;
12378   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const OperatorT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
12379   auto _opcode_index = _o->opcode_index;
12380   auto _inputs = _o->inputs.size() ? _fbb.CreateVector(_o->inputs) : 0;
12381   auto _outputs = _o->outputs.size() ? _fbb.CreateVector(_o->outputs) : 0;
12382   auto _builtin_options_type = _o->builtin_options.type;
12383   auto _builtin_options = _o->builtin_options.Pack(_fbb);
12384   auto _custom_options = _o->custom_options.size() ? _fbb.CreateVector(_o->custom_options) : 0;
12385   auto _custom_options_format = _o->custom_options_format;
12386   auto _mutating_variable_inputs = _o->mutating_variable_inputs.size() ? _fbb.CreateVector(_o->mutating_variable_inputs) : 0;
12387   auto _intermediates = _o->intermediates.size() ? _fbb.CreateVector(_o->intermediates) : 0;
12388   return tflite::CreateOperator(
12389       _fbb,
12390       _opcode_index,
12391       _inputs,
12392       _outputs,
12393       _builtin_options_type,
12394       _builtin_options,
12395       _custom_options,
12396       _custom_options_format,
12397       _mutating_variable_inputs,
12398       _intermediates);
12399 }
12400 
12401 inline SubGraphT *SubGraph::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
12402   auto _o = new SubGraphT();
12403   UnPackTo(_o, _resolver);
12404   return _o;
12405 }
12406 
12407 inline void SubGraph::UnPackTo(SubGraphT *_o, const flatbuffers::resolver_function_t *_resolver) const {
12408   (void)_o;
12409   (void)_resolver;
12410   { auto _e = tensors(); if (_e) { _o->tensors.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->tensors[_i] = std::unique_ptr<TensorT>(_e->Get(_i)->UnPack(_resolver)); } } };
12411   { auto _e = inputs(); if (_e) { _o->inputs.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->inputs[_i] = _e->Get(_i); } } };
12412   { auto _e = outputs(); if (_e) { _o->outputs.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->outputs[_i] = _e->Get(_i); } } };
12413   { auto _e = operators(); if (_e) { _o->operators.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->operators[_i] = std::unique_ptr<OperatorT>(_e->Get(_i)->UnPack(_resolver)); } } };
12414   { auto _e = name(); if (_e) _o->name = _e->str(); };
12415 }
12416 
12417 inline flatbuffers::Offset<SubGraph> SubGraph::Pack(flatbuffers::FlatBufferBuilder &_fbb, const SubGraphT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
12418   return CreateSubGraph(_fbb, _o, _rehasher);
12419 }
12420 
12421 inline flatbuffers::Offset<SubGraph> CreateSubGraph(flatbuffers::FlatBufferBuilder &_fbb, const SubGraphT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
12422   (void)_rehasher;
12423   (void)_o;
12424   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const SubGraphT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
12425   auto _tensors = _o->tensors.size() ? _fbb.CreateVector<flatbuffers::Offset<Tensor>> (_o->tensors.size(), [](size_t i, _VectorArgs *__va) { return CreateTensor(*__va->__fbb, __va->__o->tensors[i].get(), __va->__rehasher); }, &_va ) : 0;
12426   auto _inputs = _o->inputs.size() ? _fbb.CreateVector(_o->inputs) : 0;
12427   auto _outputs = _o->outputs.size() ? _fbb.CreateVector(_o->outputs) : 0;
12428   auto _operators = _o->operators.size() ? _fbb.CreateVector<flatbuffers::Offset<Operator>> (_o->operators.size(), [](size_t i, _VectorArgs *__va) { return CreateOperator(*__va->__fbb, __va->__o->operators[i].get(), __va->__rehasher); }, &_va ) : 0;
12429   auto _name = _o->name.empty() ? 0 : _fbb.CreateString(_o->name);
12430   return tflite::CreateSubGraph(
12431       _fbb,
12432       _tensors,
12433       _inputs,
12434       _outputs,
12435       _operators,
12436       _name);
12437 }
12438 
12439 inline BufferT *Buffer::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
12440   auto _o = new BufferT();
12441   UnPackTo(_o, _resolver);
12442   return _o;
12443 }
12444 
12445 inline void Buffer::UnPackTo(BufferT *_o, const flatbuffers::resolver_function_t *_resolver) const {
12446   (void)_o;
12447   (void)_resolver;
12448   { auto _e = data(); if (_e) { _o->data.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->data[_i] = _e->Get(_i); } } };
12449 }
12450 
12451 inline flatbuffers::Offset<Buffer> Buffer::Pack(flatbuffers::FlatBufferBuilder &_fbb, const BufferT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
12452   return CreateBuffer(_fbb, _o, _rehasher);
12453 }
12454 
12455 inline flatbuffers::Offset<Buffer> CreateBuffer(flatbuffers::FlatBufferBuilder &_fbb, const BufferT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
12456   (void)_rehasher;
12457   (void)_o;
12458   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const BufferT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
12459   auto _data = _o->data.size() ? _fbb.CreateVector(_o->data) : 0;
12460   return tflite::CreateBuffer(
12461       _fbb,
12462       _data);
12463 }
12464 
12465 inline MetadataT *Metadata::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
12466   auto _o = new MetadataT();
12467   UnPackTo(_o, _resolver);
12468   return _o;
12469 }
12470 
12471 inline void Metadata::UnPackTo(MetadataT *_o, const flatbuffers::resolver_function_t *_resolver) const {
12472   (void)_o;
12473   (void)_resolver;
12474   { auto _e = name(); if (_e) _o->name = _e->str(); };
12475   { auto _e = buffer(); _o->buffer = _e; };
12476 }
12477 
12478 inline flatbuffers::Offset<Metadata> Metadata::Pack(flatbuffers::FlatBufferBuilder &_fbb, const MetadataT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
12479   return CreateMetadata(_fbb, _o, _rehasher);
12480 }
12481 
12482 inline flatbuffers::Offset<Metadata> CreateMetadata(flatbuffers::FlatBufferBuilder &_fbb, const MetadataT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
12483   (void)_rehasher;
12484   (void)_o;
12485   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const MetadataT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
12486   auto _name = _o->name.empty() ? 0 : _fbb.CreateString(_o->name);
12487   auto _buffer = _o->buffer;
12488   return tflite::CreateMetadata(
12489       _fbb,
12490       _name,
12491       _buffer);
12492 }
12493 
12494 inline ModelT *Model::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
12495   auto _o = new ModelT();
12496   UnPackTo(_o, _resolver);
12497   return _o;
12498 }
12499 
12500 inline void Model::UnPackTo(ModelT *_o, const flatbuffers::resolver_function_t *_resolver) const {
12501   (void)_o;
12502   (void)_resolver;
12503   { auto _e = version(); _o->version = _e; };
12504   { auto _e = operator_codes(); if (_e) { _o->operator_codes.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->operator_codes[_i] = std::unique_ptr<OperatorCodeT>(_e->Get(_i)->UnPack(_resolver)); } } };
12505   { auto _e = subgraphs(); if (_e) { _o->subgraphs.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->subgraphs[_i] = std::unique_ptr<SubGraphT>(_e->Get(_i)->UnPack(_resolver)); } } };
12506   { auto _e = description(); if (_e) _o->description = _e->str(); };
12507   { auto _e = buffers(); if (_e) { _o->buffers.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->buffers[_i] = std::unique_ptr<BufferT>(_e->Get(_i)->UnPack(_resolver)); } } };
12508   { auto _e = metadata_buffer(); if (_e) { _o->metadata_buffer.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->metadata_buffer[_i] = _e->Get(_i); } } };
12509   { auto _e = metadata(); if (_e) { _o->metadata.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->metadata[_i] = std::unique_ptr<MetadataT>(_e->Get(_i)->UnPack(_resolver)); } } };
12510 }
12511 
12512 inline flatbuffers::Offset<Model> Model::Pack(flatbuffers::FlatBufferBuilder &_fbb, const ModelT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
12513   return CreateModel(_fbb, _o, _rehasher);
12514 }
12515 
12516 inline flatbuffers::Offset<Model> CreateModel(flatbuffers::FlatBufferBuilder &_fbb, const ModelT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
12517   (void)_rehasher;
12518   (void)_o;
12519   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const ModelT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
12520   auto _version = _o->version;
12521   auto _operator_codes = _o->operator_codes.size() ? _fbb.CreateVector<flatbuffers::Offset<OperatorCode>> (_o->operator_codes.size(), [](size_t i, _VectorArgs *__va) { return CreateOperatorCode(*__va->__fbb, __va->__o->operator_codes[i].get(), __va->__rehasher); }, &_va ) : 0;
12522   auto _subgraphs = _o->subgraphs.size() ? _fbb.CreateVector<flatbuffers::Offset<SubGraph>> (_o->subgraphs.size(), [](size_t i, _VectorArgs *__va) { return CreateSubGraph(*__va->__fbb, __va->__o->subgraphs[i].get(), __va->__rehasher); }, &_va ) : 0;
12523   auto _description = _o->description.empty() ? 0 : _fbb.CreateString(_o->description);
12524   auto _buffers = _o->buffers.size() ? _fbb.CreateVector<flatbuffers::Offset<Buffer>> (_o->buffers.size(), [](size_t i, _VectorArgs *__va) { return CreateBuffer(*__va->__fbb, __va->__o->buffers[i].get(), __va->__rehasher); }, &_va ) : 0;
12525   auto _metadata_buffer = _o->metadata_buffer.size() ? _fbb.CreateVector(_o->metadata_buffer) : 0;
12526   auto _metadata = _o->metadata.size() ? _fbb.CreateVector<flatbuffers::Offset<Metadata>> (_o->metadata.size(), [](size_t i, _VectorArgs *__va) { return CreateMetadata(*__va->__fbb, __va->__o->metadata[i].get(), __va->__rehasher); }, &_va ) : 0;
12527   return tflite::CreateModel(
12528       _fbb,
12529       _version,
12530       _operator_codes,
12531       _subgraphs,
12532       _description,
12533       _buffers,
12534       _metadata_buffer,
12535       _metadata);
12536 }
12537 
12538 inline bool VerifyQuantizationDetails(flatbuffers::Verifier &verifier, const void *obj, QuantizationDetails type) {
12539   switch (type) {
12540     case QuantizationDetails_NONE: {
12541       return true;
12542     }
12543     case QuantizationDetails_CustomQuantization: {
12544       auto ptr = reinterpret_cast<const CustomQuantization *>(obj);
12545       return verifier.VerifyTable(ptr);
12546     }
12547     default: return false;
12548   }
12549 }
12550 
12551 inline bool VerifyQuantizationDetailsVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<uint8_t> *types) {
12552   if (!values || !types) return !values && !types;
12553   if (values->size() != types->size()) return false;
12554   for (flatbuffers::uoffset_t i = 0; i < values->size(); ++i) {
12555     if (!VerifyQuantizationDetails(
12556         verifier,  values->Get(i), types->GetEnum<QuantizationDetails>(i))) {
12557       return false;
12558     }
12559   }
12560   return true;
12561 }
12562 
12563 inline void *QuantizationDetailsUnion::UnPack(const void *obj, QuantizationDetails type, const flatbuffers::resolver_function_t *resolver) {
12564   switch (type) {
12565     case QuantizationDetails_CustomQuantization: {
12566       auto ptr = reinterpret_cast<const CustomQuantization *>(obj);
12567       return ptr->UnPack(resolver);
12568     }
12569     default: return nullptr;
12570   }
12571 }
12572 
12573 inline flatbuffers::Offset<void> QuantizationDetailsUnion::Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher) const {
12574   switch (type) {
12575     case QuantizationDetails_CustomQuantization: {
12576       auto ptr = reinterpret_cast<const CustomQuantizationT *>(value);
12577       return CreateCustomQuantization(_fbb, ptr, _rehasher).Union();
12578     }
12579     default: return 0;
12580   }
12581 }
12582 
12583 inline QuantizationDetailsUnion::QuantizationDetailsUnion(const QuantizationDetailsUnion &u) FLATBUFFERS_NOEXCEPT : type(u.type), value(nullptr) {
12584   switch (type) {
12585     case QuantizationDetails_CustomQuantization: {
12586       value = new CustomQuantizationT(*reinterpret_cast<CustomQuantizationT *>(u.value));
12587       break;
12588     }
12589     default:
12590       break;
12591   }
12592 }
12593 
12594 inline void QuantizationDetailsUnion::Reset() {
12595   switch (type) {
12596     case QuantizationDetails_CustomQuantization: {
12597       auto ptr = reinterpret_cast<CustomQuantizationT *>(value);
12598       delete ptr;
12599       break;
12600     }
12601     default: break;
12602   }
12603   value = nullptr;
12604   type = QuantizationDetails_NONE;
12605 }
12606 
12607 inline bool VerifyBuiltinOptions(flatbuffers::Verifier &verifier, const void *obj, BuiltinOptions type) {
12608   switch (type) {
12609     case BuiltinOptions_NONE: {
12610       return true;
12611     }
12612     case BuiltinOptions_Conv2DOptions: {
12613       auto ptr = reinterpret_cast<const Conv2DOptions *>(obj);
12614       return verifier.VerifyTable(ptr);
12615     }
12616     case BuiltinOptions_DepthwiseConv2DOptions: {
12617       auto ptr = reinterpret_cast<const DepthwiseConv2DOptions *>(obj);
12618       return verifier.VerifyTable(ptr);
12619     }
12620     case BuiltinOptions_ConcatEmbeddingsOptions: {
12621       auto ptr = reinterpret_cast<const ConcatEmbeddingsOptions *>(obj);
12622       return verifier.VerifyTable(ptr);
12623     }
12624     case BuiltinOptions_LSHProjectionOptions: {
12625       auto ptr = reinterpret_cast<const LSHProjectionOptions *>(obj);
12626       return verifier.VerifyTable(ptr);
12627     }
12628     case BuiltinOptions_Pool2DOptions: {
12629       auto ptr = reinterpret_cast<const Pool2DOptions *>(obj);
12630       return verifier.VerifyTable(ptr);
12631     }
12632     case BuiltinOptions_SVDFOptions: {
12633       auto ptr = reinterpret_cast<const SVDFOptions *>(obj);
12634       return verifier.VerifyTable(ptr);
12635     }
12636     case BuiltinOptions_RNNOptions: {
12637       auto ptr = reinterpret_cast<const RNNOptions *>(obj);
12638       return verifier.VerifyTable(ptr);
12639     }
12640     case BuiltinOptions_FullyConnectedOptions: {
12641       auto ptr = reinterpret_cast<const FullyConnectedOptions *>(obj);
12642       return verifier.VerifyTable(ptr);
12643     }
12644     case BuiltinOptions_SoftmaxOptions: {
12645       auto ptr = reinterpret_cast<const SoftmaxOptions *>(obj);
12646       return verifier.VerifyTable(ptr);
12647     }
12648     case BuiltinOptions_ConcatenationOptions: {
12649       auto ptr = reinterpret_cast<const ConcatenationOptions *>(obj);
12650       return verifier.VerifyTable(ptr);
12651     }
12652     case BuiltinOptions_AddOptions: {
12653       auto ptr = reinterpret_cast<const AddOptions *>(obj);
12654       return verifier.VerifyTable(ptr);
12655     }
12656     case BuiltinOptions_L2NormOptions: {
12657       auto ptr = reinterpret_cast<const L2NormOptions *>(obj);
12658       return verifier.VerifyTable(ptr);
12659     }
12660     case BuiltinOptions_LocalResponseNormalizationOptions: {
12661       auto ptr = reinterpret_cast<const LocalResponseNormalizationOptions *>(obj);
12662       return verifier.VerifyTable(ptr);
12663     }
12664     case BuiltinOptions_LSTMOptions: {
12665       auto ptr = reinterpret_cast<const LSTMOptions *>(obj);
12666       return verifier.VerifyTable(ptr);
12667     }
12668     case BuiltinOptions_ResizeBilinearOptions: {
12669       auto ptr = reinterpret_cast<const ResizeBilinearOptions *>(obj);
12670       return verifier.VerifyTable(ptr);
12671     }
12672     case BuiltinOptions_CallOptions: {
12673       auto ptr = reinterpret_cast<const CallOptions *>(obj);
12674       return verifier.VerifyTable(ptr);
12675     }
12676     case BuiltinOptions_ReshapeOptions: {
12677       auto ptr = reinterpret_cast<const ReshapeOptions *>(obj);
12678       return verifier.VerifyTable(ptr);
12679     }
12680     case BuiltinOptions_SkipGramOptions: {
12681       auto ptr = reinterpret_cast<const SkipGramOptions *>(obj);
12682       return verifier.VerifyTable(ptr);
12683     }
12684     case BuiltinOptions_SpaceToDepthOptions: {
12685       auto ptr = reinterpret_cast<const SpaceToDepthOptions *>(obj);
12686       return verifier.VerifyTable(ptr);
12687     }
12688     case BuiltinOptions_EmbeddingLookupSparseOptions: {
12689       auto ptr = reinterpret_cast<const EmbeddingLookupSparseOptions *>(obj);
12690       return verifier.VerifyTable(ptr);
12691     }
12692     case BuiltinOptions_MulOptions: {
12693       auto ptr = reinterpret_cast<const MulOptions *>(obj);
12694       return verifier.VerifyTable(ptr);
12695     }
12696     case BuiltinOptions_PadOptions: {
12697       auto ptr = reinterpret_cast<const PadOptions *>(obj);
12698       return verifier.VerifyTable(ptr);
12699     }
12700     case BuiltinOptions_GatherOptions: {
12701       auto ptr = reinterpret_cast<const GatherOptions *>(obj);
12702       return verifier.VerifyTable(ptr);
12703     }
12704     case BuiltinOptions_BatchToSpaceNDOptions: {
12705       auto ptr = reinterpret_cast<const BatchToSpaceNDOptions *>(obj);
12706       return verifier.VerifyTable(ptr);
12707     }
12708     case BuiltinOptions_SpaceToBatchNDOptions: {
12709       auto ptr = reinterpret_cast<const SpaceToBatchNDOptions *>(obj);
12710       return verifier.VerifyTable(ptr);
12711     }
12712     case BuiltinOptions_TransposeOptions: {
12713       auto ptr = reinterpret_cast<const TransposeOptions *>(obj);
12714       return verifier.VerifyTable(ptr);
12715     }
12716     case BuiltinOptions_ReducerOptions: {
12717       auto ptr = reinterpret_cast<const ReducerOptions *>(obj);
12718       return verifier.VerifyTable(ptr);
12719     }
12720     case BuiltinOptions_SubOptions: {
12721       auto ptr = reinterpret_cast<const SubOptions *>(obj);
12722       return verifier.VerifyTable(ptr);
12723     }
12724     case BuiltinOptions_DivOptions: {
12725       auto ptr = reinterpret_cast<const DivOptions *>(obj);
12726       return verifier.VerifyTable(ptr);
12727     }
12728     case BuiltinOptions_SqueezeOptions: {
12729       auto ptr = reinterpret_cast<const SqueezeOptions *>(obj);
12730       return verifier.VerifyTable(ptr);
12731     }
12732     case BuiltinOptions_SequenceRNNOptions: {
12733       auto ptr = reinterpret_cast<const SequenceRNNOptions *>(obj);
12734       return verifier.VerifyTable(ptr);
12735     }
12736     case BuiltinOptions_StridedSliceOptions: {
12737       auto ptr = reinterpret_cast<const StridedSliceOptions *>(obj);
12738       return verifier.VerifyTable(ptr);
12739     }
12740     case BuiltinOptions_ExpOptions: {
12741       auto ptr = reinterpret_cast<const ExpOptions *>(obj);
12742       return verifier.VerifyTable(ptr);
12743     }
12744     case BuiltinOptions_TopKV2Options: {
12745       auto ptr = reinterpret_cast<const TopKV2Options *>(obj);
12746       return verifier.VerifyTable(ptr);
12747     }
12748     case BuiltinOptions_SplitOptions: {
12749       auto ptr = reinterpret_cast<const SplitOptions *>(obj);
12750       return verifier.VerifyTable(ptr);
12751     }
12752     case BuiltinOptions_LogSoftmaxOptions: {
12753       auto ptr = reinterpret_cast<const LogSoftmaxOptions *>(obj);
12754       return verifier.VerifyTable(ptr);
12755     }
12756     case BuiltinOptions_CastOptions: {
12757       auto ptr = reinterpret_cast<const CastOptions *>(obj);
12758       return verifier.VerifyTable(ptr);
12759     }
12760     case BuiltinOptions_DequantizeOptions: {
12761       auto ptr = reinterpret_cast<const DequantizeOptions *>(obj);
12762       return verifier.VerifyTable(ptr);
12763     }
12764     case BuiltinOptions_MaximumMinimumOptions: {
12765       auto ptr = reinterpret_cast<const MaximumMinimumOptions *>(obj);
12766       return verifier.VerifyTable(ptr);
12767     }
12768     case BuiltinOptions_ArgMaxOptions: {
12769       auto ptr = reinterpret_cast<const ArgMaxOptions *>(obj);
12770       return verifier.VerifyTable(ptr);
12771     }
12772     case BuiltinOptions_LessOptions: {
12773       auto ptr = reinterpret_cast<const LessOptions *>(obj);
12774       return verifier.VerifyTable(ptr);
12775     }
12776     case BuiltinOptions_NegOptions: {
12777       auto ptr = reinterpret_cast<const NegOptions *>(obj);
12778       return verifier.VerifyTable(ptr);
12779     }
12780     case BuiltinOptions_PadV2Options: {
12781       auto ptr = reinterpret_cast<const PadV2Options *>(obj);
12782       return verifier.VerifyTable(ptr);
12783     }
12784     case BuiltinOptions_GreaterOptions: {
12785       auto ptr = reinterpret_cast<const GreaterOptions *>(obj);
12786       return verifier.VerifyTable(ptr);
12787     }
12788     case BuiltinOptions_GreaterEqualOptions: {
12789       auto ptr = reinterpret_cast<const GreaterEqualOptions *>(obj);
12790       return verifier.VerifyTable(ptr);
12791     }
12792     case BuiltinOptions_LessEqualOptions: {
12793       auto ptr = reinterpret_cast<const LessEqualOptions *>(obj);
12794       return verifier.VerifyTable(ptr);
12795     }
12796     case BuiltinOptions_SelectOptions: {
12797       auto ptr = reinterpret_cast<const SelectOptions *>(obj);
12798       return verifier.VerifyTable(ptr);
12799     }
12800     case BuiltinOptions_SliceOptions: {
12801       auto ptr = reinterpret_cast<const SliceOptions *>(obj);
12802       return verifier.VerifyTable(ptr);
12803     }
12804     case BuiltinOptions_TransposeConvOptions: {
12805       auto ptr = reinterpret_cast<const TransposeConvOptions *>(obj);
12806       return verifier.VerifyTable(ptr);
12807     }
12808     case BuiltinOptions_SparseToDenseOptions: {
12809       auto ptr = reinterpret_cast<const SparseToDenseOptions *>(obj);
12810       return verifier.VerifyTable(ptr);
12811     }
12812     case BuiltinOptions_TileOptions: {
12813       auto ptr = reinterpret_cast<const TileOptions *>(obj);
12814       return verifier.VerifyTable(ptr);
12815     }
12816     case BuiltinOptions_ExpandDimsOptions: {
12817       auto ptr = reinterpret_cast<const ExpandDimsOptions *>(obj);
12818       return verifier.VerifyTable(ptr);
12819     }
12820     case BuiltinOptions_EqualOptions: {
12821       auto ptr = reinterpret_cast<const EqualOptions *>(obj);
12822       return verifier.VerifyTable(ptr);
12823     }
12824     case BuiltinOptions_NotEqualOptions: {
12825       auto ptr = reinterpret_cast<const NotEqualOptions *>(obj);
12826       return verifier.VerifyTable(ptr);
12827     }
12828     case BuiltinOptions_ShapeOptions: {
12829       auto ptr = reinterpret_cast<const ShapeOptions *>(obj);
12830       return verifier.VerifyTable(ptr);
12831     }
12832     case BuiltinOptions_PowOptions: {
12833       auto ptr = reinterpret_cast<const PowOptions *>(obj);
12834       return verifier.VerifyTable(ptr);
12835     }
12836     case BuiltinOptions_ArgMinOptions: {
12837       auto ptr = reinterpret_cast<const ArgMinOptions *>(obj);
12838       return verifier.VerifyTable(ptr);
12839     }
12840     case BuiltinOptions_FakeQuantOptions: {
12841       auto ptr = reinterpret_cast<const FakeQuantOptions *>(obj);
12842       return verifier.VerifyTable(ptr);
12843     }
12844     case BuiltinOptions_PackOptions: {
12845       auto ptr = reinterpret_cast<const PackOptions *>(obj);
12846       return verifier.VerifyTable(ptr);
12847     }
12848     case BuiltinOptions_LogicalOrOptions: {
12849       auto ptr = reinterpret_cast<const LogicalOrOptions *>(obj);
12850       return verifier.VerifyTable(ptr);
12851     }
12852     case BuiltinOptions_OneHotOptions: {
12853       auto ptr = reinterpret_cast<const OneHotOptions *>(obj);
12854       return verifier.VerifyTable(ptr);
12855     }
12856     case BuiltinOptions_LogicalAndOptions: {
12857       auto ptr = reinterpret_cast<const LogicalAndOptions *>(obj);
12858       return verifier.VerifyTable(ptr);
12859     }
12860     case BuiltinOptions_LogicalNotOptions: {
12861       auto ptr = reinterpret_cast<const LogicalNotOptions *>(obj);
12862       return verifier.VerifyTable(ptr);
12863     }
12864     case BuiltinOptions_UnpackOptions: {
12865       auto ptr = reinterpret_cast<const UnpackOptions *>(obj);
12866       return verifier.VerifyTable(ptr);
12867     }
12868     case BuiltinOptions_FloorDivOptions: {
12869       auto ptr = reinterpret_cast<const FloorDivOptions *>(obj);
12870       return verifier.VerifyTable(ptr);
12871     }
12872     case BuiltinOptions_SquareOptions: {
12873       auto ptr = reinterpret_cast<const SquareOptions *>(obj);
12874       return verifier.VerifyTable(ptr);
12875     }
12876     case BuiltinOptions_ZerosLikeOptions: {
12877       auto ptr = reinterpret_cast<const ZerosLikeOptions *>(obj);
12878       return verifier.VerifyTable(ptr);
12879     }
12880     case BuiltinOptions_FillOptions: {
12881       auto ptr = reinterpret_cast<const FillOptions *>(obj);
12882       return verifier.VerifyTable(ptr);
12883     }
12884     case BuiltinOptions_BidirectionalSequenceLSTMOptions: {
12885       auto ptr = reinterpret_cast<const BidirectionalSequenceLSTMOptions *>(obj);
12886       return verifier.VerifyTable(ptr);
12887     }
12888     case BuiltinOptions_BidirectionalSequenceRNNOptions: {
12889       auto ptr = reinterpret_cast<const BidirectionalSequenceRNNOptions *>(obj);
12890       return verifier.VerifyTable(ptr);
12891     }
12892     case BuiltinOptions_UnidirectionalSequenceLSTMOptions: {
12893       auto ptr = reinterpret_cast<const UnidirectionalSequenceLSTMOptions *>(obj);
12894       return verifier.VerifyTable(ptr);
12895     }
12896     case BuiltinOptions_FloorModOptions: {
12897       auto ptr = reinterpret_cast<const FloorModOptions *>(obj);
12898       return verifier.VerifyTable(ptr);
12899     }
12900     case BuiltinOptions_RangeOptions: {
12901       auto ptr = reinterpret_cast<const RangeOptions *>(obj);
12902       return verifier.VerifyTable(ptr);
12903     }
12904     case BuiltinOptions_ResizeNearestNeighborOptions: {
12905       auto ptr = reinterpret_cast<const ResizeNearestNeighborOptions *>(obj);
12906       return verifier.VerifyTable(ptr);
12907     }
12908     case BuiltinOptions_LeakyReluOptions: {
12909       auto ptr = reinterpret_cast<const LeakyReluOptions *>(obj);
12910       return verifier.VerifyTable(ptr);
12911     }
12912     case BuiltinOptions_SquaredDifferenceOptions: {
12913       auto ptr = reinterpret_cast<const SquaredDifferenceOptions *>(obj);
12914       return verifier.VerifyTable(ptr);
12915     }
12916     case BuiltinOptions_MirrorPadOptions: {
12917       auto ptr = reinterpret_cast<const MirrorPadOptions *>(obj);
12918       return verifier.VerifyTable(ptr);
12919     }
12920     case BuiltinOptions_AbsOptions: {
12921       auto ptr = reinterpret_cast<const AbsOptions *>(obj);
12922       return verifier.VerifyTable(ptr);
12923     }
12924     case BuiltinOptions_SplitVOptions: {
12925       auto ptr = reinterpret_cast<const SplitVOptions *>(obj);
12926       return verifier.VerifyTable(ptr);
12927     }
12928     case BuiltinOptions_UniqueOptions: {
12929       auto ptr = reinterpret_cast<const UniqueOptions *>(obj);
12930       return verifier.VerifyTable(ptr);
12931     }
12932     case BuiltinOptions_ReverseV2Options: {
12933       auto ptr = reinterpret_cast<const ReverseV2Options *>(obj);
12934       return verifier.VerifyTable(ptr);
12935     }
12936     case BuiltinOptions_AddNOptions: {
12937       auto ptr = reinterpret_cast<const AddNOptions *>(obj);
12938       return verifier.VerifyTable(ptr);
12939     }
12940     case BuiltinOptions_GatherNdOptions: {
12941       auto ptr = reinterpret_cast<const GatherNdOptions *>(obj);
12942       return verifier.VerifyTable(ptr);
12943     }
12944     case BuiltinOptions_CosOptions: {
12945       auto ptr = reinterpret_cast<const CosOptions *>(obj);
12946       return verifier.VerifyTable(ptr);
12947     }
12948     case BuiltinOptions_WhereOptions: {
12949       auto ptr = reinterpret_cast<const WhereOptions *>(obj);
12950       return verifier.VerifyTable(ptr);
12951     }
12952     case BuiltinOptions_RankOptions: {
12953       auto ptr = reinterpret_cast<const RankOptions *>(obj);
12954       return verifier.VerifyTable(ptr);
12955     }
12956     case BuiltinOptions_ReverseSequenceOptions: {
12957       auto ptr = reinterpret_cast<const ReverseSequenceOptions *>(obj);
12958       return verifier.VerifyTable(ptr);
12959     }
12960     case BuiltinOptions_MatrixDiagOptions: {
12961       auto ptr = reinterpret_cast<const MatrixDiagOptions *>(obj);
12962       return verifier.VerifyTable(ptr);
12963     }
12964     case BuiltinOptions_QuantizeOptions: {
12965       auto ptr = reinterpret_cast<const QuantizeOptions *>(obj);
12966       return verifier.VerifyTable(ptr);
12967     }
12968     case BuiltinOptions_MatrixSetDiagOptions: {
12969       auto ptr = reinterpret_cast<const MatrixSetDiagOptions *>(obj);
12970       return verifier.VerifyTable(ptr);
12971     }
12972     case BuiltinOptions_HardSwishOptions: {
12973       auto ptr = reinterpret_cast<const HardSwishOptions *>(obj);
12974       return verifier.VerifyTable(ptr);
12975     }
12976     case BuiltinOptions_IfOptions: {
12977       auto ptr = reinterpret_cast<const IfOptions *>(obj);
12978       return verifier.VerifyTable(ptr);
12979     }
12980     case BuiltinOptions_WhileOptions: {
12981       auto ptr = reinterpret_cast<const WhileOptions *>(obj);
12982       return verifier.VerifyTable(ptr);
12983     }
12984     case BuiltinOptions_DepthToSpaceOptions: {
12985       auto ptr = reinterpret_cast<const DepthToSpaceOptions *>(obj);
12986       return verifier.VerifyTable(ptr);
12987     }
12988     case BuiltinOptions_NonMaxSuppressionV4Options: {
12989       auto ptr = reinterpret_cast<const NonMaxSuppressionV4Options *>(obj);
12990       return verifier.VerifyTable(ptr);
12991     }
12992     case BuiltinOptions_NonMaxSuppressionV5Options: {
12993       auto ptr = reinterpret_cast<const NonMaxSuppressionV5Options *>(obj);
12994       return verifier.VerifyTable(ptr);
12995     }
12996     case BuiltinOptions_ScatterNdOptions: {
12997       auto ptr = reinterpret_cast<const ScatterNdOptions *>(obj);
12998       return verifier.VerifyTable(ptr);
12999     }
13000     default: return false;
13001   }
13002 }
13003 
13004 inline bool VerifyBuiltinOptionsVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<uint8_t> *types) {
13005   if (!values || !types) return !values && !types;
13006   if (values->size() != types->size()) return false;
13007   for (flatbuffers::uoffset_t i = 0; i < values->size(); ++i) {
13008     if (!VerifyBuiltinOptions(
13009         verifier,  values->Get(i), types->GetEnum<BuiltinOptions>(i))) {
13010       return false;
13011     }
13012   }
13013   return true;
13014 }
13015 
13016 inline void *BuiltinOptionsUnion::UnPack(const void *obj, BuiltinOptions type, const flatbuffers::resolver_function_t *resolver) {
13017   switch (type) {
13018     case BuiltinOptions_Conv2DOptions: {
13019       auto ptr = reinterpret_cast<const Conv2DOptions *>(obj);
13020       return ptr->UnPack(resolver);
13021     }
13022     case BuiltinOptions_DepthwiseConv2DOptions: {
13023       auto ptr = reinterpret_cast<const DepthwiseConv2DOptions *>(obj);
13024       return ptr->UnPack(resolver);
13025     }
13026     case BuiltinOptions_ConcatEmbeddingsOptions: {
13027       auto ptr = reinterpret_cast<const ConcatEmbeddingsOptions *>(obj);
13028       return ptr->UnPack(resolver);
13029     }
13030     case BuiltinOptions_LSHProjectionOptions: {
13031       auto ptr = reinterpret_cast<const LSHProjectionOptions *>(obj);
13032       return ptr->UnPack(resolver);
13033     }
13034     case BuiltinOptions_Pool2DOptions: {
13035       auto ptr = reinterpret_cast<const Pool2DOptions *>(obj);
13036       return ptr->UnPack(resolver);
13037     }
13038     case BuiltinOptions_SVDFOptions: {
13039       auto ptr = reinterpret_cast<const SVDFOptions *>(obj);
13040       return ptr->UnPack(resolver);
13041     }
13042     case BuiltinOptions_RNNOptions: {
13043       auto ptr = reinterpret_cast<const RNNOptions *>(obj);
13044       return ptr->UnPack(resolver);
13045     }
13046     case BuiltinOptions_FullyConnectedOptions: {
13047       auto ptr = reinterpret_cast<const FullyConnectedOptions *>(obj);
13048       return ptr->UnPack(resolver);
13049     }
13050     case BuiltinOptions_SoftmaxOptions: {
13051       auto ptr = reinterpret_cast<const SoftmaxOptions *>(obj);
13052       return ptr->UnPack(resolver);
13053     }
13054     case BuiltinOptions_ConcatenationOptions: {
13055       auto ptr = reinterpret_cast<const ConcatenationOptions *>(obj);
13056       return ptr->UnPack(resolver);
13057     }
13058     case BuiltinOptions_AddOptions: {
13059       auto ptr = reinterpret_cast<const AddOptions *>(obj);
13060       return ptr->UnPack(resolver);
13061     }
13062     case BuiltinOptions_L2NormOptions: {
13063       auto ptr = reinterpret_cast<const L2NormOptions *>(obj);
13064       return ptr->UnPack(resolver);
13065     }
13066     case BuiltinOptions_LocalResponseNormalizationOptions: {
13067       auto ptr = reinterpret_cast<const LocalResponseNormalizationOptions *>(obj);
13068       return ptr->UnPack(resolver);
13069     }
13070     case BuiltinOptions_LSTMOptions: {
13071       auto ptr = reinterpret_cast<const LSTMOptions *>(obj);
13072       return ptr->UnPack(resolver);
13073     }
13074     case BuiltinOptions_ResizeBilinearOptions: {
13075       auto ptr = reinterpret_cast<const ResizeBilinearOptions *>(obj);
13076       return ptr->UnPack(resolver);
13077     }
13078     case BuiltinOptions_CallOptions: {
13079       auto ptr = reinterpret_cast<const CallOptions *>(obj);
13080       return ptr->UnPack(resolver);
13081     }
13082     case BuiltinOptions_ReshapeOptions: {
13083       auto ptr = reinterpret_cast<const ReshapeOptions *>(obj);
13084       return ptr->UnPack(resolver);
13085     }
13086     case BuiltinOptions_SkipGramOptions: {
13087       auto ptr = reinterpret_cast<const SkipGramOptions *>(obj);
13088       return ptr->UnPack(resolver);
13089     }
13090     case BuiltinOptions_SpaceToDepthOptions: {
13091       auto ptr = reinterpret_cast<const SpaceToDepthOptions *>(obj);
13092       return ptr->UnPack(resolver);
13093     }
13094     case BuiltinOptions_EmbeddingLookupSparseOptions: {
13095       auto ptr = reinterpret_cast<const EmbeddingLookupSparseOptions *>(obj);
13096       return ptr->UnPack(resolver);
13097     }
13098     case BuiltinOptions_MulOptions: {
13099       auto ptr = reinterpret_cast<const MulOptions *>(obj);
13100       return ptr->UnPack(resolver);
13101     }
13102     case BuiltinOptions_PadOptions: {
13103       auto ptr = reinterpret_cast<const PadOptions *>(obj);
13104       return ptr->UnPack(resolver);
13105     }
13106     case BuiltinOptions_GatherOptions: {
13107       auto ptr = reinterpret_cast<const GatherOptions *>(obj);
13108       return ptr->UnPack(resolver);
13109     }
13110     case BuiltinOptions_BatchToSpaceNDOptions: {
13111       auto ptr = reinterpret_cast<const BatchToSpaceNDOptions *>(obj);
13112       return ptr->UnPack(resolver);
13113     }
13114     case BuiltinOptions_SpaceToBatchNDOptions: {
13115       auto ptr = reinterpret_cast<const SpaceToBatchNDOptions *>(obj);
13116       return ptr->UnPack(resolver);
13117     }
13118     case BuiltinOptions_TransposeOptions: {
13119       auto ptr = reinterpret_cast<const TransposeOptions *>(obj);
13120       return ptr->UnPack(resolver);
13121     }
13122     case BuiltinOptions_ReducerOptions: {
13123       auto ptr = reinterpret_cast<const ReducerOptions *>(obj);
13124       return ptr->UnPack(resolver);
13125     }
13126     case BuiltinOptions_SubOptions: {
13127       auto ptr = reinterpret_cast<const SubOptions *>(obj);
13128       return ptr->UnPack(resolver);
13129     }
13130     case BuiltinOptions_DivOptions: {
13131       auto ptr = reinterpret_cast<const DivOptions *>(obj);
13132       return ptr->UnPack(resolver);
13133     }
13134     case BuiltinOptions_SqueezeOptions: {
13135       auto ptr = reinterpret_cast<const SqueezeOptions *>(obj);
13136       return ptr->UnPack(resolver);
13137     }
13138     case BuiltinOptions_SequenceRNNOptions: {
13139       auto ptr = reinterpret_cast<const SequenceRNNOptions *>(obj);
13140       return ptr->UnPack(resolver);
13141     }
13142     case BuiltinOptions_StridedSliceOptions: {
13143       auto ptr = reinterpret_cast<const StridedSliceOptions *>(obj);
13144       return ptr->UnPack(resolver);
13145     }
13146     case BuiltinOptions_ExpOptions: {
13147       auto ptr = reinterpret_cast<const ExpOptions *>(obj);
13148       return ptr->UnPack(resolver);
13149     }
13150     case BuiltinOptions_TopKV2Options: {
13151       auto ptr = reinterpret_cast<const TopKV2Options *>(obj);
13152       return ptr->UnPack(resolver);
13153     }
13154     case BuiltinOptions_SplitOptions: {
13155       auto ptr = reinterpret_cast<const SplitOptions *>(obj);
13156       return ptr->UnPack(resolver);
13157     }
13158     case BuiltinOptions_LogSoftmaxOptions: {
13159       auto ptr = reinterpret_cast<const LogSoftmaxOptions *>(obj);
13160       return ptr->UnPack(resolver);
13161     }
13162     case BuiltinOptions_CastOptions: {
13163       auto ptr = reinterpret_cast<const CastOptions *>(obj);
13164       return ptr->UnPack(resolver);
13165     }
13166     case BuiltinOptions_DequantizeOptions: {
13167       auto ptr = reinterpret_cast<const DequantizeOptions *>(obj);
13168       return ptr->UnPack(resolver);
13169     }
13170     case BuiltinOptions_MaximumMinimumOptions: {
13171       auto ptr = reinterpret_cast<const MaximumMinimumOptions *>(obj);
13172       return ptr->UnPack(resolver);
13173     }
13174     case BuiltinOptions_ArgMaxOptions: {
13175       auto ptr = reinterpret_cast<const ArgMaxOptions *>(obj);
13176       return ptr->UnPack(resolver);
13177     }
13178     case BuiltinOptions_LessOptions: {
13179       auto ptr = reinterpret_cast<const LessOptions *>(obj);
13180       return ptr->UnPack(resolver);
13181     }
13182     case BuiltinOptions_NegOptions: {
13183       auto ptr = reinterpret_cast<const NegOptions *>(obj);
13184       return ptr->UnPack(resolver);
13185     }
13186     case BuiltinOptions_PadV2Options: {
13187       auto ptr = reinterpret_cast<const PadV2Options *>(obj);
13188       return ptr->UnPack(resolver);
13189     }
13190     case BuiltinOptions_GreaterOptions: {
13191       auto ptr = reinterpret_cast<const GreaterOptions *>(obj);
13192       return ptr->UnPack(resolver);
13193     }
13194     case BuiltinOptions_GreaterEqualOptions: {
13195       auto ptr = reinterpret_cast<const GreaterEqualOptions *>(obj);
13196       return ptr->UnPack(resolver);
13197     }
13198     case BuiltinOptions_LessEqualOptions: {
13199       auto ptr = reinterpret_cast<const LessEqualOptions *>(obj);
13200       return ptr->UnPack(resolver);
13201     }
13202     case BuiltinOptions_SelectOptions: {
13203       auto ptr = reinterpret_cast<const SelectOptions *>(obj);
13204       return ptr->UnPack(resolver);
13205     }
13206     case BuiltinOptions_SliceOptions: {
13207       auto ptr = reinterpret_cast<const SliceOptions *>(obj);
13208       return ptr->UnPack(resolver);
13209     }
13210     case BuiltinOptions_TransposeConvOptions: {
13211       auto ptr = reinterpret_cast<const TransposeConvOptions *>(obj);
13212       return ptr->UnPack(resolver);
13213     }
13214     case BuiltinOptions_SparseToDenseOptions: {
13215       auto ptr = reinterpret_cast<const SparseToDenseOptions *>(obj);
13216       return ptr->UnPack(resolver);
13217     }
13218     case BuiltinOptions_TileOptions: {
13219       auto ptr = reinterpret_cast<const TileOptions *>(obj);
13220       return ptr->UnPack(resolver);
13221     }
13222     case BuiltinOptions_ExpandDimsOptions: {
13223       auto ptr = reinterpret_cast<const ExpandDimsOptions *>(obj);
13224       return ptr->UnPack(resolver);
13225     }
13226     case BuiltinOptions_EqualOptions: {
13227       auto ptr = reinterpret_cast<const EqualOptions *>(obj);
13228       return ptr->UnPack(resolver);
13229     }
13230     case BuiltinOptions_NotEqualOptions: {
13231       auto ptr = reinterpret_cast<const NotEqualOptions *>(obj);
13232       return ptr->UnPack(resolver);
13233     }
13234     case BuiltinOptions_ShapeOptions: {
13235       auto ptr = reinterpret_cast<const ShapeOptions *>(obj);
13236       return ptr->UnPack(resolver);
13237     }
13238     case BuiltinOptions_PowOptions: {
13239       auto ptr = reinterpret_cast<const PowOptions *>(obj);
13240       return ptr->UnPack(resolver);
13241     }
13242     case BuiltinOptions_ArgMinOptions: {
13243       auto ptr = reinterpret_cast<const ArgMinOptions *>(obj);
13244       return ptr->UnPack(resolver);
13245     }
13246     case BuiltinOptions_FakeQuantOptions: {
13247       auto ptr = reinterpret_cast<const FakeQuantOptions *>(obj);
13248       return ptr->UnPack(resolver);
13249     }
13250     case BuiltinOptions_PackOptions: {
13251       auto ptr = reinterpret_cast<const PackOptions *>(obj);
13252       return ptr->UnPack(resolver);
13253     }
13254     case BuiltinOptions_LogicalOrOptions: {
13255       auto ptr = reinterpret_cast<const LogicalOrOptions *>(obj);
13256       return ptr->UnPack(resolver);
13257     }
13258     case BuiltinOptions_OneHotOptions: {
13259       auto ptr = reinterpret_cast<const OneHotOptions *>(obj);
13260       return ptr->UnPack(resolver);
13261     }
13262     case BuiltinOptions_LogicalAndOptions: {
13263       auto ptr = reinterpret_cast<const LogicalAndOptions *>(obj);
13264       return ptr->UnPack(resolver);
13265     }
13266     case BuiltinOptions_LogicalNotOptions: {
13267       auto ptr = reinterpret_cast<const LogicalNotOptions *>(obj);
13268       return ptr->UnPack(resolver);
13269     }
13270     case BuiltinOptions_UnpackOptions: {
13271       auto ptr = reinterpret_cast<const UnpackOptions *>(obj);
13272       return ptr->UnPack(resolver);
13273     }
13274     case BuiltinOptions_FloorDivOptions: {
13275       auto ptr = reinterpret_cast<const FloorDivOptions *>(obj);
13276       return ptr->UnPack(resolver);
13277     }
13278     case BuiltinOptions_SquareOptions: {
13279       auto ptr = reinterpret_cast<const SquareOptions *>(obj);
13280       return ptr->UnPack(resolver);
13281     }
13282     case BuiltinOptions_ZerosLikeOptions: {
13283       auto ptr = reinterpret_cast<const ZerosLikeOptions *>(obj);
13284       return ptr->UnPack(resolver);
13285     }
13286     case BuiltinOptions_FillOptions: {
13287       auto ptr = reinterpret_cast<const FillOptions *>(obj);
13288       return ptr->UnPack(resolver);
13289     }
13290     case BuiltinOptions_BidirectionalSequenceLSTMOptions: {
13291       auto ptr = reinterpret_cast<const BidirectionalSequenceLSTMOptions *>(obj);
13292       return ptr->UnPack(resolver);
13293     }
13294     case BuiltinOptions_BidirectionalSequenceRNNOptions: {
13295       auto ptr = reinterpret_cast<const BidirectionalSequenceRNNOptions *>(obj);
13296       return ptr->UnPack(resolver);
13297     }
13298     case BuiltinOptions_UnidirectionalSequenceLSTMOptions: {
13299       auto ptr = reinterpret_cast<const UnidirectionalSequenceLSTMOptions *>(obj);
13300       return ptr->UnPack(resolver);
13301     }
13302     case BuiltinOptions_FloorModOptions: {
13303       auto ptr = reinterpret_cast<const FloorModOptions *>(obj);
13304       return ptr->UnPack(resolver);
13305     }
13306     case BuiltinOptions_RangeOptions: {
13307       auto ptr = reinterpret_cast<const RangeOptions *>(obj);
13308       return ptr->UnPack(resolver);
13309     }
13310     case BuiltinOptions_ResizeNearestNeighborOptions: {
13311       auto ptr = reinterpret_cast<const ResizeNearestNeighborOptions *>(obj);
13312       return ptr->UnPack(resolver);
13313     }
13314     case BuiltinOptions_LeakyReluOptions: {
13315       auto ptr = reinterpret_cast<const LeakyReluOptions *>(obj);
13316       return ptr->UnPack(resolver);
13317     }
13318     case BuiltinOptions_SquaredDifferenceOptions: {
13319       auto ptr = reinterpret_cast<const SquaredDifferenceOptions *>(obj);
13320       return ptr->UnPack(resolver);
13321     }
13322     case BuiltinOptions_MirrorPadOptions: {
13323       auto ptr = reinterpret_cast<const MirrorPadOptions *>(obj);
13324       return ptr->UnPack(resolver);
13325     }
13326     case BuiltinOptions_AbsOptions: {
13327       auto ptr = reinterpret_cast<const AbsOptions *>(obj);
13328       return ptr->UnPack(resolver);
13329     }
13330     case BuiltinOptions_SplitVOptions: {
13331       auto ptr = reinterpret_cast<const SplitVOptions *>(obj);
13332       return ptr->UnPack(resolver);
13333     }
13334     case BuiltinOptions_UniqueOptions: {
13335       auto ptr = reinterpret_cast<const UniqueOptions *>(obj);
13336       return ptr->UnPack(resolver);
13337     }
13338     case BuiltinOptions_ReverseV2Options: {
13339       auto ptr = reinterpret_cast<const ReverseV2Options *>(obj);
13340       return ptr->UnPack(resolver);
13341     }
13342     case BuiltinOptions_AddNOptions: {
13343       auto ptr = reinterpret_cast<const AddNOptions *>(obj);
13344       return ptr->UnPack(resolver);
13345     }
13346     case BuiltinOptions_GatherNdOptions: {
13347       auto ptr = reinterpret_cast<const GatherNdOptions *>(obj);
13348       return ptr->UnPack(resolver);
13349     }
13350     case BuiltinOptions_CosOptions: {
13351       auto ptr = reinterpret_cast<const CosOptions *>(obj);
13352       return ptr->UnPack(resolver);
13353     }
13354     case BuiltinOptions_WhereOptions: {
13355       auto ptr = reinterpret_cast<const WhereOptions *>(obj);
13356       return ptr->UnPack(resolver);
13357     }
13358     case BuiltinOptions_RankOptions: {
13359       auto ptr = reinterpret_cast<const RankOptions *>(obj);
13360       return ptr->UnPack(resolver);
13361     }
13362     case BuiltinOptions_ReverseSequenceOptions: {
13363       auto ptr = reinterpret_cast<const ReverseSequenceOptions *>(obj);
13364       return ptr->UnPack(resolver);
13365     }
13366     case BuiltinOptions_MatrixDiagOptions: {
13367       auto ptr = reinterpret_cast<const MatrixDiagOptions *>(obj);
13368       return ptr->UnPack(resolver);
13369     }
13370     case BuiltinOptions_QuantizeOptions: {
13371       auto ptr = reinterpret_cast<const QuantizeOptions *>(obj);
13372       return ptr->UnPack(resolver);
13373     }
13374     case BuiltinOptions_MatrixSetDiagOptions: {
13375       auto ptr = reinterpret_cast<const MatrixSetDiagOptions *>(obj);
13376       return ptr->UnPack(resolver);
13377     }
13378     case BuiltinOptions_HardSwishOptions: {
13379       auto ptr = reinterpret_cast<const HardSwishOptions *>(obj);
13380       return ptr->UnPack(resolver);
13381     }
13382     case BuiltinOptions_IfOptions: {
13383       auto ptr = reinterpret_cast<const IfOptions *>(obj);
13384       return ptr->UnPack(resolver);
13385     }
13386     case BuiltinOptions_WhileOptions: {
13387       auto ptr = reinterpret_cast<const WhileOptions *>(obj);
13388       return ptr->UnPack(resolver);
13389     }
13390     case BuiltinOptions_DepthToSpaceOptions: {
13391       auto ptr = reinterpret_cast<const DepthToSpaceOptions *>(obj);
13392       return ptr->UnPack(resolver);
13393     }
13394     case BuiltinOptions_NonMaxSuppressionV4Options: {
13395       auto ptr = reinterpret_cast<const NonMaxSuppressionV4Options *>(obj);
13396       return ptr->UnPack(resolver);
13397     }
13398     case BuiltinOptions_NonMaxSuppressionV5Options: {
13399       auto ptr = reinterpret_cast<const NonMaxSuppressionV5Options *>(obj);
13400       return ptr->UnPack(resolver);
13401     }
13402     case BuiltinOptions_ScatterNdOptions: {
13403       auto ptr = reinterpret_cast<const ScatterNdOptions *>(obj);
13404       return ptr->UnPack(resolver);
13405     }
13406     default: return nullptr;
13407   }
13408 }
13409 
13410 inline flatbuffers::Offset<void> BuiltinOptionsUnion::Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher) const {
13411   switch (type) {
13412     case BuiltinOptions_Conv2DOptions: {
13413       auto ptr = reinterpret_cast<const Conv2DOptionsT *>(value);
13414       return CreateConv2DOptions(_fbb, ptr, _rehasher).Union();
13415     }
13416     case BuiltinOptions_DepthwiseConv2DOptions: {
13417       auto ptr = reinterpret_cast<const DepthwiseConv2DOptionsT *>(value);
13418       return CreateDepthwiseConv2DOptions(_fbb, ptr, _rehasher).Union();
13419     }
13420     case BuiltinOptions_ConcatEmbeddingsOptions: {
13421       auto ptr = reinterpret_cast<const ConcatEmbeddingsOptionsT *>(value);
13422       return CreateConcatEmbeddingsOptions(_fbb, ptr, _rehasher).Union();
13423     }
13424     case BuiltinOptions_LSHProjectionOptions: {
13425       auto ptr = reinterpret_cast<const LSHProjectionOptionsT *>(value);
13426       return CreateLSHProjectionOptions(_fbb, ptr, _rehasher).Union();
13427     }
13428     case BuiltinOptions_Pool2DOptions: {
13429       auto ptr = reinterpret_cast<const Pool2DOptionsT *>(value);
13430       return CreatePool2DOptions(_fbb, ptr, _rehasher).Union();
13431     }
13432     case BuiltinOptions_SVDFOptions: {
13433       auto ptr = reinterpret_cast<const SVDFOptionsT *>(value);
13434       return CreateSVDFOptions(_fbb, ptr, _rehasher).Union();
13435     }
13436     case BuiltinOptions_RNNOptions: {
13437       auto ptr = reinterpret_cast<const RNNOptionsT *>(value);
13438       return CreateRNNOptions(_fbb, ptr, _rehasher).Union();
13439     }
13440     case BuiltinOptions_FullyConnectedOptions: {
13441       auto ptr = reinterpret_cast<const FullyConnectedOptionsT *>(value);
13442       return CreateFullyConnectedOptions(_fbb, ptr, _rehasher).Union();
13443     }
13444     case BuiltinOptions_SoftmaxOptions: {
13445       auto ptr = reinterpret_cast<const SoftmaxOptionsT *>(value);
13446       return CreateSoftmaxOptions(_fbb, ptr, _rehasher).Union();
13447     }
13448     case BuiltinOptions_ConcatenationOptions: {
13449       auto ptr = reinterpret_cast<const ConcatenationOptionsT *>(value);
13450       return CreateConcatenationOptions(_fbb, ptr, _rehasher).Union();
13451     }
13452     case BuiltinOptions_AddOptions: {
13453       auto ptr = reinterpret_cast<const AddOptionsT *>(value);
13454       return CreateAddOptions(_fbb, ptr, _rehasher).Union();
13455     }
13456     case BuiltinOptions_L2NormOptions: {
13457       auto ptr = reinterpret_cast<const L2NormOptionsT *>(value);
13458       return CreateL2NormOptions(_fbb, ptr, _rehasher).Union();
13459     }
13460     case BuiltinOptions_LocalResponseNormalizationOptions: {
13461       auto ptr = reinterpret_cast<const LocalResponseNormalizationOptionsT *>(value);
13462       return CreateLocalResponseNormalizationOptions(_fbb, ptr, _rehasher).Union();
13463     }
13464     case BuiltinOptions_LSTMOptions: {
13465       auto ptr = reinterpret_cast<const LSTMOptionsT *>(value);
13466       return CreateLSTMOptions(_fbb, ptr, _rehasher).Union();
13467     }
13468     case BuiltinOptions_ResizeBilinearOptions: {
13469       auto ptr = reinterpret_cast<const ResizeBilinearOptionsT *>(value);
13470       return CreateResizeBilinearOptions(_fbb, ptr, _rehasher).Union();
13471     }
13472     case BuiltinOptions_CallOptions: {
13473       auto ptr = reinterpret_cast<const CallOptionsT *>(value);
13474       return CreateCallOptions(_fbb, ptr, _rehasher).Union();
13475     }
13476     case BuiltinOptions_ReshapeOptions: {
13477       auto ptr = reinterpret_cast<const ReshapeOptionsT *>(value);
13478       return CreateReshapeOptions(_fbb, ptr, _rehasher).Union();
13479     }
13480     case BuiltinOptions_SkipGramOptions: {
13481       auto ptr = reinterpret_cast<const SkipGramOptionsT *>(value);
13482       return CreateSkipGramOptions(_fbb, ptr, _rehasher).Union();
13483     }
13484     case BuiltinOptions_SpaceToDepthOptions: {
13485       auto ptr = reinterpret_cast<const SpaceToDepthOptionsT *>(value);
13486       return CreateSpaceToDepthOptions(_fbb, ptr, _rehasher).Union();
13487     }
13488     case BuiltinOptions_EmbeddingLookupSparseOptions: {
13489       auto ptr = reinterpret_cast<const EmbeddingLookupSparseOptionsT *>(value);
13490       return CreateEmbeddingLookupSparseOptions(_fbb, ptr, _rehasher).Union();
13491     }
13492     case BuiltinOptions_MulOptions: {
13493       auto ptr = reinterpret_cast<const MulOptionsT *>(value);
13494       return CreateMulOptions(_fbb, ptr, _rehasher).Union();
13495     }
13496     case BuiltinOptions_PadOptions: {
13497       auto ptr = reinterpret_cast<const PadOptionsT *>(value);
13498       return CreatePadOptions(_fbb, ptr, _rehasher).Union();
13499     }
13500     case BuiltinOptions_GatherOptions: {
13501       auto ptr = reinterpret_cast<const GatherOptionsT *>(value);
13502       return CreateGatherOptions(_fbb, ptr, _rehasher).Union();
13503     }
13504     case BuiltinOptions_BatchToSpaceNDOptions: {
13505       auto ptr = reinterpret_cast<const BatchToSpaceNDOptionsT *>(value);
13506       return CreateBatchToSpaceNDOptions(_fbb, ptr, _rehasher).Union();
13507     }
13508     case BuiltinOptions_SpaceToBatchNDOptions: {
13509       auto ptr = reinterpret_cast<const SpaceToBatchNDOptionsT *>(value);
13510       return CreateSpaceToBatchNDOptions(_fbb, ptr, _rehasher).Union();
13511     }
13512     case BuiltinOptions_TransposeOptions: {
13513       auto ptr = reinterpret_cast<const TransposeOptionsT *>(value);
13514       return CreateTransposeOptions(_fbb, ptr, _rehasher).Union();
13515     }
13516     case BuiltinOptions_ReducerOptions: {
13517       auto ptr = reinterpret_cast<const ReducerOptionsT *>(value);
13518       return CreateReducerOptions(_fbb, ptr, _rehasher).Union();
13519     }
13520     case BuiltinOptions_SubOptions: {
13521       auto ptr = reinterpret_cast<const SubOptionsT *>(value);
13522       return CreateSubOptions(_fbb, ptr, _rehasher).Union();
13523     }
13524     case BuiltinOptions_DivOptions: {
13525       auto ptr = reinterpret_cast<const DivOptionsT *>(value);
13526       return CreateDivOptions(_fbb, ptr, _rehasher).Union();
13527     }
13528     case BuiltinOptions_SqueezeOptions: {
13529       auto ptr = reinterpret_cast<const SqueezeOptionsT *>(value);
13530       return CreateSqueezeOptions(_fbb, ptr, _rehasher).Union();
13531     }
13532     case BuiltinOptions_SequenceRNNOptions: {
13533       auto ptr = reinterpret_cast<const SequenceRNNOptionsT *>(value);
13534       return CreateSequenceRNNOptions(_fbb, ptr, _rehasher).Union();
13535     }
13536     case BuiltinOptions_StridedSliceOptions: {
13537       auto ptr = reinterpret_cast<const StridedSliceOptionsT *>(value);
13538       return CreateStridedSliceOptions(_fbb, ptr, _rehasher).Union();
13539     }
13540     case BuiltinOptions_ExpOptions: {
13541       auto ptr = reinterpret_cast<const ExpOptionsT *>(value);
13542       return CreateExpOptions(_fbb, ptr, _rehasher).Union();
13543     }
13544     case BuiltinOptions_TopKV2Options: {
13545       auto ptr = reinterpret_cast<const TopKV2OptionsT *>(value);
13546       return CreateTopKV2Options(_fbb, ptr, _rehasher).Union();
13547     }
13548     case BuiltinOptions_SplitOptions: {
13549       auto ptr = reinterpret_cast<const SplitOptionsT *>(value);
13550       return CreateSplitOptions(_fbb, ptr, _rehasher).Union();
13551     }
13552     case BuiltinOptions_LogSoftmaxOptions: {
13553       auto ptr = reinterpret_cast<const LogSoftmaxOptionsT *>(value);
13554       return CreateLogSoftmaxOptions(_fbb, ptr, _rehasher).Union();
13555     }
13556     case BuiltinOptions_CastOptions: {
13557       auto ptr = reinterpret_cast<const CastOptionsT *>(value);
13558       return CreateCastOptions(_fbb, ptr, _rehasher).Union();
13559     }
13560     case BuiltinOptions_DequantizeOptions: {
13561       auto ptr = reinterpret_cast<const DequantizeOptionsT *>(value);
13562       return CreateDequantizeOptions(_fbb, ptr, _rehasher).Union();
13563     }
13564     case BuiltinOptions_MaximumMinimumOptions: {
13565       auto ptr = reinterpret_cast<const MaximumMinimumOptionsT *>(value);
13566       return CreateMaximumMinimumOptions(_fbb, ptr, _rehasher).Union();
13567     }
13568     case BuiltinOptions_ArgMaxOptions: {
13569       auto ptr = reinterpret_cast<const ArgMaxOptionsT *>(value);
13570       return CreateArgMaxOptions(_fbb, ptr, _rehasher).Union();
13571     }
13572     case BuiltinOptions_LessOptions: {
13573       auto ptr = reinterpret_cast<const LessOptionsT *>(value);
13574       return CreateLessOptions(_fbb, ptr, _rehasher).Union();
13575     }
13576     case BuiltinOptions_NegOptions: {
13577       auto ptr = reinterpret_cast<const NegOptionsT *>(value);
13578       return CreateNegOptions(_fbb, ptr, _rehasher).Union();
13579     }
13580     case BuiltinOptions_PadV2Options: {
13581       auto ptr = reinterpret_cast<const PadV2OptionsT *>(value);
13582       return CreatePadV2Options(_fbb, ptr, _rehasher).Union();
13583     }
13584     case BuiltinOptions_GreaterOptions: {
13585       auto ptr = reinterpret_cast<const GreaterOptionsT *>(value);
13586       return CreateGreaterOptions(_fbb, ptr, _rehasher).Union();
13587     }
13588     case BuiltinOptions_GreaterEqualOptions: {
13589       auto ptr = reinterpret_cast<const GreaterEqualOptionsT *>(value);
13590       return CreateGreaterEqualOptions(_fbb, ptr, _rehasher).Union();
13591     }
13592     case BuiltinOptions_LessEqualOptions: {
13593       auto ptr = reinterpret_cast<const LessEqualOptionsT *>(value);
13594       return CreateLessEqualOptions(_fbb, ptr, _rehasher).Union();
13595     }
13596     case BuiltinOptions_SelectOptions: {
13597       auto ptr = reinterpret_cast<const SelectOptionsT *>(value);
13598       return CreateSelectOptions(_fbb, ptr, _rehasher).Union();
13599     }
13600     case BuiltinOptions_SliceOptions: {
13601       auto ptr = reinterpret_cast<const SliceOptionsT *>(value);
13602       return CreateSliceOptions(_fbb, ptr, _rehasher).Union();
13603     }
13604     case BuiltinOptions_TransposeConvOptions: {
13605       auto ptr = reinterpret_cast<const TransposeConvOptionsT *>(value);
13606       return CreateTransposeConvOptions(_fbb, ptr, _rehasher).Union();
13607     }
13608     case BuiltinOptions_SparseToDenseOptions: {
13609       auto ptr = reinterpret_cast<const SparseToDenseOptionsT *>(value);
13610       return CreateSparseToDenseOptions(_fbb, ptr, _rehasher).Union();
13611     }
13612     case BuiltinOptions_TileOptions: {
13613       auto ptr = reinterpret_cast<const TileOptionsT *>(value);
13614       return CreateTileOptions(_fbb, ptr, _rehasher).Union();
13615     }
13616     case BuiltinOptions_ExpandDimsOptions: {
13617       auto ptr = reinterpret_cast<const ExpandDimsOptionsT *>(value);
13618       return CreateExpandDimsOptions(_fbb, ptr, _rehasher).Union();
13619     }
13620     case BuiltinOptions_EqualOptions: {
13621       auto ptr = reinterpret_cast<const EqualOptionsT *>(value);
13622       return CreateEqualOptions(_fbb, ptr, _rehasher).Union();
13623     }
13624     case BuiltinOptions_NotEqualOptions: {
13625       auto ptr = reinterpret_cast<const NotEqualOptionsT *>(value);
13626       return CreateNotEqualOptions(_fbb, ptr, _rehasher).Union();
13627     }
13628     case BuiltinOptions_ShapeOptions: {
13629       auto ptr = reinterpret_cast<const ShapeOptionsT *>(value);
13630       return CreateShapeOptions(_fbb, ptr, _rehasher).Union();
13631     }
13632     case BuiltinOptions_PowOptions: {
13633       auto ptr = reinterpret_cast<const PowOptionsT *>(value);
13634       return CreatePowOptions(_fbb, ptr, _rehasher).Union();
13635     }
13636     case BuiltinOptions_ArgMinOptions: {
13637       auto ptr = reinterpret_cast<const ArgMinOptionsT *>(value);
13638       return CreateArgMinOptions(_fbb, ptr, _rehasher).Union();
13639     }
13640     case BuiltinOptions_FakeQuantOptions: {
13641       auto ptr = reinterpret_cast<const FakeQuantOptionsT *>(value);
13642       return CreateFakeQuantOptions(_fbb, ptr, _rehasher).Union();
13643     }
13644     case BuiltinOptions_PackOptions: {
13645       auto ptr = reinterpret_cast<const PackOptionsT *>(value);
13646       return CreatePackOptions(_fbb, ptr, _rehasher).Union();
13647     }
13648     case BuiltinOptions_LogicalOrOptions: {
13649       auto ptr = reinterpret_cast<const LogicalOrOptionsT *>(value);
13650       return CreateLogicalOrOptions(_fbb, ptr, _rehasher).Union();
13651     }
13652     case BuiltinOptions_OneHotOptions: {
13653       auto ptr = reinterpret_cast<const OneHotOptionsT *>(value);
13654       return CreateOneHotOptions(_fbb, ptr, _rehasher).Union();
13655     }
13656     case BuiltinOptions_LogicalAndOptions: {
13657       auto ptr = reinterpret_cast<const LogicalAndOptionsT *>(value);
13658       return CreateLogicalAndOptions(_fbb, ptr, _rehasher).Union();
13659     }
13660     case BuiltinOptions_LogicalNotOptions: {
13661       auto ptr = reinterpret_cast<const LogicalNotOptionsT *>(value);
13662       return CreateLogicalNotOptions(_fbb, ptr, _rehasher).Union();
13663     }
13664     case BuiltinOptions_UnpackOptions: {
13665       auto ptr = reinterpret_cast<const UnpackOptionsT *>(value);
13666       return CreateUnpackOptions(_fbb, ptr, _rehasher).Union();
13667     }
13668     case BuiltinOptions_FloorDivOptions: {
13669       auto ptr = reinterpret_cast<const FloorDivOptionsT *>(value);
13670       return CreateFloorDivOptions(_fbb, ptr, _rehasher).Union();
13671     }
13672     case BuiltinOptions_SquareOptions: {
13673       auto ptr = reinterpret_cast<const SquareOptionsT *>(value);
13674       return CreateSquareOptions(_fbb, ptr, _rehasher).Union();
13675     }
13676     case BuiltinOptions_ZerosLikeOptions: {
13677       auto ptr = reinterpret_cast<const ZerosLikeOptionsT *>(value);
13678       return CreateZerosLikeOptions(_fbb, ptr, _rehasher).Union();
13679     }
13680     case BuiltinOptions_FillOptions: {
13681       auto ptr = reinterpret_cast<const FillOptionsT *>(value);
13682       return CreateFillOptions(_fbb, ptr, _rehasher).Union();
13683     }
13684     case BuiltinOptions_BidirectionalSequenceLSTMOptions: {
13685       auto ptr = reinterpret_cast<const BidirectionalSequenceLSTMOptionsT *>(value);
13686       return CreateBidirectionalSequenceLSTMOptions(_fbb, ptr, _rehasher).Union();
13687     }
13688     case BuiltinOptions_BidirectionalSequenceRNNOptions: {
13689       auto ptr = reinterpret_cast<const BidirectionalSequenceRNNOptionsT *>(value);
13690       return CreateBidirectionalSequenceRNNOptions(_fbb, ptr, _rehasher).Union();
13691     }
13692     case BuiltinOptions_UnidirectionalSequenceLSTMOptions: {
13693       auto ptr = reinterpret_cast<const UnidirectionalSequenceLSTMOptionsT *>(value);
13694       return CreateUnidirectionalSequenceLSTMOptions(_fbb, ptr, _rehasher).Union();
13695     }
13696     case BuiltinOptions_FloorModOptions: {
13697       auto ptr = reinterpret_cast<const FloorModOptionsT *>(value);
13698       return CreateFloorModOptions(_fbb, ptr, _rehasher).Union();
13699     }
13700     case BuiltinOptions_RangeOptions: {
13701       auto ptr = reinterpret_cast<const RangeOptionsT *>(value);
13702       return CreateRangeOptions(_fbb, ptr, _rehasher).Union();
13703     }
13704     case BuiltinOptions_ResizeNearestNeighborOptions: {
13705       auto ptr = reinterpret_cast<const ResizeNearestNeighborOptionsT *>(value);
13706       return CreateResizeNearestNeighborOptions(_fbb, ptr, _rehasher).Union();
13707     }
13708     case BuiltinOptions_LeakyReluOptions: {
13709       auto ptr = reinterpret_cast<const LeakyReluOptionsT *>(value);
13710       return CreateLeakyReluOptions(_fbb, ptr, _rehasher).Union();
13711     }
13712     case BuiltinOptions_SquaredDifferenceOptions: {
13713       auto ptr = reinterpret_cast<const SquaredDifferenceOptionsT *>(value);
13714       return CreateSquaredDifferenceOptions(_fbb, ptr, _rehasher).Union();
13715     }
13716     case BuiltinOptions_MirrorPadOptions: {
13717       auto ptr = reinterpret_cast<const MirrorPadOptionsT *>(value);
13718       return CreateMirrorPadOptions(_fbb, ptr, _rehasher).Union();
13719     }
13720     case BuiltinOptions_AbsOptions: {
13721       auto ptr = reinterpret_cast<const AbsOptionsT *>(value);
13722       return CreateAbsOptions(_fbb, ptr, _rehasher).Union();
13723     }
13724     case BuiltinOptions_SplitVOptions: {
13725       auto ptr = reinterpret_cast<const SplitVOptionsT *>(value);
13726       return CreateSplitVOptions(_fbb, ptr, _rehasher).Union();
13727     }
13728     case BuiltinOptions_UniqueOptions: {
13729       auto ptr = reinterpret_cast<const UniqueOptionsT *>(value);
13730       return CreateUniqueOptions(_fbb, ptr, _rehasher).Union();
13731     }
13732     case BuiltinOptions_ReverseV2Options: {
13733       auto ptr = reinterpret_cast<const ReverseV2OptionsT *>(value);
13734       return CreateReverseV2Options(_fbb, ptr, _rehasher).Union();
13735     }
13736     case BuiltinOptions_AddNOptions: {
13737       auto ptr = reinterpret_cast<const AddNOptionsT *>(value);
13738       return CreateAddNOptions(_fbb, ptr, _rehasher).Union();
13739     }
13740     case BuiltinOptions_GatherNdOptions: {
13741       auto ptr = reinterpret_cast<const GatherNdOptionsT *>(value);
13742       return CreateGatherNdOptions(_fbb, ptr, _rehasher).Union();
13743     }
13744     case BuiltinOptions_CosOptions: {
13745       auto ptr = reinterpret_cast<const CosOptionsT *>(value);
13746       return CreateCosOptions(_fbb, ptr, _rehasher).Union();
13747     }
13748     case BuiltinOptions_WhereOptions: {
13749       auto ptr = reinterpret_cast<const WhereOptionsT *>(value);
13750       return CreateWhereOptions(_fbb, ptr, _rehasher).Union();
13751     }
13752     case BuiltinOptions_RankOptions: {
13753       auto ptr = reinterpret_cast<const RankOptionsT *>(value);
13754       return CreateRankOptions(_fbb, ptr, _rehasher).Union();
13755     }
13756     case BuiltinOptions_ReverseSequenceOptions: {
13757       auto ptr = reinterpret_cast<const ReverseSequenceOptionsT *>(value);
13758       return CreateReverseSequenceOptions(_fbb, ptr, _rehasher).Union();
13759     }
13760     case BuiltinOptions_MatrixDiagOptions: {
13761       auto ptr = reinterpret_cast<const MatrixDiagOptionsT *>(value);
13762       return CreateMatrixDiagOptions(_fbb, ptr, _rehasher).Union();
13763     }
13764     case BuiltinOptions_QuantizeOptions: {
13765       auto ptr = reinterpret_cast<const QuantizeOptionsT *>(value);
13766       return CreateQuantizeOptions(_fbb, ptr, _rehasher).Union();
13767     }
13768     case BuiltinOptions_MatrixSetDiagOptions: {
13769       auto ptr = reinterpret_cast<const MatrixSetDiagOptionsT *>(value);
13770       return CreateMatrixSetDiagOptions(_fbb, ptr, _rehasher).Union();
13771     }
13772     case BuiltinOptions_HardSwishOptions: {
13773       auto ptr = reinterpret_cast<const HardSwishOptionsT *>(value);
13774       return CreateHardSwishOptions(_fbb, ptr, _rehasher).Union();
13775     }
13776     case BuiltinOptions_IfOptions: {
13777       auto ptr = reinterpret_cast<const IfOptionsT *>(value);
13778       return CreateIfOptions(_fbb, ptr, _rehasher).Union();
13779     }
13780     case BuiltinOptions_WhileOptions: {
13781       auto ptr = reinterpret_cast<const WhileOptionsT *>(value);
13782       return CreateWhileOptions(_fbb, ptr, _rehasher).Union();
13783     }
13784     case BuiltinOptions_DepthToSpaceOptions: {
13785       auto ptr = reinterpret_cast<const DepthToSpaceOptionsT *>(value);
13786       return CreateDepthToSpaceOptions(_fbb, ptr, _rehasher).Union();
13787     }
13788     case BuiltinOptions_NonMaxSuppressionV4Options: {
13789       auto ptr = reinterpret_cast<const NonMaxSuppressionV4OptionsT *>(value);
13790       return CreateNonMaxSuppressionV4Options(_fbb, ptr, _rehasher).Union();
13791     }
13792     case BuiltinOptions_NonMaxSuppressionV5Options: {
13793       auto ptr = reinterpret_cast<const NonMaxSuppressionV5OptionsT *>(value);
13794       return CreateNonMaxSuppressionV5Options(_fbb, ptr, _rehasher).Union();
13795     }
13796     case BuiltinOptions_ScatterNdOptions: {
13797       auto ptr = reinterpret_cast<const ScatterNdOptionsT *>(value);
13798       return CreateScatterNdOptions(_fbb, ptr, _rehasher).Union();
13799     }
13800     default: return 0;
13801   }
13802 }
13803 
13804 inline BuiltinOptionsUnion::BuiltinOptionsUnion(const BuiltinOptionsUnion &u) FLATBUFFERS_NOEXCEPT : type(u.type), value(nullptr) {
13805   switch (type) {
13806     case BuiltinOptions_Conv2DOptions: {
13807       value = new Conv2DOptionsT(*reinterpret_cast<Conv2DOptionsT *>(u.value));
13808       break;
13809     }
13810     case BuiltinOptions_DepthwiseConv2DOptions: {
13811       value = new DepthwiseConv2DOptionsT(*reinterpret_cast<DepthwiseConv2DOptionsT *>(u.value));
13812       break;
13813     }
13814     case BuiltinOptions_ConcatEmbeddingsOptions: {
13815       value = new ConcatEmbeddingsOptionsT(*reinterpret_cast<ConcatEmbeddingsOptionsT *>(u.value));
13816       break;
13817     }
13818     case BuiltinOptions_LSHProjectionOptions: {
13819       value = new LSHProjectionOptionsT(*reinterpret_cast<LSHProjectionOptionsT *>(u.value));
13820       break;
13821     }
13822     case BuiltinOptions_Pool2DOptions: {
13823       value = new Pool2DOptionsT(*reinterpret_cast<Pool2DOptionsT *>(u.value));
13824       break;
13825     }
13826     case BuiltinOptions_SVDFOptions: {
13827       value = new SVDFOptionsT(*reinterpret_cast<SVDFOptionsT *>(u.value));
13828       break;
13829     }
13830     case BuiltinOptions_RNNOptions: {
13831       value = new RNNOptionsT(*reinterpret_cast<RNNOptionsT *>(u.value));
13832       break;
13833     }
13834     case BuiltinOptions_FullyConnectedOptions: {
13835       value = new FullyConnectedOptionsT(*reinterpret_cast<FullyConnectedOptionsT *>(u.value));
13836       break;
13837     }
13838     case BuiltinOptions_SoftmaxOptions: {
13839       value = new SoftmaxOptionsT(*reinterpret_cast<SoftmaxOptionsT *>(u.value));
13840       break;
13841     }
13842     case BuiltinOptions_ConcatenationOptions: {
13843       value = new ConcatenationOptionsT(*reinterpret_cast<ConcatenationOptionsT *>(u.value));
13844       break;
13845     }
13846     case BuiltinOptions_AddOptions: {
13847       value = new AddOptionsT(*reinterpret_cast<AddOptionsT *>(u.value));
13848       break;
13849     }
13850     case BuiltinOptions_L2NormOptions: {
13851       value = new L2NormOptionsT(*reinterpret_cast<L2NormOptionsT *>(u.value));
13852       break;
13853     }
13854     case BuiltinOptions_LocalResponseNormalizationOptions: {
13855       value = new LocalResponseNormalizationOptionsT(*reinterpret_cast<LocalResponseNormalizationOptionsT *>(u.value));
13856       break;
13857     }
13858     case BuiltinOptions_LSTMOptions: {
13859       value = new LSTMOptionsT(*reinterpret_cast<LSTMOptionsT *>(u.value));
13860       break;
13861     }
13862     case BuiltinOptions_ResizeBilinearOptions: {
13863       value = new ResizeBilinearOptionsT(*reinterpret_cast<ResizeBilinearOptionsT *>(u.value));
13864       break;
13865     }
13866     case BuiltinOptions_CallOptions: {
13867       value = new CallOptionsT(*reinterpret_cast<CallOptionsT *>(u.value));
13868       break;
13869     }
13870     case BuiltinOptions_ReshapeOptions: {
13871       value = new ReshapeOptionsT(*reinterpret_cast<ReshapeOptionsT *>(u.value));
13872       break;
13873     }
13874     case BuiltinOptions_SkipGramOptions: {
13875       value = new SkipGramOptionsT(*reinterpret_cast<SkipGramOptionsT *>(u.value));
13876       break;
13877     }
13878     case BuiltinOptions_SpaceToDepthOptions: {
13879       value = new SpaceToDepthOptionsT(*reinterpret_cast<SpaceToDepthOptionsT *>(u.value));
13880       break;
13881     }
13882     case BuiltinOptions_EmbeddingLookupSparseOptions: {
13883       value = new EmbeddingLookupSparseOptionsT(*reinterpret_cast<EmbeddingLookupSparseOptionsT *>(u.value));
13884       break;
13885     }
13886     case BuiltinOptions_MulOptions: {
13887       value = new MulOptionsT(*reinterpret_cast<MulOptionsT *>(u.value));
13888       break;
13889     }
13890     case BuiltinOptions_PadOptions: {
13891       value = new PadOptionsT(*reinterpret_cast<PadOptionsT *>(u.value));
13892       break;
13893     }
13894     case BuiltinOptions_GatherOptions: {
13895       value = new GatherOptionsT(*reinterpret_cast<GatherOptionsT *>(u.value));
13896       break;
13897     }
13898     case BuiltinOptions_BatchToSpaceNDOptions: {
13899       value = new BatchToSpaceNDOptionsT(*reinterpret_cast<BatchToSpaceNDOptionsT *>(u.value));
13900       break;
13901     }
13902     case BuiltinOptions_SpaceToBatchNDOptions: {
13903       value = new SpaceToBatchNDOptionsT(*reinterpret_cast<SpaceToBatchNDOptionsT *>(u.value));
13904       break;
13905     }
13906     case BuiltinOptions_TransposeOptions: {
13907       value = new TransposeOptionsT(*reinterpret_cast<TransposeOptionsT *>(u.value));
13908       break;
13909     }
13910     case BuiltinOptions_ReducerOptions: {
13911       value = new ReducerOptionsT(*reinterpret_cast<ReducerOptionsT *>(u.value));
13912       break;
13913     }
13914     case BuiltinOptions_SubOptions: {
13915       value = new SubOptionsT(*reinterpret_cast<SubOptionsT *>(u.value));
13916       break;
13917     }
13918     case BuiltinOptions_DivOptions: {
13919       value = new DivOptionsT(*reinterpret_cast<DivOptionsT *>(u.value));
13920       break;
13921     }
13922     case BuiltinOptions_SqueezeOptions: {
13923       value = new SqueezeOptionsT(*reinterpret_cast<SqueezeOptionsT *>(u.value));
13924       break;
13925     }
13926     case BuiltinOptions_SequenceRNNOptions: {
13927       value = new SequenceRNNOptionsT(*reinterpret_cast<SequenceRNNOptionsT *>(u.value));
13928       break;
13929     }
13930     case BuiltinOptions_StridedSliceOptions: {
13931       value = new StridedSliceOptionsT(*reinterpret_cast<StridedSliceOptionsT *>(u.value));
13932       break;
13933     }
13934     case BuiltinOptions_ExpOptions: {
13935       value = new ExpOptionsT(*reinterpret_cast<ExpOptionsT *>(u.value));
13936       break;
13937     }
13938     case BuiltinOptions_TopKV2Options: {
13939       value = new TopKV2OptionsT(*reinterpret_cast<TopKV2OptionsT *>(u.value));
13940       break;
13941     }
13942     case BuiltinOptions_SplitOptions: {
13943       value = new SplitOptionsT(*reinterpret_cast<SplitOptionsT *>(u.value));
13944       break;
13945     }
13946     case BuiltinOptions_LogSoftmaxOptions: {
13947       value = new LogSoftmaxOptionsT(*reinterpret_cast<LogSoftmaxOptionsT *>(u.value));
13948       break;
13949     }
13950     case BuiltinOptions_CastOptions: {
13951       value = new CastOptionsT(*reinterpret_cast<CastOptionsT *>(u.value));
13952       break;
13953     }
13954     case BuiltinOptions_DequantizeOptions: {
13955       value = new DequantizeOptionsT(*reinterpret_cast<DequantizeOptionsT *>(u.value));
13956       break;
13957     }
13958     case BuiltinOptions_MaximumMinimumOptions: {
13959       value = new MaximumMinimumOptionsT(*reinterpret_cast<MaximumMinimumOptionsT *>(u.value));
13960       break;
13961     }
13962     case BuiltinOptions_ArgMaxOptions: {
13963       value = new ArgMaxOptionsT(*reinterpret_cast<ArgMaxOptionsT *>(u.value));
13964       break;
13965     }
13966     case BuiltinOptions_LessOptions: {
13967       value = new LessOptionsT(*reinterpret_cast<LessOptionsT *>(u.value));
13968       break;
13969     }
13970     case BuiltinOptions_NegOptions: {
13971       value = new NegOptionsT(*reinterpret_cast<NegOptionsT *>(u.value));
13972       break;
13973     }
13974     case BuiltinOptions_PadV2Options: {
13975       value = new PadV2OptionsT(*reinterpret_cast<PadV2OptionsT *>(u.value));
13976       break;
13977     }
13978     case BuiltinOptions_GreaterOptions: {
13979       value = new GreaterOptionsT(*reinterpret_cast<GreaterOptionsT *>(u.value));
13980       break;
13981     }
13982     case BuiltinOptions_GreaterEqualOptions: {
13983       value = new GreaterEqualOptionsT(*reinterpret_cast<GreaterEqualOptionsT *>(u.value));
13984       break;
13985     }
13986     case BuiltinOptions_LessEqualOptions: {
13987       value = new LessEqualOptionsT(*reinterpret_cast<LessEqualOptionsT *>(u.value));
13988       break;
13989     }
13990     case BuiltinOptions_SelectOptions: {
13991       value = new SelectOptionsT(*reinterpret_cast<SelectOptionsT *>(u.value));
13992       break;
13993     }
13994     case BuiltinOptions_SliceOptions: {
13995       value = new SliceOptionsT(*reinterpret_cast<SliceOptionsT *>(u.value));
13996       break;
13997     }
13998     case BuiltinOptions_TransposeConvOptions: {
13999       value = new TransposeConvOptionsT(*reinterpret_cast<TransposeConvOptionsT *>(u.value));
14000       break;
14001     }
14002     case BuiltinOptions_SparseToDenseOptions: {
14003       value = new SparseToDenseOptionsT(*reinterpret_cast<SparseToDenseOptionsT *>(u.value));
14004       break;
14005     }
14006     case BuiltinOptions_TileOptions: {
14007       value = new TileOptionsT(*reinterpret_cast<TileOptionsT *>(u.value));
14008       break;
14009     }
14010     case BuiltinOptions_ExpandDimsOptions: {
14011       value = new ExpandDimsOptionsT(*reinterpret_cast<ExpandDimsOptionsT *>(u.value));
14012       break;
14013     }
14014     case BuiltinOptions_EqualOptions: {
14015       value = new EqualOptionsT(*reinterpret_cast<EqualOptionsT *>(u.value));
14016       break;
14017     }
14018     case BuiltinOptions_NotEqualOptions: {
14019       value = new NotEqualOptionsT(*reinterpret_cast<NotEqualOptionsT *>(u.value));
14020       break;
14021     }
14022     case BuiltinOptions_ShapeOptions: {
14023       value = new ShapeOptionsT(*reinterpret_cast<ShapeOptionsT *>(u.value));
14024       break;
14025     }
14026     case BuiltinOptions_PowOptions: {
14027       value = new PowOptionsT(*reinterpret_cast<PowOptionsT *>(u.value));
14028       break;
14029     }
14030     case BuiltinOptions_ArgMinOptions: {
14031       value = new ArgMinOptionsT(*reinterpret_cast<ArgMinOptionsT *>(u.value));
14032       break;
14033     }
14034     case BuiltinOptions_FakeQuantOptions: {
14035       value = new FakeQuantOptionsT(*reinterpret_cast<FakeQuantOptionsT *>(u.value));
14036       break;
14037     }
14038     case BuiltinOptions_PackOptions: {
14039       value = new PackOptionsT(*reinterpret_cast<PackOptionsT *>(u.value));
14040       break;
14041     }
14042     case BuiltinOptions_LogicalOrOptions: {
14043       value = new LogicalOrOptionsT(*reinterpret_cast<LogicalOrOptionsT *>(u.value));
14044       break;
14045     }
14046     case BuiltinOptions_OneHotOptions: {
14047       value = new OneHotOptionsT(*reinterpret_cast<OneHotOptionsT *>(u.value));
14048       break;
14049     }
14050     case BuiltinOptions_LogicalAndOptions: {
14051       value = new LogicalAndOptionsT(*reinterpret_cast<LogicalAndOptionsT *>(u.value));
14052       break;
14053     }
14054     case BuiltinOptions_LogicalNotOptions: {
14055       value = new LogicalNotOptionsT(*reinterpret_cast<LogicalNotOptionsT *>(u.value));
14056       break;
14057     }
14058     case BuiltinOptions_UnpackOptions: {
14059       value = new UnpackOptionsT(*reinterpret_cast<UnpackOptionsT *>(u.value));
14060       break;
14061     }
14062     case BuiltinOptions_FloorDivOptions: {
14063       value = new FloorDivOptionsT(*reinterpret_cast<FloorDivOptionsT *>(u.value));
14064       break;
14065     }
14066     case BuiltinOptions_SquareOptions: {
14067       value = new SquareOptionsT(*reinterpret_cast<SquareOptionsT *>(u.value));
14068       break;
14069     }
14070     case BuiltinOptions_ZerosLikeOptions: {
14071       value = new ZerosLikeOptionsT(*reinterpret_cast<ZerosLikeOptionsT *>(u.value));
14072       break;
14073     }
14074     case BuiltinOptions_FillOptions: {
14075       value = new FillOptionsT(*reinterpret_cast<FillOptionsT *>(u.value));
14076       break;
14077     }
14078     case BuiltinOptions_BidirectionalSequenceLSTMOptions: {
14079       value = new BidirectionalSequenceLSTMOptionsT(*reinterpret_cast<BidirectionalSequenceLSTMOptionsT *>(u.value));
14080       break;
14081     }
14082     case BuiltinOptions_BidirectionalSequenceRNNOptions: {
14083       value = new BidirectionalSequenceRNNOptionsT(*reinterpret_cast<BidirectionalSequenceRNNOptionsT *>(u.value));
14084       break;
14085     }
14086     case BuiltinOptions_UnidirectionalSequenceLSTMOptions: {
14087       value = new UnidirectionalSequenceLSTMOptionsT(*reinterpret_cast<UnidirectionalSequenceLSTMOptionsT *>(u.value));
14088       break;
14089     }
14090     case BuiltinOptions_FloorModOptions: {
14091       value = new FloorModOptionsT(*reinterpret_cast<FloorModOptionsT *>(u.value));
14092       break;
14093     }
14094     case BuiltinOptions_RangeOptions: {
14095       value = new RangeOptionsT(*reinterpret_cast<RangeOptionsT *>(u.value));
14096       break;
14097     }
14098     case BuiltinOptions_ResizeNearestNeighborOptions: {
14099       value = new ResizeNearestNeighborOptionsT(*reinterpret_cast<ResizeNearestNeighborOptionsT *>(u.value));
14100       break;
14101     }
14102     case BuiltinOptions_LeakyReluOptions: {
14103       value = new LeakyReluOptionsT(*reinterpret_cast<LeakyReluOptionsT *>(u.value));
14104       break;
14105     }
14106     case BuiltinOptions_SquaredDifferenceOptions: {
14107       value = new SquaredDifferenceOptionsT(*reinterpret_cast<SquaredDifferenceOptionsT *>(u.value));
14108       break;
14109     }
14110     case BuiltinOptions_MirrorPadOptions: {
14111       value = new MirrorPadOptionsT(*reinterpret_cast<MirrorPadOptionsT *>(u.value));
14112       break;
14113     }
14114     case BuiltinOptions_AbsOptions: {
14115       value = new AbsOptionsT(*reinterpret_cast<AbsOptionsT *>(u.value));
14116       break;
14117     }
14118     case BuiltinOptions_SplitVOptions: {
14119       value = new SplitVOptionsT(*reinterpret_cast<SplitVOptionsT *>(u.value));
14120       break;
14121     }
14122     case BuiltinOptions_UniqueOptions: {
14123       value = new UniqueOptionsT(*reinterpret_cast<UniqueOptionsT *>(u.value));
14124       break;
14125     }
14126     case BuiltinOptions_ReverseV2Options: {
14127       value = new ReverseV2OptionsT(*reinterpret_cast<ReverseV2OptionsT *>(u.value));
14128       break;
14129     }
14130     case BuiltinOptions_AddNOptions: {
14131       value = new AddNOptionsT(*reinterpret_cast<AddNOptionsT *>(u.value));
14132       break;
14133     }
14134     case BuiltinOptions_GatherNdOptions: {
14135       value = new GatherNdOptionsT(*reinterpret_cast<GatherNdOptionsT *>(u.value));
14136       break;
14137     }
14138     case BuiltinOptions_CosOptions: {
14139       value = new CosOptionsT(*reinterpret_cast<CosOptionsT *>(u.value));
14140       break;
14141     }
14142     case BuiltinOptions_WhereOptions: {
14143       value = new WhereOptionsT(*reinterpret_cast<WhereOptionsT *>(u.value));
14144       break;
14145     }
14146     case BuiltinOptions_RankOptions: {
14147       value = new RankOptionsT(*reinterpret_cast<RankOptionsT *>(u.value));
14148       break;
14149     }
14150     case BuiltinOptions_ReverseSequenceOptions: {
14151       value = new ReverseSequenceOptionsT(*reinterpret_cast<ReverseSequenceOptionsT *>(u.value));
14152       break;
14153     }
14154     case BuiltinOptions_MatrixDiagOptions: {
14155       value = new MatrixDiagOptionsT(*reinterpret_cast<MatrixDiagOptionsT *>(u.value));
14156       break;
14157     }
14158     case BuiltinOptions_QuantizeOptions: {
14159       value = new QuantizeOptionsT(*reinterpret_cast<QuantizeOptionsT *>(u.value));
14160       break;
14161     }
14162     case BuiltinOptions_MatrixSetDiagOptions: {
14163       value = new MatrixSetDiagOptionsT(*reinterpret_cast<MatrixSetDiagOptionsT *>(u.value));
14164       break;
14165     }
14166     case BuiltinOptions_HardSwishOptions: {
14167       value = new HardSwishOptionsT(*reinterpret_cast<HardSwishOptionsT *>(u.value));
14168       break;
14169     }
14170     case BuiltinOptions_IfOptions: {
14171       value = new IfOptionsT(*reinterpret_cast<IfOptionsT *>(u.value));
14172       break;
14173     }
14174     case BuiltinOptions_WhileOptions: {
14175       value = new WhileOptionsT(*reinterpret_cast<WhileOptionsT *>(u.value));
14176       break;
14177     }
14178     case BuiltinOptions_DepthToSpaceOptions: {
14179       value = new DepthToSpaceOptionsT(*reinterpret_cast<DepthToSpaceOptionsT *>(u.value));
14180       break;
14181     }
14182     case BuiltinOptions_NonMaxSuppressionV4Options: {
14183       value = new NonMaxSuppressionV4OptionsT(*reinterpret_cast<NonMaxSuppressionV4OptionsT *>(u.value));
14184       break;
14185     }
14186     case BuiltinOptions_NonMaxSuppressionV5Options: {
14187       value = new NonMaxSuppressionV5OptionsT(*reinterpret_cast<NonMaxSuppressionV5OptionsT *>(u.value));
14188       break;
14189     }
14190     case BuiltinOptions_ScatterNdOptions: {
14191       value = new ScatterNdOptionsT(*reinterpret_cast<ScatterNdOptionsT *>(u.value));
14192       break;
14193     }
14194     default:
14195       break;
14196   }
14197 }
14198 
14199 inline void BuiltinOptionsUnion::Reset() {
14200   switch (type) {
14201     case BuiltinOptions_Conv2DOptions: {
14202       auto ptr = reinterpret_cast<Conv2DOptionsT *>(value);
14203       delete ptr;
14204       break;
14205     }
14206     case BuiltinOptions_DepthwiseConv2DOptions: {
14207       auto ptr = reinterpret_cast<DepthwiseConv2DOptionsT *>(value);
14208       delete ptr;
14209       break;
14210     }
14211     case BuiltinOptions_ConcatEmbeddingsOptions: {
14212       auto ptr = reinterpret_cast<ConcatEmbeddingsOptionsT *>(value);
14213       delete ptr;
14214       break;
14215     }
14216     case BuiltinOptions_LSHProjectionOptions: {
14217       auto ptr = reinterpret_cast<LSHProjectionOptionsT *>(value);
14218       delete ptr;
14219       break;
14220     }
14221     case BuiltinOptions_Pool2DOptions: {
14222       auto ptr = reinterpret_cast<Pool2DOptionsT *>(value);
14223       delete ptr;
14224       break;
14225     }
14226     case BuiltinOptions_SVDFOptions: {
14227       auto ptr = reinterpret_cast<SVDFOptionsT *>(value);
14228       delete ptr;
14229       break;
14230     }
14231     case BuiltinOptions_RNNOptions: {
14232       auto ptr = reinterpret_cast<RNNOptionsT *>(value);
14233       delete ptr;
14234       break;
14235     }
14236     case BuiltinOptions_FullyConnectedOptions: {
14237       auto ptr = reinterpret_cast<FullyConnectedOptionsT *>(value);
14238       delete ptr;
14239       break;
14240     }
14241     case BuiltinOptions_SoftmaxOptions: {
14242       auto ptr = reinterpret_cast<SoftmaxOptionsT *>(value);
14243       delete ptr;
14244       break;
14245     }
14246     case BuiltinOptions_ConcatenationOptions: {
14247       auto ptr = reinterpret_cast<ConcatenationOptionsT *>(value);
14248       delete ptr;
14249       break;
14250     }
14251     case BuiltinOptions_AddOptions: {
14252       auto ptr = reinterpret_cast<AddOptionsT *>(value);
14253       delete ptr;
14254       break;
14255     }
14256     case BuiltinOptions_L2NormOptions: {
14257       auto ptr = reinterpret_cast<L2NormOptionsT *>(value);
14258       delete ptr;
14259       break;
14260     }
14261     case BuiltinOptions_LocalResponseNormalizationOptions: {
14262       auto ptr = reinterpret_cast<LocalResponseNormalizationOptionsT *>(value);
14263       delete ptr;
14264       break;
14265     }
14266     case BuiltinOptions_LSTMOptions: {
14267       auto ptr = reinterpret_cast<LSTMOptionsT *>(value);
14268       delete ptr;
14269       break;
14270     }
14271     case BuiltinOptions_ResizeBilinearOptions: {
14272       auto ptr = reinterpret_cast<ResizeBilinearOptionsT *>(value);
14273       delete ptr;
14274       break;
14275     }
14276     case BuiltinOptions_CallOptions: {
14277       auto ptr = reinterpret_cast<CallOptionsT *>(value);
14278       delete ptr;
14279       break;
14280     }
14281     case BuiltinOptions_ReshapeOptions: {
14282       auto ptr = reinterpret_cast<ReshapeOptionsT *>(value);
14283       delete ptr;
14284       break;
14285     }
14286     case BuiltinOptions_SkipGramOptions: {
14287       auto ptr = reinterpret_cast<SkipGramOptionsT *>(value);
14288       delete ptr;
14289       break;
14290     }
14291     case BuiltinOptions_SpaceToDepthOptions: {
14292       auto ptr = reinterpret_cast<SpaceToDepthOptionsT *>(value);
14293       delete ptr;
14294       break;
14295     }
14296     case BuiltinOptions_EmbeddingLookupSparseOptions: {
14297       auto ptr = reinterpret_cast<EmbeddingLookupSparseOptionsT *>(value);
14298       delete ptr;
14299       break;
14300     }
14301     case BuiltinOptions_MulOptions: {
14302       auto ptr = reinterpret_cast<MulOptionsT *>(value);
14303       delete ptr;
14304       break;
14305     }
14306     case BuiltinOptions_PadOptions: {
14307       auto ptr = reinterpret_cast<PadOptionsT *>(value);
14308       delete ptr;
14309       break;
14310     }
14311     case BuiltinOptions_GatherOptions: {
14312       auto ptr = reinterpret_cast<GatherOptionsT *>(value);
14313       delete ptr;
14314       break;
14315     }
14316     case BuiltinOptions_BatchToSpaceNDOptions: {
14317       auto ptr = reinterpret_cast<BatchToSpaceNDOptionsT *>(value);
14318       delete ptr;
14319       break;
14320     }
14321     case BuiltinOptions_SpaceToBatchNDOptions: {
14322       auto ptr = reinterpret_cast<SpaceToBatchNDOptionsT *>(value);
14323       delete ptr;
14324       break;
14325     }
14326     case BuiltinOptions_TransposeOptions: {
14327       auto ptr = reinterpret_cast<TransposeOptionsT *>(value);
14328       delete ptr;
14329       break;
14330     }
14331     case BuiltinOptions_ReducerOptions: {
14332       auto ptr = reinterpret_cast<ReducerOptionsT *>(value);
14333       delete ptr;
14334       break;
14335     }
14336     case BuiltinOptions_SubOptions: {
14337       auto ptr = reinterpret_cast<SubOptionsT *>(value);
14338       delete ptr;
14339       break;
14340     }
14341     case BuiltinOptions_DivOptions: {
14342       auto ptr = reinterpret_cast<DivOptionsT *>(value);
14343       delete ptr;
14344       break;
14345     }
14346     case BuiltinOptions_SqueezeOptions: {
14347       auto ptr = reinterpret_cast<SqueezeOptionsT *>(value);
14348       delete ptr;
14349       break;
14350     }
14351     case BuiltinOptions_SequenceRNNOptions: {
14352       auto ptr = reinterpret_cast<SequenceRNNOptionsT *>(value);
14353       delete ptr;
14354       break;
14355     }
14356     case BuiltinOptions_StridedSliceOptions: {
14357       auto ptr = reinterpret_cast<StridedSliceOptionsT *>(value);
14358       delete ptr;
14359       break;
14360     }
14361     case BuiltinOptions_ExpOptions: {
14362       auto ptr = reinterpret_cast<ExpOptionsT *>(value);
14363       delete ptr;
14364       break;
14365     }
14366     case BuiltinOptions_TopKV2Options: {
14367       auto ptr = reinterpret_cast<TopKV2OptionsT *>(value);
14368       delete ptr;
14369       break;
14370     }
14371     case BuiltinOptions_SplitOptions: {
14372       auto ptr = reinterpret_cast<SplitOptionsT *>(value);
14373       delete ptr;
14374       break;
14375     }
14376     case BuiltinOptions_LogSoftmaxOptions: {
14377       auto ptr = reinterpret_cast<LogSoftmaxOptionsT *>(value);
14378       delete ptr;
14379       break;
14380     }
14381     case BuiltinOptions_CastOptions: {
14382       auto ptr = reinterpret_cast<CastOptionsT *>(value);
14383       delete ptr;
14384       break;
14385     }
14386     case BuiltinOptions_DequantizeOptions: {
14387       auto ptr = reinterpret_cast<DequantizeOptionsT *>(value);
14388       delete ptr;
14389       break;
14390     }
14391     case BuiltinOptions_MaximumMinimumOptions: {
14392       auto ptr = reinterpret_cast<MaximumMinimumOptionsT *>(value);
14393       delete ptr;
14394       break;
14395     }
14396     case BuiltinOptions_ArgMaxOptions: {
14397       auto ptr = reinterpret_cast<ArgMaxOptionsT *>(value);
14398       delete ptr;
14399       break;
14400     }
14401     case BuiltinOptions_LessOptions: {
14402       auto ptr = reinterpret_cast<LessOptionsT *>(value);
14403       delete ptr;
14404       break;
14405     }
14406     case BuiltinOptions_NegOptions: {
14407       auto ptr = reinterpret_cast<NegOptionsT *>(value);
14408       delete ptr;
14409       break;
14410     }
14411     case BuiltinOptions_PadV2Options: {
14412       auto ptr = reinterpret_cast<PadV2OptionsT *>(value);
14413       delete ptr;
14414       break;
14415     }
14416     case BuiltinOptions_GreaterOptions: {
14417       auto ptr = reinterpret_cast<GreaterOptionsT *>(value);
14418       delete ptr;
14419       break;
14420     }
14421     case BuiltinOptions_GreaterEqualOptions: {
14422       auto ptr = reinterpret_cast<GreaterEqualOptionsT *>(value);
14423       delete ptr;
14424       break;
14425     }
14426     case BuiltinOptions_LessEqualOptions: {
14427       auto ptr = reinterpret_cast<LessEqualOptionsT *>(value);
14428       delete ptr;
14429       break;
14430     }
14431     case BuiltinOptions_SelectOptions: {
14432       auto ptr = reinterpret_cast<SelectOptionsT *>(value);
14433       delete ptr;
14434       break;
14435     }
14436     case BuiltinOptions_SliceOptions: {
14437       auto ptr = reinterpret_cast<SliceOptionsT *>(value);
14438       delete ptr;
14439       break;
14440     }
14441     case BuiltinOptions_TransposeConvOptions: {
14442       auto ptr = reinterpret_cast<TransposeConvOptionsT *>(value);
14443       delete ptr;
14444       break;
14445     }
14446     case BuiltinOptions_SparseToDenseOptions: {
14447       auto ptr = reinterpret_cast<SparseToDenseOptionsT *>(value);
14448       delete ptr;
14449       break;
14450     }
14451     case BuiltinOptions_TileOptions: {
14452       auto ptr = reinterpret_cast<TileOptionsT *>(value);
14453       delete ptr;
14454       break;
14455     }
14456     case BuiltinOptions_ExpandDimsOptions: {
14457       auto ptr = reinterpret_cast<ExpandDimsOptionsT *>(value);
14458       delete ptr;
14459       break;
14460     }
14461     case BuiltinOptions_EqualOptions: {
14462       auto ptr = reinterpret_cast<EqualOptionsT *>(value);
14463       delete ptr;
14464       break;
14465     }
14466     case BuiltinOptions_NotEqualOptions: {
14467       auto ptr = reinterpret_cast<NotEqualOptionsT *>(value);
14468       delete ptr;
14469       break;
14470     }
14471     case BuiltinOptions_ShapeOptions: {
14472       auto ptr = reinterpret_cast<ShapeOptionsT *>(value);
14473       delete ptr;
14474       break;
14475     }
14476     case BuiltinOptions_PowOptions: {
14477       auto ptr = reinterpret_cast<PowOptionsT *>(value);
14478       delete ptr;
14479       break;
14480     }
14481     case BuiltinOptions_ArgMinOptions: {
14482       auto ptr = reinterpret_cast<ArgMinOptionsT *>(value);
14483       delete ptr;
14484       break;
14485     }
14486     case BuiltinOptions_FakeQuantOptions: {
14487       auto ptr = reinterpret_cast<FakeQuantOptionsT *>(value);
14488       delete ptr;
14489       break;
14490     }
14491     case BuiltinOptions_PackOptions: {
14492       auto ptr = reinterpret_cast<PackOptionsT *>(value);
14493       delete ptr;
14494       break;
14495     }
14496     case BuiltinOptions_LogicalOrOptions: {
14497       auto ptr = reinterpret_cast<LogicalOrOptionsT *>(value);
14498       delete ptr;
14499       break;
14500     }
14501     case BuiltinOptions_OneHotOptions: {
14502       auto ptr = reinterpret_cast<OneHotOptionsT *>(value);
14503       delete ptr;
14504       break;
14505     }
14506     case BuiltinOptions_LogicalAndOptions: {
14507       auto ptr = reinterpret_cast<LogicalAndOptionsT *>(value);
14508       delete ptr;
14509       break;
14510     }
14511     case BuiltinOptions_LogicalNotOptions: {
14512       auto ptr = reinterpret_cast<LogicalNotOptionsT *>(value);
14513       delete ptr;
14514       break;
14515     }
14516     case BuiltinOptions_UnpackOptions: {
14517       auto ptr = reinterpret_cast<UnpackOptionsT *>(value);
14518       delete ptr;
14519       break;
14520     }
14521     case BuiltinOptions_FloorDivOptions: {
14522       auto ptr = reinterpret_cast<FloorDivOptionsT *>(value);
14523       delete ptr;
14524       break;
14525     }
14526     case BuiltinOptions_SquareOptions: {
14527       auto ptr = reinterpret_cast<SquareOptionsT *>(value);
14528       delete ptr;
14529       break;
14530     }
14531     case BuiltinOptions_ZerosLikeOptions: {
14532       auto ptr = reinterpret_cast<ZerosLikeOptionsT *>(value);
14533       delete ptr;
14534       break;
14535     }
14536     case BuiltinOptions_FillOptions: {
14537       auto ptr = reinterpret_cast<FillOptionsT *>(value);
14538       delete ptr;
14539       break;
14540     }
14541     case BuiltinOptions_BidirectionalSequenceLSTMOptions: {
14542       auto ptr = reinterpret_cast<BidirectionalSequenceLSTMOptionsT *>(value);
14543       delete ptr;
14544       break;
14545     }
14546     case BuiltinOptions_BidirectionalSequenceRNNOptions: {
14547       auto ptr = reinterpret_cast<BidirectionalSequenceRNNOptionsT *>(value);
14548       delete ptr;
14549       break;
14550     }
14551     case BuiltinOptions_UnidirectionalSequenceLSTMOptions: {
14552       auto ptr = reinterpret_cast<UnidirectionalSequenceLSTMOptionsT *>(value);
14553       delete ptr;
14554       break;
14555     }
14556     case BuiltinOptions_FloorModOptions: {
14557       auto ptr = reinterpret_cast<FloorModOptionsT *>(value);
14558       delete ptr;
14559       break;
14560     }
14561     case BuiltinOptions_RangeOptions: {
14562       auto ptr = reinterpret_cast<RangeOptionsT *>(value);
14563       delete ptr;
14564       break;
14565     }
14566     case BuiltinOptions_ResizeNearestNeighborOptions: {
14567       auto ptr = reinterpret_cast<ResizeNearestNeighborOptionsT *>(value);
14568       delete ptr;
14569       break;
14570     }
14571     case BuiltinOptions_LeakyReluOptions: {
14572       auto ptr = reinterpret_cast<LeakyReluOptionsT *>(value);
14573       delete ptr;
14574       break;
14575     }
14576     case BuiltinOptions_SquaredDifferenceOptions: {
14577       auto ptr = reinterpret_cast<SquaredDifferenceOptionsT *>(value);
14578       delete ptr;
14579       break;
14580     }
14581     case BuiltinOptions_MirrorPadOptions: {
14582       auto ptr = reinterpret_cast<MirrorPadOptionsT *>(value);
14583       delete ptr;
14584       break;
14585     }
14586     case BuiltinOptions_AbsOptions: {
14587       auto ptr = reinterpret_cast<AbsOptionsT *>(value);
14588       delete ptr;
14589       break;
14590     }
14591     case BuiltinOptions_SplitVOptions: {
14592       auto ptr = reinterpret_cast<SplitVOptionsT *>(value);
14593       delete ptr;
14594       break;
14595     }
14596     case BuiltinOptions_UniqueOptions: {
14597       auto ptr = reinterpret_cast<UniqueOptionsT *>(value);
14598       delete ptr;
14599       break;
14600     }
14601     case BuiltinOptions_ReverseV2Options: {
14602       auto ptr = reinterpret_cast<ReverseV2OptionsT *>(value);
14603       delete ptr;
14604       break;
14605     }
14606     case BuiltinOptions_AddNOptions: {
14607       auto ptr = reinterpret_cast<AddNOptionsT *>(value);
14608       delete ptr;
14609       break;
14610     }
14611     case BuiltinOptions_GatherNdOptions: {
14612       auto ptr = reinterpret_cast<GatherNdOptionsT *>(value);
14613       delete ptr;
14614       break;
14615     }
14616     case BuiltinOptions_CosOptions: {
14617       auto ptr = reinterpret_cast<CosOptionsT *>(value);
14618       delete ptr;
14619       break;
14620     }
14621     case BuiltinOptions_WhereOptions: {
14622       auto ptr = reinterpret_cast<WhereOptionsT *>(value);
14623       delete ptr;
14624       break;
14625     }
14626     case BuiltinOptions_RankOptions: {
14627       auto ptr = reinterpret_cast<RankOptionsT *>(value);
14628       delete ptr;
14629       break;
14630     }
14631     case BuiltinOptions_ReverseSequenceOptions: {
14632       auto ptr = reinterpret_cast<ReverseSequenceOptionsT *>(value);
14633       delete ptr;
14634       break;
14635     }
14636     case BuiltinOptions_MatrixDiagOptions: {
14637       auto ptr = reinterpret_cast<MatrixDiagOptionsT *>(value);
14638       delete ptr;
14639       break;
14640     }
14641     case BuiltinOptions_QuantizeOptions: {
14642       auto ptr = reinterpret_cast<QuantizeOptionsT *>(value);
14643       delete ptr;
14644       break;
14645     }
14646     case BuiltinOptions_MatrixSetDiagOptions: {
14647       auto ptr = reinterpret_cast<MatrixSetDiagOptionsT *>(value);
14648       delete ptr;
14649       break;
14650     }
14651     case BuiltinOptions_HardSwishOptions: {
14652       auto ptr = reinterpret_cast<HardSwishOptionsT *>(value);
14653       delete ptr;
14654       break;
14655     }
14656     case BuiltinOptions_IfOptions: {
14657       auto ptr = reinterpret_cast<IfOptionsT *>(value);
14658       delete ptr;
14659       break;
14660     }
14661     case BuiltinOptions_WhileOptions: {
14662       auto ptr = reinterpret_cast<WhileOptionsT *>(value);
14663       delete ptr;
14664       break;
14665     }
14666     case BuiltinOptions_DepthToSpaceOptions: {
14667       auto ptr = reinterpret_cast<DepthToSpaceOptionsT *>(value);
14668       delete ptr;
14669       break;
14670     }
14671     case BuiltinOptions_NonMaxSuppressionV4Options: {
14672       auto ptr = reinterpret_cast<NonMaxSuppressionV4OptionsT *>(value);
14673       delete ptr;
14674       break;
14675     }
14676     case BuiltinOptions_NonMaxSuppressionV5Options: {
14677       auto ptr = reinterpret_cast<NonMaxSuppressionV5OptionsT *>(value);
14678       delete ptr;
14679       break;
14680     }
14681     case BuiltinOptions_ScatterNdOptions: {
14682       auto ptr = reinterpret_cast<ScatterNdOptionsT *>(value);
14683       delete ptr;
14684       break;
14685     }
14686     default: break;
14687   }
14688   value = nullptr;
14689   type = BuiltinOptions_NONE;
14690 }
14691 
14692 inline const tflite::Model *GetModel(const void *buf) {
14693   return flatbuffers::GetRoot<tflite::Model>(buf);
14694 }
14695 
14696 inline const tflite::Model *GetSizePrefixedModel(const void *buf) {
14697   return flatbuffers::GetSizePrefixedRoot<tflite::Model>(buf);
14698 }
14699 
14700 inline const char *ModelIdentifier() {
14701   return "TFL3";
14702 }
14703 
14704 inline bool ModelBufferHasIdentifier(const void *buf) {
14705   return flatbuffers::BufferHasIdentifier(
14706       buf, ModelIdentifier());
14707 }
14708 
14709 inline bool VerifyModelBuffer(
14710     flatbuffers::Verifier &verifier) {
14711   return verifier.VerifyBuffer<tflite::Model>(ModelIdentifier());
14712 }
14713 
14714 inline bool VerifySizePrefixedModelBuffer(
14715     flatbuffers::Verifier &verifier) {
14716   return verifier.VerifySizePrefixedBuffer<tflite::Model>(ModelIdentifier());
14717 }
14718 
14719 inline const char *ModelExtension() {
14720   return "tflite";
14721 }
14722 
14723 inline void FinishModelBuffer(
14724     flatbuffers::FlatBufferBuilder &fbb,
14725     flatbuffers::Offset<tflite::Model> root) {
14726   fbb.Finish(root, ModelIdentifier());
14727 }
14728 
14729 inline void FinishSizePrefixedModelBuffer(
14730     flatbuffers::FlatBufferBuilder &fbb,
14731     flatbuffers::Offset<tflite::Model> root) {
14732   fbb.FinishSizePrefixed(root, ModelIdentifier());
14733 }
14734 
14735 inline std::unique_ptr<ModelT> UnPackModel(
14736     const void *buf,
14737     const flatbuffers::resolver_function_t *res = nullptr) {
14738   return std::unique_ptr<ModelT>(GetModel(buf)->UnPack(res));
14739 }
14740 
14741 }  // namespace tflite
14742 
14743 #endif  // FLATBUFFERS_GENERATED_SCHEMA_TFLITE_H_