// automatically generated by the FlatBuffers compiler, do not modify #ifndef FLATBUFFERS_GENERATED_TOSA_TOSA_H_ #define FLATBUFFERS_GENERATED_TOSA_TOSA_H_ #include "flatbuffers/flatbuffers.h" // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 24 && FLATBUFFERS_VERSION_MINOR == 3 && FLATBUFFERS_VERSION_REVISION == 7, "Non-compatible flatbuffers version included"); namespace tosa { struct PoolAttribute; struct PoolAttributeBuilder; struct ConvAttribute; struct ConvAttributeBuilder; struct TransposeConvAttribute; struct TransposeConvAttributeBuilder; struct PadAttribute; struct PadAttributeBuilder; struct AxisAttribute; struct AxisAttributeBuilder; struct ResizeAttribute; struct ResizeAttributeBuilder; struct ClampAttribute; struct ClampAttributeBuilder; struct RescaleAttribute; struct RescaleAttributeBuilder; struct MulAttribute; struct MulAttributeBuilder; struct ArithmeticRightShiftAttribute; struct ArithmeticRightShiftAttributeBuilder; struct CondIfAttribute; struct CondIfAttributeBuilder; struct WhileLoopAttribute; struct WhileLoopAttributeBuilder; struct TransposeAttribute; struct TransposeAttributeBuilder; struct TableAttribute; struct TableAttributeBuilder; struct MatMulAttribute; struct MatMulAttributeBuilder; struct FullyConnectedAttribute; struct FullyConnectedAttributeBuilder; struct NegateAttribute; struct NegateAttributeBuilder; struct CustomAttribute; struct CustomAttributeBuilder; struct FFTAttribute; struct FFTAttributeBuilder; struct RFFTAttribute; struct RFFTAttributeBuilder; struct Version; struct VersionBuilder; struct TosaTensor; struct TosaTensorBuilder; struct TosaOperator; struct TosaOperatorBuilder; struct TosaBasicBlock; struct TosaBasicBlockBuilder; struct TosaRegion; struct TosaRegionBuilder; struct TosaGraph; struct TosaGraphBuilder; enum DType : uint32_t { DType_UNKNOWN = 0, DType_BOOL = 1, DType_UINT8 = 2, DType_INT4 = 3, DType_INT8 = 4, DType_INT16 = 5, DType_INT32 = 6, DType_INT48 = 7, DType_FP32 = 8, DType_UINT16 = 9, DType_FP16 = 10, DType_BF16 = 11, DType_SHAPE = 12, DType_FP8E4M3 = 13, DType_FP8E5M2 = 14, DType_MIN = DType_UNKNOWN, DType_MAX = DType_FP8E5M2 }; inline const DType (&EnumValuesDType())[15] { static const DType values[] = { DType_UNKNOWN, DType_BOOL, DType_UINT8, DType_INT4, DType_INT8, DType_INT16, DType_INT32, DType_INT48, DType_FP32, DType_UINT16, DType_FP16, DType_BF16, DType_SHAPE, DType_FP8E4M3, DType_FP8E5M2 }; return values; } inline const char * const *EnumNamesDType() { static const char * const names[16] = { "UNKNOWN", "BOOL", "UINT8", "INT4", "INT8", "INT16", "INT32", "INT48", "FP32", "UINT16", "FP16", "BF16", "SHAPE", "FP8E4M3", "FP8E5M2", nullptr }; return names; } inline const char *EnumNameDType(DType e) { if (::flatbuffers::IsOutRange(e, DType_UNKNOWN, DType_FP8E5M2)) return ""; const size_t index = static_cast(e); return EnumNamesDType()[index]; } enum ResizeMode : uint32_t { ResizeMode_UNKNOWN = 0, ResizeMode_NEAREST = 1, ResizeMode_BILINEAR = 2, ResizeMode_MIN = ResizeMode_UNKNOWN, ResizeMode_MAX = ResizeMode_BILINEAR }; inline const ResizeMode (&EnumValuesResizeMode())[3] { static const ResizeMode values[] = { ResizeMode_UNKNOWN, ResizeMode_NEAREST, ResizeMode_BILINEAR }; return values; } inline const char * const *EnumNamesResizeMode() { static const char * const names[4] = { "UNKNOWN", "NEAREST", "BILINEAR", nullptr }; return names; } inline const char *EnumNameResizeMode(ResizeMode e) { if (::flatbuffers::IsOutRange(e, ResizeMode_UNKNOWN, ResizeMode_BILINEAR)) return ""; const size_t index = static_cast(e); return EnumNamesResizeMode()[index]; } enum Op : uint32_t { Op_UNKNOWN = 0, Op_ARGMAX = 1, Op_AVG_POOL2D = 2, Op_CONV2D = 3, Op_CONV3D = 4, Op_DEPTHWISE_CONV2D = 5, Op_FULLY_CONNECTED = 6, Op_MATMUL = 7, Op_MAX_POOL2D = 8, Op_TRANSPOSE_CONV2D = 9, Op_CLAMP = 10, Op_RESERVED = 11, Op_SIGMOID = 12, Op_TANH = 13, Op_ADD = 14, Op_ARITHMETIC_RIGHT_SHIFT = 15, Op_BITWISE_AND = 16, Op_BITWISE_OR = 17, Op_BITWISE_XOR = 18, Op_INTDIV = 19, Op_LOGICAL_AND = 20, Op_LOGICAL_LEFT_SHIFT = 21, Op_LOGICAL_RIGHT_SHIFT = 22, Op_LOGICAL_OR = 23, Op_LOGICAL_XOR = 24, Op_MAXIMUM = 25, Op_MINIMUM = 26, Op_MUL = 27, Op_POW = 28, Op_SUB = 29, Op_TABLE = 30, Op_ABS = 31, Op_BITWISE_NOT = 32, Op_CEIL = 33, Op_CLZ = 34, Op_EXP = 35, Op_FLOOR = 36, Op_LOG = 37, Op_LOGICAL_NOT = 38, Op_NEGATE = 39, Op_RECIPROCAL = 40, Op_RSQRT = 41, Op_SELECT = 42, Op_EQUAL = 43, Op_GREATER = 44, Op_GREATER_EQUAL = 45, Op_REDUCE_ANY = 46, Op_REDUCE_ALL = 47, Op_REDUCE_MAX = 48, Op_REDUCE_MIN = 49, Op_REDUCE_PRODUCT = 50, Op_REDUCE_SUM = 51, Op_CONCAT = 52, Op_PAD = 53, Op_RESHAPE = 54, Op_REVERSE = 55, Op_SLICE = 56, Op_TILE = 57, Op_TRANSPOSE = 58, Op_GATHER = 59, Op_SCATTER = 60, Op_RESIZE = 61, Op_CAST = 62, Op_RESCALE = 63, Op_CONST = 64, Op_IDENTITY = 65, Op_CUSTOM = 66, Op_COND_IF = 67, Op_WHILE_LOOP = 68, Op_FFT2D = 69, Op_RFFT2D = 70, Op_ERF = 71, Op_DIM = 72, Op_CONST_SHAPE = 73, Op_CONCAT_SHAPE = 74, Op_ADD_SHAPE = 75, Op_SUB_SHAPE = 76, Op_MUL_SHAPE = 77, Op_DIV_SHAPE = 78, Op_COS = 79, Op_SIN = 80, Op_MIN = Op_UNKNOWN, Op_MAX = Op_SIN }; inline const Op (&EnumValuesOp())[81] { static const Op values[] = { Op_UNKNOWN, Op_ARGMAX, Op_AVG_POOL2D, Op_CONV2D, Op_CONV3D, Op_DEPTHWISE_CONV2D, Op_FULLY_CONNECTED, Op_MATMUL, Op_MAX_POOL2D, Op_TRANSPOSE_CONV2D, Op_CLAMP, Op_RESERVED, Op_SIGMOID, Op_TANH, Op_ADD, Op_ARITHMETIC_RIGHT_SHIFT, Op_BITWISE_AND, Op_BITWISE_OR, Op_BITWISE_XOR, Op_INTDIV, Op_LOGICAL_AND, Op_LOGICAL_LEFT_SHIFT, Op_LOGICAL_RIGHT_SHIFT, Op_LOGICAL_OR, Op_LOGICAL_XOR, Op_MAXIMUM, Op_MINIMUM, Op_MUL, Op_POW, Op_SUB, Op_TABLE, Op_ABS, Op_BITWISE_NOT, Op_CEIL, Op_CLZ, Op_EXP, Op_FLOOR, Op_LOG, Op_LOGICAL_NOT, Op_NEGATE, Op_RECIPROCAL, Op_RSQRT, Op_SELECT, Op_EQUAL, Op_GREATER, Op_GREATER_EQUAL, Op_REDUCE_ANY, Op_REDUCE_ALL, Op_REDUCE_MAX, Op_REDUCE_MIN, Op_REDUCE_PRODUCT, Op_REDUCE_SUM, Op_CONCAT, Op_PAD, Op_RESHAPE, Op_REVERSE, Op_SLICE, Op_TILE, Op_TRANSPOSE, Op_GATHER, Op_SCATTER, Op_RESIZE, Op_CAST, Op_RESCALE, Op_CONST, Op_IDENTITY, Op_CUSTOM, Op_COND_IF, Op_WHILE_LOOP, Op_FFT2D, Op_RFFT2D, Op_ERF, Op_DIM, Op_CONST_SHAPE, Op_CONCAT_SHAPE, Op_ADD_SHAPE, Op_SUB_SHAPE, Op_MUL_SHAPE, Op_DIV_SHAPE, Op_COS, Op_SIN }; return values; } inline const char * const *EnumNamesOp() { static const char * const names[82] = { "UNKNOWN", "ARGMAX", "AVG_POOL2D", "CONV2D", "CONV3D", "DEPTHWISE_CONV2D", "FULLY_CONNECTED", "MATMUL", "MAX_POOL2D", "TRANSPOSE_CONV2D", "CLAMP", "RESERVED", "SIGMOID", "TANH", "ADD", "ARITHMETIC_RIGHT_SHIFT", "BITWISE_AND", "BITWISE_OR", "BITWISE_XOR", "INTDIV", "LOGICAL_AND", "LOGICAL_LEFT_SHIFT", "LOGICAL_RIGHT_SHIFT", "LOGICAL_OR", "LOGICAL_XOR", "MAXIMUM", "MINIMUM", "MUL", "POW", "SUB", "TABLE", "ABS", "BITWISE_NOT", "CEIL", "CLZ", "EXP", "FLOOR", "LOG", "LOGICAL_NOT", "NEGATE", "RECIPROCAL", "RSQRT", "SELECT", "EQUAL", "GREATER", "GREATER_EQUAL", "REDUCE_ANY", "REDUCE_ALL", "REDUCE_MAX", "REDUCE_MIN", "REDUCE_PRODUCT", "REDUCE_SUM", "CONCAT", "PAD", "RESHAPE", "REVERSE", "SLICE", "TILE", "TRANSPOSE", "GATHER", "SCATTER", "RESIZE", "CAST", "RESCALE", "CONST", "IDENTITY", "CUSTOM", "COND_IF", "WHILE_LOOP", "FFT2D", "RFFT2D", "ERF", "DIM", "CONST_SHAPE", "CONCAT_SHAPE", "ADD_SHAPE", "SUB_SHAPE", "MUL_SHAPE", "DIV_SHAPE", "COS", "SIN", nullptr }; return names; } inline const char *EnumNameOp(Op e) { if (::flatbuffers::IsOutRange(e, Op_UNKNOWN, Op_SIN)) return ""; const size_t index = static_cast(e); return EnumNamesOp()[index]; } enum Attribute : uint8_t { Attribute_NONE = 0, Attribute_PoolAttribute = 1, Attribute_ConvAttribute = 2, Attribute_TransposeConvAttribute = 3, Attribute_PadAttribute = 4, Attribute_AxisAttribute = 5, Attribute_ResizeAttribute = 6, Attribute_ClampAttribute = 7, Attribute_RescaleAttribute = 8, Attribute_MulAttribute = 9, Attribute_ArithmeticRightShiftAttribute = 10, Attribute_CondIfAttribute = 11, Attribute_WhileLoopAttribute = 12, Attribute_TransposeAttribute = 13, Attribute_TableAttribute = 14, Attribute_MatMulAttribute = 15, Attribute_FullyConnectedAttribute = 16, Attribute_NegateAttribute = 17, Attribute_CustomAttribute = 18, Attribute_FFTAttribute = 19, Attribute_RFFTAttribute = 20, Attribute_MIN = Attribute_NONE, Attribute_MAX = Attribute_RFFTAttribute }; inline const Attribute (&EnumValuesAttribute())[21] { static const Attribute values[] = { Attribute_NONE, Attribute_PoolAttribute, Attribute_ConvAttribute, Attribute_TransposeConvAttribute, Attribute_PadAttribute, Attribute_AxisAttribute, Attribute_ResizeAttribute, Attribute_ClampAttribute, Attribute_RescaleAttribute, Attribute_MulAttribute, Attribute_ArithmeticRightShiftAttribute, Attribute_CondIfAttribute, Attribute_WhileLoopAttribute, Attribute_TransposeAttribute, Attribute_TableAttribute, Attribute_MatMulAttribute, Attribute_FullyConnectedAttribute, Attribute_NegateAttribute, Attribute_CustomAttribute, Attribute_FFTAttribute, Attribute_RFFTAttribute }; return values; } inline const char * const *EnumNamesAttribute() { static const char * const names[22] = { "NONE", "PoolAttribute", "ConvAttribute", "TransposeConvAttribute", "PadAttribute", "AxisAttribute", "ResizeAttribute", "ClampAttribute", "RescaleAttribute", "MulAttribute", "ArithmeticRightShiftAttribute", "CondIfAttribute", "WhileLoopAttribute", "TransposeAttribute", "TableAttribute", "MatMulAttribute", "FullyConnectedAttribute", "NegateAttribute", "CustomAttribute", "FFTAttribute", "RFFTAttribute", nullptr }; return names; } inline const char *EnumNameAttribute(Attribute e) { if (::flatbuffers::IsOutRange(e, Attribute_NONE, Attribute_RFFTAttribute)) return ""; const size_t index = static_cast(e); return EnumNamesAttribute()[index]; } template struct AttributeTraits { static const Attribute enum_value = Attribute_NONE; }; template<> struct AttributeTraits { static const Attribute enum_value = Attribute_PoolAttribute; }; template<> struct AttributeTraits { static const Attribute enum_value = Attribute_ConvAttribute; }; template<> struct AttributeTraits { static const Attribute enum_value = Attribute_TransposeConvAttribute; }; template<> struct AttributeTraits { static const Attribute enum_value = Attribute_PadAttribute; }; template<> struct AttributeTraits { static const Attribute enum_value = Attribute_AxisAttribute; }; template<> struct AttributeTraits { static const Attribute enum_value = Attribute_ResizeAttribute; }; template<> struct AttributeTraits { static const Attribute enum_value = Attribute_ClampAttribute; }; template<> struct AttributeTraits { static const Attribute enum_value = Attribute_RescaleAttribute; }; template<> struct AttributeTraits { static const Attribute enum_value = Attribute_MulAttribute; }; template<> struct AttributeTraits { static const Attribute enum_value = Attribute_ArithmeticRightShiftAttribute; }; template<> struct AttributeTraits { static const Attribute enum_value = Attribute_CondIfAttribute; }; template<> struct AttributeTraits { static const Attribute enum_value = Attribute_WhileLoopAttribute; }; template<> struct AttributeTraits { static const Attribute enum_value = Attribute_TransposeAttribute; }; template<> struct AttributeTraits { static const Attribute enum_value = Attribute_TableAttribute; }; template<> struct AttributeTraits { static const Attribute enum_value = Attribute_MatMulAttribute; }; template<> struct AttributeTraits { static const Attribute enum_value = Attribute_FullyConnectedAttribute; }; template<> struct AttributeTraits { static const Attribute enum_value = Attribute_NegateAttribute; }; template<> struct AttributeTraits { static const Attribute enum_value = Attribute_CustomAttribute; }; template<> struct AttributeTraits { static const Attribute enum_value = Attribute_FFTAttribute; }; template<> struct AttributeTraits { static const Attribute enum_value = Attribute_RFFTAttribute; }; bool VerifyAttribute(::flatbuffers::Verifier &verifier, const void *obj, Attribute type); bool VerifyAttributeVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); struct PoolAttribute FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef PoolAttributeBuilder Builder; enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { VT_PAD = 4, VT_KERNEL = 6, VT_STRIDE = 8, VT_INPUT_ZP = 10, VT_OUTPUT_ZP = 12, VT_ACC_TYPE = 14 }; const ::flatbuffers::Vector *pad() const { return GetPointer *>(VT_PAD); } const ::flatbuffers::Vector *kernel() const { return GetPointer *>(VT_KERNEL); } const ::flatbuffers::Vector *stride() const { return GetPointer *>(VT_STRIDE); } int32_t input_zp() const { return GetField(VT_INPUT_ZP, 0); } int32_t output_zp() const { return GetField(VT_OUTPUT_ZP, 0); } tosa::DType acc_type() const { return static_cast(GetField(VT_ACC_TYPE, 0)); } bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyOffset(verifier, VT_PAD) && verifier.VerifyVector(pad()) && VerifyOffset(verifier, VT_KERNEL) && verifier.VerifyVector(kernel()) && VerifyOffset(verifier, VT_STRIDE) && verifier.VerifyVector(stride()) && VerifyField(verifier, VT_INPUT_ZP, 4) && VerifyField(verifier, VT_OUTPUT_ZP, 4) && VerifyField(verifier, VT_ACC_TYPE, 4) && verifier.EndTable(); } }; struct PoolAttributeBuilder { typedef PoolAttribute Table; ::flatbuffers::FlatBufferBuilder &fbb_; ::flatbuffers::uoffset_t start_; void add_pad(::flatbuffers::Offset<::flatbuffers::Vector> pad) { fbb_.AddOffset(PoolAttribute::VT_PAD, pad); } void add_kernel(::flatbuffers::Offset<::flatbuffers::Vector> kernel) { fbb_.AddOffset(PoolAttribute::VT_KERNEL, kernel); } void add_stride(::flatbuffers::Offset<::flatbuffers::Vector> stride) { fbb_.AddOffset(PoolAttribute::VT_STRIDE, stride); } void add_input_zp(int32_t input_zp) { fbb_.AddElement(PoolAttribute::VT_INPUT_ZP, input_zp, 0); } void add_output_zp(int32_t output_zp) { fbb_.AddElement(PoolAttribute::VT_OUTPUT_ZP, output_zp, 0); } void add_acc_type(tosa::DType acc_type) { fbb_.AddElement(PoolAttribute::VT_ACC_TYPE, static_cast(acc_type), 0); } explicit PoolAttributeBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = ::flatbuffers::Offset(end); return o; } }; inline ::flatbuffers::Offset CreatePoolAttribute( ::flatbuffers::FlatBufferBuilder &_fbb, ::flatbuffers::Offset<::flatbuffers::Vector> pad = 0, ::flatbuffers::Offset<::flatbuffers::Vector> kernel = 0, ::flatbuffers::Offset<::flatbuffers::Vector> stride = 0, int32_t input_zp = 0, int32_t output_zp = 0, tosa::DType acc_type = tosa::DType_UNKNOWN) { PoolAttributeBuilder builder_(_fbb); builder_.add_acc_type(acc_type); builder_.add_output_zp(output_zp); builder_.add_input_zp(input_zp); builder_.add_stride(stride); builder_.add_kernel(kernel); builder_.add_pad(pad); return builder_.Finish(); } inline ::flatbuffers::Offset CreatePoolAttributeDirect( ::flatbuffers::FlatBufferBuilder &_fbb, const std::vector *pad = nullptr, const std::vector *kernel = nullptr, const std::vector *stride = nullptr, int32_t input_zp = 0, int32_t output_zp = 0, tosa::DType acc_type = tosa::DType_UNKNOWN) { auto pad__ = pad ? _fbb.CreateVector(*pad) : 0; auto kernel__ = kernel ? _fbb.CreateVector(*kernel) : 0; auto stride__ = stride ? _fbb.CreateVector(*stride) : 0; return tosa::CreatePoolAttribute( _fbb, pad__, kernel__, stride__, input_zp, output_zp, acc_type); } struct ConvAttribute FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef ConvAttributeBuilder Builder; enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { VT_PAD = 4, VT_STRIDE = 6, VT_DILATION = 8, VT_INPUT_ZP = 10, VT_WEIGHT_ZP = 12, VT_LOCAL_BOUND = 14, VT_ACC_TYPE = 16 }; const ::flatbuffers::Vector *pad() const { return GetPointer *>(VT_PAD); } const ::flatbuffers::Vector *stride() const { return GetPointer *>(VT_STRIDE); } const ::flatbuffers::Vector *dilation() const { return GetPointer *>(VT_DILATION); } int32_t input_zp() const { return GetField(VT_INPUT_ZP, 0); } int32_t weight_zp() const { return GetField(VT_WEIGHT_ZP, 0); } bool local_bound() const { return GetField(VT_LOCAL_BOUND, 0) != 0; } tosa::DType acc_type() const { return static_cast(GetField(VT_ACC_TYPE, 0)); } bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyOffset(verifier, VT_PAD) && verifier.VerifyVector(pad()) && VerifyOffset(verifier, VT_STRIDE) && verifier.VerifyVector(stride()) && VerifyOffset(verifier, VT_DILATION) && verifier.VerifyVector(dilation()) && VerifyField(verifier, VT_INPUT_ZP, 4) && VerifyField(verifier, VT_WEIGHT_ZP, 4) && VerifyField(verifier, VT_LOCAL_BOUND, 1) && VerifyField(verifier, VT_ACC_TYPE, 4) && verifier.EndTable(); } }; struct ConvAttributeBuilder { typedef ConvAttribute Table; ::flatbuffers::FlatBufferBuilder &fbb_; ::flatbuffers::uoffset_t start_; void add_pad(::flatbuffers::Offset<::flatbuffers::Vector> pad) { fbb_.AddOffset(ConvAttribute::VT_PAD, pad); } void add_stride(::flatbuffers::Offset<::flatbuffers::Vector> stride) { fbb_.AddOffset(ConvAttribute::VT_STRIDE, stride); } void add_dilation(::flatbuffers::Offset<::flatbuffers::Vector> dilation) { fbb_.AddOffset(ConvAttribute::VT_DILATION, dilation); } void add_input_zp(int32_t input_zp) { fbb_.AddElement(ConvAttribute::VT_INPUT_ZP, input_zp, 0); } void add_weight_zp(int32_t weight_zp) { fbb_.AddElement(ConvAttribute::VT_WEIGHT_ZP, weight_zp, 0); } void add_local_bound(bool local_bound) { fbb_.AddElement(ConvAttribute::VT_LOCAL_BOUND, static_cast(local_bound), 0); } void add_acc_type(tosa::DType acc_type) { fbb_.AddElement(ConvAttribute::VT_ACC_TYPE, static_cast(acc_type), 0); } explicit ConvAttributeBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = ::flatbuffers::Offset(end); return o; } }; inline ::flatbuffers::Offset CreateConvAttribute( ::flatbuffers::FlatBufferBuilder &_fbb, ::flatbuffers::Offset<::flatbuffers::Vector> pad = 0, ::flatbuffers::Offset<::flatbuffers::Vector> stride = 0, ::flatbuffers::Offset<::flatbuffers::Vector> dilation = 0, int32_t input_zp = 0, int32_t weight_zp = 0, bool local_bound = false, tosa::DType acc_type = tosa::DType_UNKNOWN) { ConvAttributeBuilder builder_(_fbb); builder_.add_acc_type(acc_type); builder_.add_weight_zp(weight_zp); builder_.add_input_zp(input_zp); builder_.add_dilation(dilation); builder_.add_stride(stride); builder_.add_pad(pad); builder_.add_local_bound(local_bound); return builder_.Finish(); } inline ::flatbuffers::Offset CreateConvAttributeDirect( ::flatbuffers::FlatBufferBuilder &_fbb, const std::vector *pad = nullptr, const std::vector *stride = nullptr, const std::vector *dilation = nullptr, int32_t input_zp = 0, int32_t weight_zp = 0, bool local_bound = false, tosa::DType acc_type = tosa::DType_UNKNOWN) { auto pad__ = pad ? _fbb.CreateVector(*pad) : 0; auto stride__ = stride ? _fbb.CreateVector(*stride) : 0; auto dilation__ = dilation ? _fbb.CreateVector(*dilation) : 0; return tosa::CreateConvAttribute( _fbb, pad__, stride__, dilation__, input_zp, weight_zp, local_bound, acc_type); } struct TransposeConvAttribute FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef TransposeConvAttributeBuilder Builder; enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { VT_OUT_PAD = 4, VT_STRIDE = 6, VT_INPUT_ZP = 8, VT_WEIGHT_ZP = 10, VT_LOCAL_BOUND = 12, VT_ACC_TYPE = 14 }; const ::flatbuffers::Vector *out_pad() const { return GetPointer *>(VT_OUT_PAD); } const ::flatbuffers::Vector *stride() const { return GetPointer *>(VT_STRIDE); } int32_t input_zp() const { return GetField(VT_INPUT_ZP, 0); } int32_t weight_zp() const { return GetField(VT_WEIGHT_ZP, 0); } bool local_bound() const { return GetField(VT_LOCAL_BOUND, 0) != 0; } tosa::DType acc_type() const { return static_cast(GetField(VT_ACC_TYPE, 0)); } bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyOffset(verifier, VT_OUT_PAD) && verifier.VerifyVector(out_pad()) && VerifyOffset(verifier, VT_STRIDE) && verifier.VerifyVector(stride()) && VerifyField(verifier, VT_INPUT_ZP, 4) && VerifyField(verifier, VT_WEIGHT_ZP, 4) && VerifyField(verifier, VT_LOCAL_BOUND, 1) && VerifyField(verifier, VT_ACC_TYPE, 4) && verifier.EndTable(); } }; struct TransposeConvAttributeBuilder { typedef TransposeConvAttribute Table; ::flatbuffers::FlatBufferBuilder &fbb_; ::flatbuffers::uoffset_t start_; void add_out_pad(::flatbuffers::Offset<::flatbuffers::Vector> out_pad) { fbb_.AddOffset(TransposeConvAttribute::VT_OUT_PAD, out_pad); } void add_stride(::flatbuffers::Offset<::flatbuffers::Vector> stride) { fbb_.AddOffset(TransposeConvAttribute::VT_STRIDE, stride); } void add_input_zp(int32_t input_zp) { fbb_.AddElement(TransposeConvAttribute::VT_INPUT_ZP, input_zp, 0); } void add_weight_zp(int32_t weight_zp) { fbb_.AddElement(TransposeConvAttribute::VT_WEIGHT_ZP, weight_zp, 0); } void add_local_bound(bool local_bound) { fbb_.AddElement(TransposeConvAttribute::VT_LOCAL_BOUND, static_cast(local_bound), 0); } void add_acc_type(tosa::DType acc_type) { fbb_.AddElement(TransposeConvAttribute::VT_ACC_TYPE, static_cast(acc_type), 0); } explicit TransposeConvAttributeBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = ::flatbuffers::Offset(end); return o; } }; inline ::flatbuffers::Offset CreateTransposeConvAttribute( ::flatbuffers::FlatBufferBuilder &_fbb, ::flatbuffers::Offset<::flatbuffers::Vector> out_pad = 0, ::flatbuffers::Offset<::flatbuffers::Vector> stride = 0, int32_t input_zp = 0, int32_t weight_zp = 0, bool local_bound = false, tosa::DType acc_type = tosa::DType_UNKNOWN) { TransposeConvAttributeBuilder builder_(_fbb); builder_.add_acc_type(acc_type); builder_.add_weight_zp(weight_zp); builder_.add_input_zp(input_zp); builder_.add_stride(stride); builder_.add_out_pad(out_pad); builder_.add_local_bound(local_bound); return builder_.Finish(); } inline ::flatbuffers::Offset CreateTransposeConvAttributeDirect( ::flatbuffers::FlatBufferBuilder &_fbb, const std::vector *out_pad = nullptr, const std::vector *stride = nullptr, int32_t input_zp = 0, int32_t weight_zp = 0, bool local_bound = false, tosa::DType acc_type = tosa::DType_UNKNOWN) { auto out_pad__ = out_pad ? _fbb.CreateVector(*out_pad) : 0; auto stride__ = stride ? _fbb.CreateVector(*stride) : 0; return tosa::CreateTransposeConvAttribute( _fbb, out_pad__, stride__, input_zp, weight_zp, local_bound, acc_type); } struct PadAttribute FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef PadAttributeBuilder Builder; enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { VT_PAD_CONST = 4 }; const ::flatbuffers::Vector *pad_const() const { return GetPointer *>(VT_PAD_CONST); } bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyOffset(verifier, VT_PAD_CONST) && verifier.VerifyVector(pad_const()) && verifier.EndTable(); } }; struct PadAttributeBuilder { typedef PadAttribute Table; ::flatbuffers::FlatBufferBuilder &fbb_; ::flatbuffers::uoffset_t start_; void add_pad_const(::flatbuffers::Offset<::flatbuffers::Vector> pad_const) { fbb_.AddOffset(PadAttribute::VT_PAD_CONST, pad_const); } explicit PadAttributeBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = ::flatbuffers::Offset(end); return o; } }; inline ::flatbuffers::Offset CreatePadAttribute( ::flatbuffers::FlatBufferBuilder &_fbb, ::flatbuffers::Offset<::flatbuffers::Vector> pad_const = 0) { PadAttributeBuilder builder_(_fbb); builder_.add_pad_const(pad_const); return builder_.Finish(); } inline ::flatbuffers::Offset CreatePadAttributeDirect( ::flatbuffers::FlatBufferBuilder &_fbb, const std::vector *pad_const = nullptr) { if (pad_const) { _fbb.ForceVectorAlignment(pad_const->size(), sizeof(uint8_t), 8); } auto pad_const__ = pad_const ? _fbb.CreateVector(*pad_const) : 0; return tosa::CreatePadAttribute( _fbb, pad_const__); } struct AxisAttribute FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef AxisAttributeBuilder Builder; enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { VT_AXIS = 4 }; int32_t axis() const { return GetField(VT_AXIS, 0); } bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_AXIS, 4) && verifier.EndTable(); } }; struct AxisAttributeBuilder { typedef AxisAttribute Table; ::flatbuffers::FlatBufferBuilder &fbb_; ::flatbuffers::uoffset_t start_; void add_axis(int32_t axis) { fbb_.AddElement(AxisAttribute::VT_AXIS, axis, 0); } explicit AxisAttributeBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = ::flatbuffers::Offset(end); return o; } }; inline ::flatbuffers::Offset CreateAxisAttribute( ::flatbuffers::FlatBufferBuilder &_fbb, int32_t axis = 0) { AxisAttributeBuilder builder_(_fbb); builder_.add_axis(axis); return builder_.Finish(); } struct ResizeAttribute FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef ResizeAttributeBuilder Builder; enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { VT_SCALE = 4, VT_OFFSET = 6, VT_BORDER = 8, VT_MODE = 10 }; const ::flatbuffers::Vector *scale() const { return GetPointer *>(VT_SCALE); } const ::flatbuffers::Vector *offset() const { return GetPointer *>(VT_OFFSET); } const ::flatbuffers::Vector *border() const { return GetPointer *>(VT_BORDER); } tosa::ResizeMode mode() const { return static_cast(GetField(VT_MODE, 0)); } bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyOffset(verifier, VT_SCALE) && verifier.VerifyVector(scale()) && VerifyOffset(verifier, VT_OFFSET) && verifier.VerifyVector(offset()) && VerifyOffset(verifier, VT_BORDER) && verifier.VerifyVector(border()) && VerifyField(verifier, VT_MODE, 4) && verifier.EndTable(); } }; struct ResizeAttributeBuilder { typedef ResizeAttribute Table; ::flatbuffers::FlatBufferBuilder &fbb_; ::flatbuffers::uoffset_t start_; void add_scale(::flatbuffers::Offset<::flatbuffers::Vector> scale) { fbb_.AddOffset(ResizeAttribute::VT_SCALE, scale); } void add_offset(::flatbuffers::Offset<::flatbuffers::Vector> offset) { fbb_.AddOffset(ResizeAttribute::VT_OFFSET, offset); } void add_border(::flatbuffers::Offset<::flatbuffers::Vector> border) { fbb_.AddOffset(ResizeAttribute::VT_BORDER, border); } void add_mode(tosa::ResizeMode mode) { fbb_.AddElement(ResizeAttribute::VT_MODE, static_cast(mode), 0); } explicit ResizeAttributeBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = ::flatbuffers::Offset(end); return o; } }; inline ::flatbuffers::Offset CreateResizeAttribute( ::flatbuffers::FlatBufferBuilder &_fbb, ::flatbuffers::Offset<::flatbuffers::Vector> scale = 0, ::flatbuffers::Offset<::flatbuffers::Vector> offset = 0, ::flatbuffers::Offset<::flatbuffers::Vector> border = 0, tosa::ResizeMode mode = tosa::ResizeMode_UNKNOWN) { ResizeAttributeBuilder builder_(_fbb); builder_.add_mode(mode); builder_.add_border(border); builder_.add_offset(offset); builder_.add_scale(scale); return builder_.Finish(); } inline ::flatbuffers::Offset CreateResizeAttributeDirect( ::flatbuffers::FlatBufferBuilder &_fbb, const std::vector *scale = nullptr, const std::vector *offset = nullptr, const std::vector *border = nullptr, tosa::ResizeMode mode = tosa::ResizeMode_UNKNOWN) { auto scale__ = scale ? _fbb.CreateVector(*scale) : 0; auto offset__ = offset ? _fbb.CreateVector(*offset) : 0; auto border__ = border ? _fbb.CreateVector(*border) : 0; return tosa::CreateResizeAttribute( _fbb, scale__, offset__, border__, mode); } struct ClampAttribute FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef ClampAttributeBuilder Builder; enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { VT_MIN_VAL = 4, VT_MAX_VAL = 6 }; const ::flatbuffers::Vector *min_val() const { return GetPointer *>(VT_MIN_VAL); } const ::flatbuffers::Vector *max_val() const { return GetPointer *>(VT_MAX_VAL); } bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyOffset(verifier, VT_MIN_VAL) && verifier.VerifyVector(min_val()) && VerifyOffset(verifier, VT_MAX_VAL) && verifier.VerifyVector(max_val()) && verifier.EndTable(); } }; struct ClampAttributeBuilder { typedef ClampAttribute Table; ::flatbuffers::FlatBufferBuilder &fbb_; ::flatbuffers::uoffset_t start_; void add_min_val(::flatbuffers::Offset<::flatbuffers::Vector> min_val) { fbb_.AddOffset(ClampAttribute::VT_MIN_VAL, min_val); } void add_max_val(::flatbuffers::Offset<::flatbuffers::Vector> max_val) { fbb_.AddOffset(ClampAttribute::VT_MAX_VAL, max_val); } explicit ClampAttributeBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = ::flatbuffers::Offset(end); return o; } }; inline ::flatbuffers::Offset CreateClampAttribute( ::flatbuffers::FlatBufferBuilder &_fbb, ::flatbuffers::Offset<::flatbuffers::Vector> min_val = 0, ::flatbuffers::Offset<::flatbuffers::Vector> max_val = 0) { ClampAttributeBuilder builder_(_fbb); builder_.add_max_val(max_val); builder_.add_min_val(min_val); return builder_.Finish(); } inline ::flatbuffers::Offset CreateClampAttributeDirect( ::flatbuffers::FlatBufferBuilder &_fbb, const std::vector *min_val = nullptr, const std::vector *max_val = nullptr) { if (min_val) { _fbb.ForceVectorAlignment(min_val->size(), sizeof(uint8_t), 8); } auto min_val__ = min_val ? _fbb.CreateVector(*min_val) : 0; if (max_val) { _fbb.ForceVectorAlignment(max_val->size(), sizeof(uint8_t), 8); } auto max_val__ = max_val ? _fbb.CreateVector(*max_val) : 0; return tosa::CreateClampAttribute( _fbb, min_val__, max_val__); } struct RescaleAttribute FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef RescaleAttributeBuilder Builder; enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { VT_INPUT_ZP = 4, VT_OUTPUT_ZP = 6, VT_SCALE32 = 8, VT_DOUBLE_ROUND = 10, VT_PER_CHANNEL = 12, VT_INPUT_UNSIGNED = 14, VT_OUTPUT_UNSIGNED = 16 }; int32_t input_zp() const { return GetField(VT_INPUT_ZP, 0); } int32_t output_zp() const { return GetField(VT_OUTPUT_ZP, 0); } bool scale32() const { return GetField(VT_SCALE32, 0) != 0; } bool double_round() const { return GetField(VT_DOUBLE_ROUND, 0) != 0; } bool per_channel() const { return GetField(VT_PER_CHANNEL, 0) != 0; } bool input_unsigned() const { return GetField(VT_INPUT_UNSIGNED, 0) != 0; } bool output_unsigned() const { return GetField(VT_OUTPUT_UNSIGNED, 0) != 0; } bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_INPUT_ZP, 4) && VerifyField(verifier, VT_OUTPUT_ZP, 4) && VerifyField(verifier, VT_SCALE32, 1) && VerifyField(verifier, VT_DOUBLE_ROUND, 1) && VerifyField(verifier, VT_PER_CHANNEL, 1) && VerifyField(verifier, VT_INPUT_UNSIGNED, 1) && VerifyField(verifier, VT_OUTPUT_UNSIGNED, 1) && verifier.EndTable(); } }; struct RescaleAttributeBuilder { typedef RescaleAttribute Table; ::flatbuffers::FlatBufferBuilder &fbb_; ::flatbuffers::uoffset_t start_; void add_input_zp(int32_t input_zp) { fbb_.AddElement(RescaleAttribute::VT_INPUT_ZP, input_zp, 0); } void add_output_zp(int32_t output_zp) { fbb_.AddElement(RescaleAttribute::VT_OUTPUT_ZP, output_zp, 0); } void add_scale32(bool scale32) { fbb_.AddElement(RescaleAttribute::VT_SCALE32, static_cast(scale32), 0); } void add_double_round(bool double_round) { fbb_.AddElement(RescaleAttribute::VT_DOUBLE_ROUND, static_cast(double_round), 0); } void add_per_channel(bool per_channel) { fbb_.AddElement(RescaleAttribute::VT_PER_CHANNEL, static_cast(per_channel), 0); } void add_input_unsigned(bool input_unsigned) { fbb_.AddElement(RescaleAttribute::VT_INPUT_UNSIGNED, static_cast(input_unsigned), 0); } void add_output_unsigned(bool output_unsigned) { fbb_.AddElement(RescaleAttribute::VT_OUTPUT_UNSIGNED, static_cast(output_unsigned), 0); } explicit RescaleAttributeBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = ::flatbuffers::Offset(end); return o; } }; inline ::flatbuffers::Offset CreateRescaleAttribute( ::flatbuffers::FlatBufferBuilder &_fbb, int32_t input_zp = 0, int32_t output_zp = 0, bool scale32 = false, bool double_round = false, bool per_channel = false, bool input_unsigned = false, bool output_unsigned = false) { RescaleAttributeBuilder builder_(_fbb); builder_.add_output_zp(output_zp); builder_.add_input_zp(input_zp); builder_.add_output_unsigned(output_unsigned); builder_.add_input_unsigned(input_unsigned); builder_.add_per_channel(per_channel); builder_.add_double_round(double_round); builder_.add_scale32(scale32); return builder_.Finish(); } struct MulAttribute FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef MulAttributeBuilder Builder; enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { VT_SHIFT = 4 }; int32_t shift() const { return GetField(VT_SHIFT, 0); } bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_SHIFT, 4) && verifier.EndTable(); } }; struct MulAttributeBuilder { typedef MulAttribute Table; ::flatbuffers::FlatBufferBuilder &fbb_; ::flatbuffers::uoffset_t start_; void add_shift(int32_t shift) { fbb_.AddElement(MulAttribute::VT_SHIFT, shift, 0); } explicit MulAttributeBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = ::flatbuffers::Offset(end); return o; } }; inline ::flatbuffers::Offset CreateMulAttribute( ::flatbuffers::FlatBufferBuilder &_fbb, int32_t shift = 0) { MulAttributeBuilder builder_(_fbb); builder_.add_shift(shift); return builder_.Finish(); } struct ArithmeticRightShiftAttribute FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef ArithmeticRightShiftAttributeBuilder Builder; enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { VT_ROUND = 4 }; bool round() const { return GetField(VT_ROUND, 0) != 0; } bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_ROUND, 1) && verifier.EndTable(); } }; struct ArithmeticRightShiftAttributeBuilder { typedef ArithmeticRightShiftAttribute Table; ::flatbuffers::FlatBufferBuilder &fbb_; ::flatbuffers::uoffset_t start_; void add_round(bool round) { fbb_.AddElement(ArithmeticRightShiftAttribute::VT_ROUND, static_cast(round), 0); } explicit ArithmeticRightShiftAttributeBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = ::flatbuffers::Offset(end); return o; } }; inline ::flatbuffers::Offset CreateArithmeticRightShiftAttribute( ::flatbuffers::FlatBufferBuilder &_fbb, bool round = false) { ArithmeticRightShiftAttributeBuilder builder_(_fbb); builder_.add_round(round); return builder_.Finish(); } struct CondIfAttribute FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef CondIfAttributeBuilder Builder; enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { VT_THEN_GRAPH = 4, VT_ELSE_GRAPH = 6 }; const ::flatbuffers::String *then_graph() const { return GetPointer(VT_THEN_GRAPH); } const ::flatbuffers::String *else_graph() const { return GetPointer(VT_ELSE_GRAPH); } bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyOffset(verifier, VT_THEN_GRAPH) && verifier.VerifyString(then_graph()) && VerifyOffset(verifier, VT_ELSE_GRAPH) && verifier.VerifyString(else_graph()) && verifier.EndTable(); } }; struct CondIfAttributeBuilder { typedef CondIfAttribute Table; ::flatbuffers::FlatBufferBuilder &fbb_; ::flatbuffers::uoffset_t start_; void add_then_graph(::flatbuffers::Offset<::flatbuffers::String> then_graph) { fbb_.AddOffset(CondIfAttribute::VT_THEN_GRAPH, then_graph); } void add_else_graph(::flatbuffers::Offset<::flatbuffers::String> else_graph) { fbb_.AddOffset(CondIfAttribute::VT_ELSE_GRAPH, else_graph); } explicit CondIfAttributeBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = ::flatbuffers::Offset(end); return o; } }; inline ::flatbuffers::Offset CreateCondIfAttribute( ::flatbuffers::FlatBufferBuilder &_fbb, ::flatbuffers::Offset<::flatbuffers::String> then_graph = 0, ::flatbuffers::Offset<::flatbuffers::String> else_graph = 0) { CondIfAttributeBuilder builder_(_fbb); builder_.add_else_graph(else_graph); builder_.add_then_graph(then_graph); return builder_.Finish(); } inline ::flatbuffers::Offset CreateCondIfAttributeDirect( ::flatbuffers::FlatBufferBuilder &_fbb, const char *then_graph = nullptr, const char *else_graph = nullptr) { auto then_graph__ = then_graph ? _fbb.CreateString(then_graph) : 0; auto else_graph__ = else_graph ? _fbb.CreateString(else_graph) : 0; return tosa::CreateCondIfAttribute( _fbb, then_graph__, else_graph__); } struct WhileLoopAttribute FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef WhileLoopAttributeBuilder Builder; enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { VT_COND_GRAPH = 4, VT_BODY_GRAPH = 6 }; const ::flatbuffers::String *cond_graph() const { return GetPointer(VT_COND_GRAPH); } const ::flatbuffers::String *body_graph() const { return GetPointer(VT_BODY_GRAPH); } bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyOffset(verifier, VT_COND_GRAPH) && verifier.VerifyString(cond_graph()) && VerifyOffset(verifier, VT_BODY_GRAPH) && verifier.VerifyString(body_graph()) && verifier.EndTable(); } }; struct WhileLoopAttributeBuilder { typedef WhileLoopAttribute Table; ::flatbuffers::FlatBufferBuilder &fbb_; ::flatbuffers::uoffset_t start_; void add_cond_graph(::flatbuffers::Offset<::flatbuffers::String> cond_graph) { fbb_.AddOffset(WhileLoopAttribute::VT_COND_GRAPH, cond_graph); } void add_body_graph(::flatbuffers::Offset<::flatbuffers::String> body_graph) { fbb_.AddOffset(WhileLoopAttribute::VT_BODY_GRAPH, body_graph); } explicit WhileLoopAttributeBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = ::flatbuffers::Offset(end); return o; } }; inline ::flatbuffers::Offset CreateWhileLoopAttribute( ::flatbuffers::FlatBufferBuilder &_fbb, ::flatbuffers::Offset<::flatbuffers::String> cond_graph = 0, ::flatbuffers::Offset<::flatbuffers::String> body_graph = 0) { WhileLoopAttributeBuilder builder_(_fbb); builder_.add_body_graph(body_graph); builder_.add_cond_graph(cond_graph); return builder_.Finish(); } inline ::flatbuffers::Offset CreateWhileLoopAttributeDirect( ::flatbuffers::FlatBufferBuilder &_fbb, const char *cond_graph = nullptr, const char *body_graph = nullptr) { auto cond_graph__ = cond_graph ? _fbb.CreateString(cond_graph) : 0; auto body_graph__ = body_graph ? _fbb.CreateString(body_graph) : 0; return tosa::CreateWhileLoopAttribute( _fbb, cond_graph__, body_graph__); } struct TransposeAttribute FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef TransposeAttributeBuilder Builder; enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { VT_PERMS = 4 }; const ::flatbuffers::Vector *perms() const { return GetPointer *>(VT_PERMS); } bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyOffset(verifier, VT_PERMS) && verifier.VerifyVector(perms()) && verifier.EndTable(); } }; struct TransposeAttributeBuilder { typedef TransposeAttribute Table; ::flatbuffers::FlatBufferBuilder &fbb_; ::flatbuffers::uoffset_t start_; void add_perms(::flatbuffers::Offset<::flatbuffers::Vector> perms) { fbb_.AddOffset(TransposeAttribute::VT_PERMS, perms); } explicit TransposeAttributeBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = ::flatbuffers::Offset(end); return o; } }; inline ::flatbuffers::Offset CreateTransposeAttribute( ::flatbuffers::FlatBufferBuilder &_fbb, ::flatbuffers::Offset<::flatbuffers::Vector> perms = 0) { TransposeAttributeBuilder builder_(_fbb); builder_.add_perms(perms); return builder_.Finish(); } inline ::flatbuffers::Offset CreateTransposeAttributeDirect( ::flatbuffers::FlatBufferBuilder &_fbb, const std::vector *perms = nullptr) { auto perms__ = perms ? _fbb.CreateVector(*perms) : 0; return tosa::CreateTransposeAttribute( _fbb, perms__); } struct TableAttribute FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef TableAttributeBuilder Builder; enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { VT_TABLE = 4 }; const ::flatbuffers::Vector *table() const { return GetPointer *>(VT_TABLE); } bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyOffset(verifier, VT_TABLE) && verifier.VerifyVector(table()) && verifier.EndTable(); } }; struct TableAttributeBuilder { typedef TableAttribute Table; ::flatbuffers::FlatBufferBuilder &fbb_; ::flatbuffers::uoffset_t start_; void add_table(::flatbuffers::Offset<::flatbuffers::Vector> table) { fbb_.AddOffset(TableAttribute::VT_TABLE, table); } explicit TableAttributeBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = ::flatbuffers::Offset(end); return o; } }; inline ::flatbuffers::Offset CreateTableAttribute( ::flatbuffers::FlatBufferBuilder &_fbb, ::flatbuffers::Offset<::flatbuffers::Vector> table = 0) { TableAttributeBuilder builder_(_fbb); builder_.add_table(table); return builder_.Finish(); } inline ::flatbuffers::Offset CreateTableAttributeDirect( ::flatbuffers::FlatBufferBuilder &_fbb, const std::vector *table = nullptr) { auto table__ = table ? _fbb.CreateVector(*table) : 0; return tosa::CreateTableAttribute( _fbb, table__); } struct MatMulAttribute FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef MatMulAttributeBuilder Builder; enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { VT_A_ZP = 4, VT_B_ZP = 6 }; int32_t a_zp() const { return GetField(VT_A_ZP, 0); } int32_t b_zp() const { return GetField(VT_B_ZP, 0); } bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_A_ZP, 4) && VerifyField(verifier, VT_B_ZP, 4) && verifier.EndTable(); } }; struct MatMulAttributeBuilder { typedef MatMulAttribute Table; ::flatbuffers::FlatBufferBuilder &fbb_; ::flatbuffers::uoffset_t start_; void add_a_zp(int32_t a_zp) { fbb_.AddElement(MatMulAttribute::VT_A_ZP, a_zp, 0); } void add_b_zp(int32_t b_zp) { fbb_.AddElement(MatMulAttribute::VT_B_ZP, b_zp, 0); } explicit MatMulAttributeBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = ::flatbuffers::Offset(end); return o; } }; inline ::flatbuffers::Offset CreateMatMulAttribute( ::flatbuffers::FlatBufferBuilder &_fbb, int32_t a_zp = 0, int32_t b_zp = 0) { MatMulAttributeBuilder builder_(_fbb); builder_.add_b_zp(b_zp); builder_.add_a_zp(a_zp); return builder_.Finish(); } struct FullyConnectedAttribute FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef FullyConnectedAttributeBuilder Builder; enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { VT_INPUT_ZP = 4, VT_WEIGHT_ZP = 6 }; int32_t input_zp() const { return GetField(VT_INPUT_ZP, 0); } int32_t weight_zp() const { return GetField(VT_WEIGHT_ZP, 0); } bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_INPUT_ZP, 4) && VerifyField(verifier, VT_WEIGHT_ZP, 4) && verifier.EndTable(); } }; struct FullyConnectedAttributeBuilder { typedef FullyConnectedAttribute Table; ::flatbuffers::FlatBufferBuilder &fbb_; ::flatbuffers::uoffset_t start_; void add_input_zp(int32_t input_zp) { fbb_.AddElement(FullyConnectedAttribute::VT_INPUT_ZP, input_zp, 0); } void add_weight_zp(int32_t weight_zp) { fbb_.AddElement(FullyConnectedAttribute::VT_WEIGHT_ZP, weight_zp, 0); } explicit FullyConnectedAttributeBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = ::flatbuffers::Offset(end); return o; } }; inline ::flatbuffers::Offset CreateFullyConnectedAttribute( ::flatbuffers::FlatBufferBuilder &_fbb, int32_t input_zp = 0, int32_t weight_zp = 0) { FullyConnectedAttributeBuilder builder_(_fbb); builder_.add_weight_zp(weight_zp); builder_.add_input_zp(input_zp); return builder_.Finish(); } struct NegateAttribute FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef NegateAttributeBuilder Builder; enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { VT_INPUT1_ZP = 4, VT_OUTPUT_ZP = 6 }; int32_t input1_zp() const { return GetField(VT_INPUT1_ZP, 0); } int32_t output_zp() const { return GetField(VT_OUTPUT_ZP, 0); } bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_INPUT1_ZP, 4) && VerifyField(verifier, VT_OUTPUT_ZP, 4) && verifier.EndTable(); } }; struct NegateAttributeBuilder { typedef NegateAttribute Table; ::flatbuffers::FlatBufferBuilder &fbb_; ::flatbuffers::uoffset_t start_; void add_input1_zp(int32_t input1_zp) { fbb_.AddElement(NegateAttribute::VT_INPUT1_ZP, input1_zp, 0); } void add_output_zp(int32_t output_zp) { fbb_.AddElement(NegateAttribute::VT_OUTPUT_ZP, output_zp, 0); } explicit NegateAttributeBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = ::flatbuffers::Offset(end); return o; } }; inline ::flatbuffers::Offset CreateNegateAttribute( ::flatbuffers::FlatBufferBuilder &_fbb, int32_t input1_zp = 0, int32_t output_zp = 0) { NegateAttributeBuilder builder_(_fbb); builder_.add_output_zp(output_zp); builder_.add_input1_zp(input1_zp); return builder_.Finish(); } struct CustomAttribute FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef CustomAttributeBuilder Builder; enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { VT_OPERATOR_NAME = 4, VT_DOMAIN_NAME = 6, VT_IMPLEMENTATION_ATTRS = 8 }; const ::flatbuffers::String *operator_name() const { return GetPointer(VT_OPERATOR_NAME); } const ::flatbuffers::String *domain_name() const { return GetPointer(VT_DOMAIN_NAME); } const ::flatbuffers::Vector *implementation_attrs() const { return GetPointer *>(VT_IMPLEMENTATION_ATTRS); } bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyOffset(verifier, VT_OPERATOR_NAME) && verifier.VerifyString(operator_name()) && VerifyOffset(verifier, VT_DOMAIN_NAME) && verifier.VerifyString(domain_name()) && VerifyOffset(verifier, VT_IMPLEMENTATION_ATTRS) && verifier.VerifyVector(implementation_attrs()) && verifier.EndTable(); } }; struct CustomAttributeBuilder { typedef CustomAttribute Table; ::flatbuffers::FlatBufferBuilder &fbb_; ::flatbuffers::uoffset_t start_; void add_operator_name(::flatbuffers::Offset<::flatbuffers::String> operator_name) { fbb_.AddOffset(CustomAttribute::VT_OPERATOR_NAME, operator_name); } void add_domain_name(::flatbuffers::Offset<::flatbuffers::String> domain_name) { fbb_.AddOffset(CustomAttribute::VT_DOMAIN_NAME, domain_name); } void add_implementation_attrs(::flatbuffers::Offset<::flatbuffers::Vector> implementation_attrs) { fbb_.AddOffset(CustomAttribute::VT_IMPLEMENTATION_ATTRS, implementation_attrs); } explicit CustomAttributeBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = ::flatbuffers::Offset(end); return o; } }; inline ::flatbuffers::Offset CreateCustomAttribute( ::flatbuffers::FlatBufferBuilder &_fbb, ::flatbuffers::Offset<::flatbuffers::String> operator_name = 0, ::flatbuffers::Offset<::flatbuffers::String> domain_name = 0, ::flatbuffers::Offset<::flatbuffers::Vector> implementation_attrs = 0) { CustomAttributeBuilder builder_(_fbb); builder_.add_implementation_attrs(implementation_attrs); builder_.add_domain_name(domain_name); builder_.add_operator_name(operator_name); return builder_.Finish(); } inline ::flatbuffers::Offset CreateCustomAttributeDirect( ::flatbuffers::FlatBufferBuilder &_fbb, const char *operator_name = nullptr, const char *domain_name = nullptr, const std::vector *implementation_attrs = nullptr) { auto operator_name__ = operator_name ? _fbb.CreateString(operator_name) : 0; auto domain_name__ = domain_name ? _fbb.CreateString(domain_name) : 0; auto implementation_attrs__ = implementation_attrs ? _fbb.CreateVector(*implementation_attrs) : 0; return tosa::CreateCustomAttribute( _fbb, operator_name__, domain_name__, implementation_attrs__); } struct FFTAttribute FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef FFTAttributeBuilder Builder; enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { VT_INVERSE = 4, VT_LOCAL_BOUND = 6 }; bool inverse() const { return GetField(VT_INVERSE, 0) != 0; } bool local_bound() const { return GetField(VT_LOCAL_BOUND, 0) != 0; } bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_INVERSE, 1) && VerifyField(verifier, VT_LOCAL_BOUND, 1) && verifier.EndTable(); } }; struct FFTAttributeBuilder { typedef FFTAttribute Table; ::flatbuffers::FlatBufferBuilder &fbb_; ::flatbuffers::uoffset_t start_; void add_inverse(bool inverse) { fbb_.AddElement(FFTAttribute::VT_INVERSE, static_cast(inverse), 0); } void add_local_bound(bool local_bound) { fbb_.AddElement(FFTAttribute::VT_LOCAL_BOUND, static_cast(local_bound), 0); } explicit FFTAttributeBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = ::flatbuffers::Offset(end); return o; } }; inline ::flatbuffers::Offset CreateFFTAttribute( ::flatbuffers::FlatBufferBuilder &_fbb, bool inverse = false, bool local_bound = false) { FFTAttributeBuilder builder_(_fbb); builder_.add_local_bound(local_bound); builder_.add_inverse(inverse); return builder_.Finish(); } struct RFFTAttribute FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef RFFTAttributeBuilder Builder; enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { VT_LOCAL_BOUND = 4 }; bool local_bound() const { return GetField(VT_LOCAL_BOUND, 0) != 0; } bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_LOCAL_BOUND, 1) && verifier.EndTable(); } }; struct RFFTAttributeBuilder { typedef RFFTAttribute Table; ::flatbuffers::FlatBufferBuilder &fbb_; ::flatbuffers::uoffset_t start_; void add_local_bound(bool local_bound) { fbb_.AddElement(RFFTAttribute::VT_LOCAL_BOUND, static_cast(local_bound), 0); } explicit RFFTAttributeBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = ::flatbuffers::Offset(end); return o; } }; inline ::flatbuffers::Offset CreateRFFTAttribute( ::flatbuffers::FlatBufferBuilder &_fbb, bool local_bound = false) { RFFTAttributeBuilder builder_(_fbb); builder_.add_local_bound(local_bound); return builder_.Finish(); } struct Version FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef VersionBuilder Builder; enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { VT__MAJOR = 4, VT__MINOR = 6, VT__PATCH = 8, VT__DRAFT = 10 }; int32_t _major() const { return GetField(VT__MAJOR, -1); } int32_t _minor() const { return GetField(VT__MINOR, -1); } int32_t _patch() const { return GetField(VT__PATCH, -1); } bool _draft() const { return GetField(VT__DRAFT, 1) != 0; } bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT__MAJOR, 4) && VerifyField(verifier, VT__MINOR, 4) && VerifyField(verifier, VT__PATCH, 4) && VerifyField(verifier, VT__DRAFT, 1) && verifier.EndTable(); } }; struct VersionBuilder { typedef Version Table; ::flatbuffers::FlatBufferBuilder &fbb_; ::flatbuffers::uoffset_t start_; void add__major(int32_t _major) { fbb_.AddElement(Version::VT__MAJOR, _major, -1); } void add__minor(int32_t _minor) { fbb_.AddElement(Version::VT__MINOR, _minor, -1); } void add__patch(int32_t _patch) { fbb_.AddElement(Version::VT__PATCH, _patch, -1); } void add__draft(bool _draft) { fbb_.AddElement(Version::VT__DRAFT, static_cast(_draft), 1); } explicit VersionBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = ::flatbuffers::Offset(end); return o; } }; inline ::flatbuffers::Offset CreateVersion( ::flatbuffers::FlatBufferBuilder &_fbb, int32_t _major = -1, int32_t _minor = -1, int32_t _patch = -1, bool _draft = true) { VersionBuilder builder_(_fbb); builder_.add__patch(_patch); builder_.add__minor(_minor); builder_.add__major(_major); builder_.add__draft(_draft); return builder_.Finish(); } struct TosaTensor FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef TosaTensorBuilder Builder; enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { VT_NAME = 4, VT_SHAPE = 6, VT_TYPE = 8, VT_DATA = 10, VT_VARIABLE = 12, VT_IS_UNRANKED = 14, VT_VARIABLE_NAME = 16 }; const ::flatbuffers::String *name() const { return GetPointer(VT_NAME); } const ::flatbuffers::Vector *shape() const { return GetPointer *>(VT_SHAPE); } tosa::DType type() const { return static_cast(GetField(VT_TYPE, 0)); } const ::flatbuffers::Vector *data() const { return GetPointer *>(VT_DATA); } bool variable() const { return GetField(VT_VARIABLE, 0) != 0; } bool is_unranked() const { return GetField(VT_IS_UNRANKED, 0) != 0; } const ::flatbuffers::String *variable_name() const { return GetPointer(VT_VARIABLE_NAME); } bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyOffset(verifier, VT_NAME) && verifier.VerifyString(name()) && VerifyOffset(verifier, VT_SHAPE) && verifier.VerifyVector(shape()) && VerifyField(verifier, VT_TYPE, 4) && VerifyOffset(verifier, VT_DATA) && verifier.VerifyVector(data()) && VerifyField(verifier, VT_VARIABLE, 1) && VerifyField(verifier, VT_IS_UNRANKED, 1) && VerifyOffset(verifier, VT_VARIABLE_NAME) && verifier.VerifyString(variable_name()) && verifier.EndTable(); } }; struct TosaTensorBuilder { typedef TosaTensor Table; ::flatbuffers::FlatBufferBuilder &fbb_; ::flatbuffers::uoffset_t start_; void add_name(::flatbuffers::Offset<::flatbuffers::String> name) { fbb_.AddOffset(TosaTensor::VT_NAME, name); } void add_shape(::flatbuffers::Offset<::flatbuffers::Vector> shape) { fbb_.AddOffset(TosaTensor::VT_SHAPE, shape); } void add_type(tosa::DType type) { fbb_.AddElement(TosaTensor::VT_TYPE, static_cast(type), 0); } void add_data(::flatbuffers::Offset<::flatbuffers::Vector> data) { fbb_.AddOffset(TosaTensor::VT_DATA, data); } void add_variable(bool variable) { fbb_.AddElement(TosaTensor::VT_VARIABLE, static_cast(variable), 0); } void add_is_unranked(bool is_unranked) { fbb_.AddElement(TosaTensor::VT_IS_UNRANKED, static_cast(is_unranked), 0); } void add_variable_name(::flatbuffers::Offset<::flatbuffers::String> variable_name) { fbb_.AddOffset(TosaTensor::VT_VARIABLE_NAME, variable_name); } explicit TosaTensorBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = ::flatbuffers::Offset(end); return o; } }; inline ::flatbuffers::Offset CreateTosaTensor( ::flatbuffers::FlatBufferBuilder &_fbb, ::flatbuffers::Offset<::flatbuffers::String> name = 0, ::flatbuffers::Offset<::flatbuffers::Vector> shape = 0, tosa::DType type = tosa::DType_UNKNOWN, ::flatbuffers::Offset<::flatbuffers::Vector> data = 0, bool variable = false, bool is_unranked = false, ::flatbuffers::Offset<::flatbuffers::String> variable_name = 0) { TosaTensorBuilder builder_(_fbb); builder_.add_variable_name(variable_name); builder_.add_data(data); builder_.add_type(type); builder_.add_shape(shape); builder_.add_name(name); builder_.add_is_unranked(is_unranked); builder_.add_variable(variable); return builder_.Finish(); } inline ::flatbuffers::Offset CreateTosaTensorDirect( ::flatbuffers::FlatBufferBuilder &_fbb, const char *name = nullptr, const std::vector *shape = nullptr, tosa::DType type = tosa::DType_UNKNOWN, const std::vector *data = nullptr, bool variable = false, bool is_unranked = false, const char *variable_name = nullptr) { auto name__ = name ? _fbb.CreateString(name) : 0; auto shape__ = shape ? _fbb.CreateVector(*shape) : 0; if (data) { _fbb.ForceVectorAlignment(data->size(), sizeof(uint8_t), 8); } auto data__ = data ? _fbb.CreateVector(*data) : 0; auto variable_name__ = variable_name ? _fbb.CreateString(variable_name) : 0; return tosa::CreateTosaTensor( _fbb, name__, shape__, type, data__, variable, is_unranked, variable_name__); } struct TosaOperator FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef TosaOperatorBuilder Builder; enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { VT_OP = 4, VT_ATTRIBUTE_TYPE = 6, VT_ATTRIBUTE = 8, VT_INPUTS = 10, VT_OUTPUTS = 12 }; tosa::Op op() const { return static_cast(GetField(VT_OP, 0)); } tosa::Attribute attribute_type() const { return static_cast(GetField(VT_ATTRIBUTE_TYPE, 0)); } const void *attribute() const { return GetPointer(VT_ATTRIBUTE); } template const T *attribute_as() const; const tosa::PoolAttribute *attribute_as_PoolAttribute() const { return attribute_type() == tosa::Attribute_PoolAttribute ? static_cast(attribute()) : nullptr; } const tosa::ConvAttribute *attribute_as_ConvAttribute() const { return attribute_type() == tosa::Attribute_ConvAttribute ? static_cast(attribute()) : nullptr; } const tosa::TransposeConvAttribute *attribute_as_TransposeConvAttribute() const { return attribute_type() == tosa::Attribute_TransposeConvAttribute ? static_cast(attribute()) : nullptr; } const tosa::PadAttribute *attribute_as_PadAttribute() const { return attribute_type() == tosa::Attribute_PadAttribute ? static_cast(attribute()) : nullptr; } const tosa::AxisAttribute *attribute_as_AxisAttribute() const { return attribute_type() == tosa::Attribute_AxisAttribute ? static_cast(attribute()) : nullptr; } const tosa::ResizeAttribute *attribute_as_ResizeAttribute() const { return attribute_type() == tosa::Attribute_ResizeAttribute ? static_cast(attribute()) : nullptr; } const tosa::ClampAttribute *attribute_as_ClampAttribute() const { return attribute_type() == tosa::Attribute_ClampAttribute ? static_cast(attribute()) : nullptr; } const tosa::RescaleAttribute *attribute_as_RescaleAttribute() const { return attribute_type() == tosa::Attribute_RescaleAttribute ? static_cast(attribute()) : nullptr; } const tosa::MulAttribute *attribute_as_MulAttribute() const { return attribute_type() == tosa::Attribute_MulAttribute ? static_cast(attribute()) : nullptr; } const tosa::ArithmeticRightShiftAttribute *attribute_as_ArithmeticRightShiftAttribute() const { return attribute_type() == tosa::Attribute_ArithmeticRightShiftAttribute ? static_cast(attribute()) : nullptr; } const tosa::CondIfAttribute *attribute_as_CondIfAttribute() const { return attribute_type() == tosa::Attribute_CondIfAttribute ? static_cast(attribute()) : nullptr; } const tosa::WhileLoopAttribute *attribute_as_WhileLoopAttribute() const { return attribute_type() == tosa::Attribute_WhileLoopAttribute ? static_cast(attribute()) : nullptr; } const tosa::TransposeAttribute *attribute_as_TransposeAttribute() const { return attribute_type() == tosa::Attribute_TransposeAttribute ? static_cast(attribute()) : nullptr; } const tosa::TableAttribute *attribute_as_TableAttribute() const { return attribute_type() == tosa::Attribute_TableAttribute ? static_cast(attribute()) : nullptr; } const tosa::MatMulAttribute *attribute_as_MatMulAttribute() const { return attribute_type() == tosa::Attribute_MatMulAttribute ? static_cast(attribute()) : nullptr; } const tosa::FullyConnectedAttribute *attribute_as_FullyConnectedAttribute() const { return attribute_type() == tosa::Attribute_FullyConnectedAttribute ? static_cast(attribute()) : nullptr; } const tosa::NegateAttribute *attribute_as_NegateAttribute() const { return attribute_type() == tosa::Attribute_NegateAttribute ? static_cast(attribute()) : nullptr; } const tosa::CustomAttribute *attribute_as_CustomAttribute() const { return attribute_type() == tosa::Attribute_CustomAttribute ? static_cast(attribute()) : nullptr; } const tosa::FFTAttribute *attribute_as_FFTAttribute() const { return attribute_type() == tosa::Attribute_FFTAttribute ? static_cast(attribute()) : nullptr; } const tosa::RFFTAttribute *attribute_as_RFFTAttribute() const { return attribute_type() == tosa::Attribute_RFFTAttribute ? static_cast(attribute()) : nullptr; } const ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *inputs() const { return GetPointer> *>(VT_INPUTS); } const ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *outputs() const { return GetPointer> *>(VT_OUTPUTS); } bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_OP, 4) && VerifyField(verifier, VT_ATTRIBUTE_TYPE, 1) && VerifyOffset(verifier, VT_ATTRIBUTE) && VerifyAttribute(verifier, attribute(), attribute_type()) && VerifyOffset(verifier, VT_INPUTS) && verifier.VerifyVector(inputs()) && verifier.VerifyVectorOfStrings(inputs()) && VerifyOffset(verifier, VT_OUTPUTS) && verifier.VerifyVector(outputs()) && verifier.VerifyVectorOfStrings(outputs()) && verifier.EndTable(); } }; template<> inline const tosa::PoolAttribute *TosaOperator::attribute_as() const { return attribute_as_PoolAttribute(); } template<> inline const tosa::ConvAttribute *TosaOperator::attribute_as() const { return attribute_as_ConvAttribute(); } template<> inline const tosa::TransposeConvAttribute *TosaOperator::attribute_as() const { return attribute_as_TransposeConvAttribute(); } template<> inline const tosa::PadAttribute *TosaOperator::attribute_as() const { return attribute_as_PadAttribute(); } template<> inline const tosa::AxisAttribute *TosaOperator::attribute_as() const { return attribute_as_AxisAttribute(); } template<> inline const tosa::ResizeAttribute *TosaOperator::attribute_as() const { return attribute_as_ResizeAttribute(); } template<> inline const tosa::ClampAttribute *TosaOperator::attribute_as() const { return attribute_as_ClampAttribute(); } template<> inline const tosa::RescaleAttribute *TosaOperator::attribute_as() const { return attribute_as_RescaleAttribute(); } template<> inline const tosa::MulAttribute *TosaOperator::attribute_as() const { return attribute_as_MulAttribute(); } template<> inline const tosa::ArithmeticRightShiftAttribute *TosaOperator::attribute_as() const { return attribute_as_ArithmeticRightShiftAttribute(); } template<> inline const tosa::CondIfAttribute *TosaOperator::attribute_as() const { return attribute_as_CondIfAttribute(); } template<> inline const tosa::WhileLoopAttribute *TosaOperator::attribute_as() const { return attribute_as_WhileLoopAttribute(); } template<> inline const tosa::TransposeAttribute *TosaOperator::attribute_as() const { return attribute_as_TransposeAttribute(); } template<> inline const tosa::TableAttribute *TosaOperator::attribute_as() const { return attribute_as_TableAttribute(); } template<> inline const tosa::MatMulAttribute *TosaOperator::attribute_as() const { return attribute_as_MatMulAttribute(); } template<> inline const tosa::FullyConnectedAttribute *TosaOperator::attribute_as() const { return attribute_as_FullyConnectedAttribute(); } template<> inline const tosa::NegateAttribute *TosaOperator::attribute_as() const { return attribute_as_NegateAttribute(); } template<> inline const tosa::CustomAttribute *TosaOperator::attribute_as() const { return attribute_as_CustomAttribute(); } template<> inline const tosa::FFTAttribute *TosaOperator::attribute_as() const { return attribute_as_FFTAttribute(); } template<> inline const tosa::RFFTAttribute *TosaOperator::attribute_as() const { return attribute_as_RFFTAttribute(); } struct TosaOperatorBuilder { typedef TosaOperator Table; ::flatbuffers::FlatBufferBuilder &fbb_; ::flatbuffers::uoffset_t start_; void add_op(tosa::Op op) { fbb_.AddElement(TosaOperator::VT_OP, static_cast(op), 0); } void add_attribute_type(tosa::Attribute attribute_type) { fbb_.AddElement(TosaOperator::VT_ATTRIBUTE_TYPE, static_cast(attribute_type), 0); } void add_attribute(::flatbuffers::Offset attribute) { fbb_.AddOffset(TosaOperator::VT_ATTRIBUTE, attribute); } void add_inputs(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> inputs) { fbb_.AddOffset(TosaOperator::VT_INPUTS, inputs); } void add_outputs(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> outputs) { fbb_.AddOffset(TosaOperator::VT_OUTPUTS, outputs); } explicit TosaOperatorBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = ::flatbuffers::Offset(end); return o; } }; inline ::flatbuffers::Offset CreateTosaOperator( ::flatbuffers::FlatBufferBuilder &_fbb, tosa::Op op = tosa::Op_UNKNOWN, tosa::Attribute attribute_type = tosa::Attribute_NONE, ::flatbuffers::Offset attribute = 0, ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> inputs = 0, ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> outputs = 0) { TosaOperatorBuilder builder_(_fbb); builder_.add_outputs(outputs); builder_.add_inputs(inputs); builder_.add_attribute(attribute); builder_.add_op(op); builder_.add_attribute_type(attribute_type); return builder_.Finish(); } inline ::flatbuffers::Offset CreateTosaOperatorDirect( ::flatbuffers::FlatBufferBuilder &_fbb, tosa::Op op = tosa::Op_UNKNOWN, tosa::Attribute attribute_type = tosa::Attribute_NONE, ::flatbuffers::Offset attribute = 0, const std::vector<::flatbuffers::Offset<::flatbuffers::String>> *inputs = nullptr, const std::vector<::flatbuffers::Offset<::flatbuffers::String>> *outputs = nullptr) { auto inputs__ = inputs ? _fbb.CreateVector<::flatbuffers::Offset<::flatbuffers::String>>(*inputs) : 0; auto outputs__ = outputs ? _fbb.CreateVector<::flatbuffers::Offset<::flatbuffers::String>>(*outputs) : 0; return tosa::CreateTosaOperator( _fbb, op, attribute_type, attribute, inputs__, outputs__); } struct TosaBasicBlock FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef TosaBasicBlockBuilder Builder; enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { VT_NAME = 4, VT_OPERATORS = 6, VT_TENSORS = 8, VT_INPUTS = 10, VT_OUTPUTS = 12 }; const ::flatbuffers::String *name() const { return GetPointer(VT_NAME); } const ::flatbuffers::Vector<::flatbuffers::Offset> *operators() const { return GetPointer> *>(VT_OPERATORS); } const ::flatbuffers::Vector<::flatbuffers::Offset> *tensors() const { return GetPointer> *>(VT_TENSORS); } const ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *inputs() const { return GetPointer> *>(VT_INPUTS); } const ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *outputs() const { return GetPointer> *>(VT_OUTPUTS); } bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyOffset(verifier, VT_NAME) && verifier.VerifyString(name()) && VerifyOffset(verifier, VT_OPERATORS) && verifier.VerifyVector(operators()) && verifier.VerifyVectorOfTables(operators()) && VerifyOffset(verifier, VT_TENSORS) && verifier.VerifyVector(tensors()) && verifier.VerifyVectorOfTables(tensors()) && VerifyOffset(verifier, VT_INPUTS) && verifier.VerifyVector(inputs()) && verifier.VerifyVectorOfStrings(inputs()) && VerifyOffset(verifier, VT_OUTPUTS) && verifier.VerifyVector(outputs()) && verifier.VerifyVectorOfStrings(outputs()) && verifier.EndTable(); } }; struct TosaBasicBlockBuilder { typedef TosaBasicBlock Table; ::flatbuffers::FlatBufferBuilder &fbb_; ::flatbuffers::uoffset_t start_; void add_name(::flatbuffers::Offset<::flatbuffers::String> name) { fbb_.AddOffset(TosaBasicBlock::VT_NAME, name); } void add_operators(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> operators) { fbb_.AddOffset(TosaBasicBlock::VT_OPERATORS, operators); } void add_tensors(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> tensors) { fbb_.AddOffset(TosaBasicBlock::VT_TENSORS, tensors); } void add_inputs(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> inputs) { fbb_.AddOffset(TosaBasicBlock::VT_INPUTS, inputs); } void add_outputs(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> outputs) { fbb_.AddOffset(TosaBasicBlock::VT_OUTPUTS, outputs); } explicit TosaBasicBlockBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = ::flatbuffers::Offset(end); return o; } }; inline ::flatbuffers::Offset CreateTosaBasicBlock( ::flatbuffers::FlatBufferBuilder &_fbb, ::flatbuffers::Offset<::flatbuffers::String> name = 0, ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> operators = 0, ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> tensors = 0, ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> inputs = 0, ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> outputs = 0) { TosaBasicBlockBuilder builder_(_fbb); builder_.add_outputs(outputs); builder_.add_inputs(inputs); builder_.add_tensors(tensors); builder_.add_operators(operators); builder_.add_name(name); return builder_.Finish(); } inline ::flatbuffers::Offset CreateTosaBasicBlockDirect( ::flatbuffers::FlatBufferBuilder &_fbb, const char *name = nullptr, const std::vector<::flatbuffers::Offset> *operators = nullptr, const std::vector<::flatbuffers::Offset> *tensors = nullptr, const std::vector<::flatbuffers::Offset<::flatbuffers::String>> *inputs = nullptr, const std::vector<::flatbuffers::Offset<::flatbuffers::String>> *outputs = nullptr) { auto name__ = name ? _fbb.CreateString(name) : 0; auto operators__ = operators ? _fbb.CreateVector<::flatbuffers::Offset>(*operators) : 0; auto tensors__ = tensors ? _fbb.CreateVector<::flatbuffers::Offset>(*tensors) : 0; auto inputs__ = inputs ? _fbb.CreateVector<::flatbuffers::Offset<::flatbuffers::String>>(*inputs) : 0; auto outputs__ = outputs ? _fbb.CreateVector<::flatbuffers::Offset<::flatbuffers::String>>(*outputs) : 0; return tosa::CreateTosaBasicBlock( _fbb, name__, operators__, tensors__, inputs__, outputs__); } struct TosaRegion FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef TosaRegionBuilder Builder; enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { VT_NAME = 4, VT_BLOCKS = 6 }; const ::flatbuffers::String *name() const { return GetPointer(VT_NAME); } const ::flatbuffers::Vector<::flatbuffers::Offset> *blocks() const { return GetPointer> *>(VT_BLOCKS); } bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyOffset(verifier, VT_NAME) && verifier.VerifyString(name()) && VerifyOffset(verifier, VT_BLOCKS) && verifier.VerifyVector(blocks()) && verifier.VerifyVectorOfTables(blocks()) && verifier.EndTable(); } }; struct TosaRegionBuilder { typedef TosaRegion Table; ::flatbuffers::FlatBufferBuilder &fbb_; ::flatbuffers::uoffset_t start_; void add_name(::flatbuffers::Offset<::flatbuffers::String> name) { fbb_.AddOffset(TosaRegion::VT_NAME, name); } void add_blocks(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> blocks) { fbb_.AddOffset(TosaRegion::VT_BLOCKS, blocks); } explicit TosaRegionBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = ::flatbuffers::Offset(end); return o; } }; inline ::flatbuffers::Offset CreateTosaRegion( ::flatbuffers::FlatBufferBuilder &_fbb, ::flatbuffers::Offset<::flatbuffers::String> name = 0, ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> blocks = 0) { TosaRegionBuilder builder_(_fbb); builder_.add_blocks(blocks); builder_.add_name(name); return builder_.Finish(); } inline ::flatbuffers::Offset CreateTosaRegionDirect( ::flatbuffers::FlatBufferBuilder &_fbb, const char *name = nullptr, const std::vector<::flatbuffers::Offset> *blocks = nullptr) { auto name__ = name ? _fbb.CreateString(name) : 0; auto blocks__ = blocks ? _fbb.CreateVector<::flatbuffers::Offset>(*blocks) : 0; return tosa::CreateTosaRegion( _fbb, name__, blocks__); } struct TosaGraph FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef TosaGraphBuilder Builder; enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { VT_VERSION = 4, VT_REGIONS = 6 }; const tosa::Version *version() const { return GetPointer(VT_VERSION); } const ::flatbuffers::Vector<::flatbuffers::Offset> *regions() const { return GetPointer> *>(VT_REGIONS); } bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyOffsetRequired(verifier, VT_VERSION) && verifier.VerifyTable(version()) && VerifyOffset(verifier, VT_REGIONS) && verifier.VerifyVector(regions()) && verifier.VerifyVectorOfTables(regions()) && verifier.EndTable(); } }; struct TosaGraphBuilder { typedef TosaGraph Table; ::flatbuffers::FlatBufferBuilder &fbb_; ::flatbuffers::uoffset_t start_; void add_version(::flatbuffers::Offset version) { fbb_.AddOffset(TosaGraph::VT_VERSION, version); } void add_regions(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> regions) { fbb_.AddOffset(TosaGraph::VT_REGIONS, regions); } explicit TosaGraphBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = ::flatbuffers::Offset(end); fbb_.Required(o, TosaGraph::VT_VERSION); return o; } }; inline ::flatbuffers::Offset CreateTosaGraph( ::flatbuffers::FlatBufferBuilder &_fbb, ::flatbuffers::Offset version = 0, ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> regions = 0) { TosaGraphBuilder builder_(_fbb); builder_.add_regions(regions); builder_.add_version(version); return builder_.Finish(); } inline ::flatbuffers::Offset CreateTosaGraphDirect( ::flatbuffers::FlatBufferBuilder &_fbb, ::flatbuffers::Offset version = 0, const std::vector<::flatbuffers::Offset> *regions = nullptr) { auto regions__ = regions ? _fbb.CreateVector<::flatbuffers::Offset>(*regions) : 0; return tosa::CreateTosaGraph( _fbb, version, regions__); } inline bool VerifyAttribute(::flatbuffers::Verifier &verifier, const void *obj, Attribute type) { switch (type) { case Attribute_NONE: { return true; } case Attribute_PoolAttribute: { auto ptr = reinterpret_cast(obj); return verifier.VerifyTable(ptr); } case Attribute_ConvAttribute: { auto ptr = reinterpret_cast(obj); return verifier.VerifyTable(ptr); } case Attribute_TransposeConvAttribute: { auto ptr = reinterpret_cast(obj); return verifier.VerifyTable(ptr); } case Attribute_PadAttribute: { auto ptr = reinterpret_cast(obj); return verifier.VerifyTable(ptr); } case Attribute_AxisAttribute: { auto ptr = reinterpret_cast(obj); return verifier.VerifyTable(ptr); } case Attribute_ResizeAttribute: { auto ptr = reinterpret_cast(obj); return verifier.VerifyTable(ptr); } case Attribute_ClampAttribute: { auto ptr = reinterpret_cast(obj); return verifier.VerifyTable(ptr); } case Attribute_RescaleAttribute: { auto ptr = reinterpret_cast(obj); return verifier.VerifyTable(ptr); } case Attribute_MulAttribute: { auto ptr = reinterpret_cast(obj); return verifier.VerifyTable(ptr); } case Attribute_ArithmeticRightShiftAttribute: { auto ptr = reinterpret_cast(obj); return verifier.VerifyTable(ptr); } case Attribute_CondIfAttribute: { auto ptr = reinterpret_cast(obj); return verifier.VerifyTable(ptr); } case Attribute_WhileLoopAttribute: { auto ptr = reinterpret_cast(obj); return verifier.VerifyTable(ptr); } case Attribute_TransposeAttribute: { auto ptr = reinterpret_cast(obj); return verifier.VerifyTable(ptr); } case Attribute_TableAttribute: { auto ptr = reinterpret_cast(obj); return verifier.VerifyTable(ptr); } case Attribute_MatMulAttribute: { auto ptr = reinterpret_cast(obj); return verifier.VerifyTable(ptr); } case Attribute_FullyConnectedAttribute: { auto ptr = reinterpret_cast(obj); return verifier.VerifyTable(ptr); } case Attribute_NegateAttribute: { auto ptr = reinterpret_cast(obj); return verifier.VerifyTable(ptr); } case Attribute_CustomAttribute: { auto ptr = reinterpret_cast(obj); return verifier.VerifyTable(ptr); } case Attribute_FFTAttribute: { auto ptr = reinterpret_cast(obj); return verifier.VerifyTable(ptr); } case Attribute_RFFTAttribute: { auto ptr = reinterpret_cast(obj); return verifier.VerifyTable(ptr); } default: return true; } } inline bool VerifyAttributeVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { if (!VerifyAttribute( verifier, values->Get(i), types->GetEnum(i))) { return false; } } return true; } inline const tosa::TosaGraph *GetTosaGraph(const void *buf) { return ::flatbuffers::GetRoot(buf); } inline const tosa::TosaGraph *GetSizePrefixedTosaGraph(const void *buf) { return ::flatbuffers::GetSizePrefixedRoot(buf); } inline const char *TosaGraphIdentifier() { return "TOSA"; } inline bool TosaGraphBufferHasIdentifier(const void *buf) { return ::flatbuffers::BufferHasIdentifier( buf, TosaGraphIdentifier()); } inline bool SizePrefixedTosaGraphBufferHasIdentifier(const void *buf) { return ::flatbuffers::BufferHasIdentifier( buf, TosaGraphIdentifier(), true); } inline bool VerifyTosaGraphBuffer( ::flatbuffers::Verifier &verifier) { return verifier.VerifyBuffer(TosaGraphIdentifier()); } inline bool VerifySizePrefixedTosaGraphBuffer( ::flatbuffers::Verifier &verifier) { return verifier.VerifySizePrefixedBuffer(TosaGraphIdentifier()); } inline const char *TosaGraphExtension() { return "tosa"; } inline void FinishTosaGraphBuffer( ::flatbuffers::FlatBufferBuilder &fbb, ::flatbuffers::Offset root) { fbb.Finish(root, TosaGraphIdentifier()); } inline void FinishSizePrefixedTosaGraphBuffer( ::flatbuffers::FlatBufferBuilder &fbb, ::flatbuffers::Offset root) { fbb.FinishSizePrefixed(root, TosaGraphIdentifier()); } } // namespace tosa #endif // FLATBUFFERS_GENERATED_TOSA_TOSA_H_