| |
| // Copyright (c) 2020, ARM Limited. |
| // |
| // Licensed under the Apache License, Version 2.0 (the "License"); |
| // you may not use this file except in compliance with the License. |
| // You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS IS" BASIS, |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| // See the License for the specific language governing permissions and |
| // limitations under the License. |
| |
| // 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" |
| |
| namespace tosa { |
| |
| struct Pool2dAttribute; |
| |
| struct Conv2dAttribute; |
| |
| struct TransposeConv2dAttribute; |
| |
| struct ReluNAttribute; |
| |
| struct AxisAttribute; |
| |
| struct ReshapeAttribute; |
| |
| struct SliceAttribute; |
| |
| struct TileAttribute; |
| |
| struct ResizeAttribute; |
| |
| struct ClampAttribute; |
| |
| struct RescaleAttribute; |
| |
| struct MulAttribute; |
| |
| struct ArithmeticRightShiftAttribute; |
| |
| struct CondIfAttribute; |
| |
| struct WhileLoopAttribute; |
| |
| struct UnaryQuantInfo; |
| |
| struct ConvQuantInfo; |
| |
| struct MatMulQuantInfo; |
| |
| struct PadQuantInfo; |
| |
| struct Version; |
| |
| struct TosaTensor; |
| |
| struct TosaOperator; |
| |
| struct TosaBasicBlock; |
| |
| struct TosaGraph; |
| |
| enum DType { |
| DType_UNKNOWN = 0, |
| DType_BOOL = 1, |
| DType_AINT8 = 2, |
| DType_UINT8 = 3, |
| DType_INT4 = 4, |
| DType_INT8 = 5, |
| DType_INT16 = 6, |
| DType_INT32 = 7, |
| DType_INT48 = 8, |
| DType_FLOAT = 9, |
| DType_MIN = DType_UNKNOWN, |
| DType_MAX = DType_FLOAT |
| }; |
| |
| inline const DType (&EnumValuesDType())[10] { |
| static const DType values[] = { |
| DType_UNKNOWN, |
| DType_BOOL, |
| DType_AINT8, |
| DType_UINT8, |
| DType_INT4, |
| DType_INT8, |
| DType_INT16, |
| DType_INT32, |
| DType_INT48, |
| DType_FLOAT |
| }; |
| return values; |
| } |
| |
| inline const char * const *EnumNamesDType() { |
| static const char * const names[] = { |
| "UNKNOWN", |
| "BOOL", |
| "AINT8", |
| "UINT8", |
| "INT4", |
| "INT8", |
| "INT16", |
| "INT32", |
| "INT48", |
| "FLOAT", |
| nullptr |
| }; |
| return names; |
| } |
| |
| inline const char *EnumNameDType(DType e) { |
| if (e < DType_UNKNOWN || e > DType_FLOAT) return ""; |
| const size_t index = static_cast<size_t>(e); |
| return EnumNamesDType()[index]; |
| } |
| |
| enum Format { |
| Format_UNKNOWN = 0, |
| Format_NHWC = 1, |
| Format_NDHWC = 2, |
| Format_OHWI = 3, |
| Format_HWIM = 4, |
| Format_DOHWI = 5, |
| Format_MIN = Format_UNKNOWN, |
| Format_MAX = Format_DOHWI |
| }; |
| |
| inline const Format (&EnumValuesFormat())[6] { |
| static const Format values[] = { |
| Format_UNKNOWN, |
| Format_NHWC, |
| Format_NDHWC, |
| Format_OHWI, |
| Format_HWIM, |
| Format_DOHWI |
| }; |
| return values; |
| } |
| |
| inline const char * const *EnumNamesFormat() { |
| static const char * const names[] = { |
| "UNKNOWN", |
| "NHWC", |
| "NDHWC", |
| "OHWI", |
| "HWIM", |
| "DOHWI", |
| nullptr |
| }; |
| return names; |
| } |
| |
| inline const char *EnumNameFormat(Format e) { |
| if (e < Format_UNKNOWN || e > Format_DOHWI) return ""; |
| const size_t index = static_cast<size_t>(e); |
| return EnumNamesFormat()[index]; |
| } |
| |
| enum Usage { |
| Usage_UNKNOWN = 0, |
| Usage_ACTIVATION = 1, |
| Usage_WEIGHT = 2, |
| Usage_INDEX = 3, |
| Usage_MIN = Usage_UNKNOWN, |
| Usage_MAX = Usage_INDEX |
| }; |
| |
| inline const Usage (&EnumValuesUsage())[4] { |
| static const Usage values[] = { |
| Usage_UNKNOWN, |
| Usage_ACTIVATION, |
| Usage_WEIGHT, |
| Usage_INDEX |
| }; |
| return values; |
| } |
| |
| inline const char * const *EnumNamesUsage() { |
| static const char * const names[] = { |
| "UNKNOWN", |
| "ACTIVATION", |
| "WEIGHT", |
| "INDEX", |
| nullptr |
| }; |
| return names; |
| } |
| |
| inline const char *EnumNameUsage(Usage e) { |
| if (e < Usage_UNKNOWN || e > Usage_INDEX) return ""; |
| const size_t index = static_cast<size_t>(e); |
| return EnumNamesUsage()[index]; |
| } |
| |
| enum ResizeMode { |
| 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[] = { |
| "UNKNOWN", |
| "NEAREST", |
| "BILINEAR", |
| nullptr |
| }; |
| return names; |
| } |
| |
| inline const char *EnumNameResizeMode(ResizeMode e) { |
| if (e < ResizeMode_UNKNOWN || e > ResizeMode_BILINEAR) return ""; |
| const size_t index = static_cast<size_t>(e); |
| return EnumNamesResizeMode()[index]; |
| } |
| |
| enum Op { |
| 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_RELUN = 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_LOGICAL_AND = 19, |
| Op_LOGICAL_LEFT_SHIFT = 20, |
| Op_LOGICAL_RIGHT_SHIFT = 21, |
| Op_LOGICAL_OR = 22, |
| Op_LOGICAL_XOR = 23, |
| Op_MAXIMUM = 24, |
| Op_MINIMUM = 25, |
| Op_MUL = 26, |
| Op_POW = 27, |
| Op_SUB = 28, |
| Op_TABLE = 29, |
| Op_ABS = 30, |
| Op_BITWISE_NOT = 31, |
| Op_CEIL = 32, |
| Op_CLZ = 33, |
| Op_EXP = 34, |
| Op_FLOOR = 35, |
| Op_LOG = 36, |
| Op_LOGICAL_NOT = 37, |
| Op_NEGATE = 38, |
| Op_RECIPROCAL = 39, |
| Op_RSQRT = 40, |
| Op_SELECT = 41, |
| Op_EQUAL = 42, |
| Op_GREATER = 43, |
| Op_GREATER_EQUAL = 44, |
| Op_REDUCE_ANY = 45, |
| Op_REDUCE_ALL = 46, |
| Op_REDUCE_MAX = 47, |
| Op_REDUCE_MIN = 48, |
| Op_REDUCE_PRODUCT = 49, |
| Op_REDUCE_SUM = 50, |
| Op_CONCAT = 51, |
| Op_PAD = 52, |
| Op_RESHAPE = 53, |
| Op_REVERSE = 54, |
| Op_SLICE = 55, |
| Op_TILE = 56, |
| Op_TRANSPOSE = 57, |
| Op_GATHER = 58, |
| Op_SCATTER = 59, |
| Op_RESIZE = 60, |
| Op_CAST = 61, |
| Op_RESCALE = 62, |
| Op_CONST = 63, |
| Op_PLACEHOLDER = 64, |
| Op_IDENTITY = 65, |
| Op_IDENTITYN = 66, |
| Op_CUSTOM = 67, |
| Op_COND_IF = 68, |
| Op_WHILE_LOOP = 69, |
| Op_MIN = Op_UNKNOWN, |
| Op_MAX = Op_WHILE_LOOP |
| }; |
| |
| inline const Op (&EnumValuesOp())[70] { |
| 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_RELUN, |
| Op_SIGMOID, |
| Op_TANH, |
| Op_ADD, |
| Op_ARITHMETIC_RIGHT_SHIFT, |
| Op_BITWISE_AND, |
| Op_BITWISE_OR, |
| Op_BITWISE_XOR, |
| 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_PLACEHOLDER, |
| Op_IDENTITY, |
| Op_IDENTITYN, |
| Op_CUSTOM, |
| Op_COND_IF, |
| Op_WHILE_LOOP |
| }; |
| return values; |
| } |
| |
| inline const char * const *EnumNamesOp() { |
| static const char * const names[] = { |
| "UNKNOWN", |
| "ARGMAX", |
| "AVG_POOL2D", |
| "CONV2D", |
| "CONV3D", |
| "DEPTHWISE_CONV2D", |
| "FULLY_CONNECTED", |
| "MATMUL", |
| "MAX_POOL2D", |
| "TRANSPOSE_CONV2D", |
| "CLAMP", |
| "RELUN", |
| "SIGMOID", |
| "TANH", |
| "ADD", |
| "ARITHMETIC_RIGHT_SHIFT", |
| "BITWISE_AND", |
| "BITWISE_OR", |
| "BITWISE_XOR", |
| "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", |
| "PLACEHOLDER", |
| "IDENTITY", |
| "IDENTITYN", |
| "CUSTOM", |
| "COND_IF", |
| "WHILE_LOOP", |
| nullptr |
| }; |
| return names; |
| } |
| |
| inline const char *EnumNameOp(Op e) { |
| if (e < Op_UNKNOWN || e > Op_WHILE_LOOP) return ""; |
| const size_t index = static_cast<size_t>(e); |
| return EnumNamesOp()[index]; |
| } |
| |
| enum Attribute { |
| Attribute_NONE = 0, |
| Attribute_Pool2dAttribute = 1, |
| Attribute_Conv2dAttribute = 2, |
| Attribute_TransposeConv2dAttribute = 3, |
| Attribute_ReluNAttribute = 4, |
| Attribute_AxisAttribute = 5, |
| Attribute_ReshapeAttribute = 6, |
| Attribute_SliceAttribute = 7, |
| Attribute_TileAttribute = 8, |
| Attribute_ResizeAttribute = 9, |
| Attribute_ClampAttribute = 10, |
| Attribute_RescaleAttribute = 11, |
| Attribute_MulAttribute = 12, |
| Attribute_ArithmeticRightShiftAttribute = 13, |
| Attribute_CondIfAttribute = 14, |
| Attribute_WhileLoopAttribute = 15, |
| Attribute_MIN = Attribute_NONE, |
| Attribute_MAX = Attribute_WhileLoopAttribute |
| }; |
| |
| inline const Attribute (&EnumValuesAttribute())[16] { |
| static const Attribute values[] = { |
| Attribute_NONE, |
| Attribute_Pool2dAttribute, |
| Attribute_Conv2dAttribute, |
| Attribute_TransposeConv2dAttribute, |
| Attribute_ReluNAttribute, |
| Attribute_AxisAttribute, |
| Attribute_ReshapeAttribute, |
| Attribute_SliceAttribute, |
| Attribute_TileAttribute, |
| Attribute_ResizeAttribute, |
| Attribute_ClampAttribute, |
| Attribute_RescaleAttribute, |
| Attribute_MulAttribute, |
| Attribute_ArithmeticRightShiftAttribute, |
| Attribute_CondIfAttribute, |
| Attribute_WhileLoopAttribute |
| }; |
| return values; |
| } |
| |
| inline const char * const *EnumNamesAttribute() { |
| static const char * const names[] = { |
| "NONE", |
| "Pool2dAttribute", |
| "Conv2dAttribute", |
| "TransposeConv2dAttribute", |
| "ReluNAttribute", |
| "AxisAttribute", |
| "ReshapeAttribute", |
| "SliceAttribute", |
| "TileAttribute", |
| "ResizeAttribute", |
| "ClampAttribute", |
| "RescaleAttribute", |
| "MulAttribute", |
| "ArithmeticRightShiftAttribute", |
| "CondIfAttribute", |
| "WhileLoopAttribute", |
| nullptr |
| }; |
| return names; |
| } |
| |
| inline const char *EnumNameAttribute(Attribute e) { |
| if (e < Attribute_NONE || e > Attribute_WhileLoopAttribute) return ""; |
| const size_t index = static_cast<size_t>(e); |
| return EnumNamesAttribute()[index]; |
| } |
| |
| template<typename T> struct AttributeTraits { |
| static const Attribute enum_value = Attribute_NONE; |
| }; |
| |
| template<> struct AttributeTraits<Pool2dAttribute> { |
| static const Attribute enum_value = Attribute_Pool2dAttribute; |
| }; |
| |
| template<> struct AttributeTraits<Conv2dAttribute> { |
| static const Attribute enum_value = Attribute_Conv2dAttribute; |
| }; |
| |
| template<> struct AttributeTraits<TransposeConv2dAttribute> { |
| static const Attribute enum_value = Attribute_TransposeConv2dAttribute; |
| }; |
| |
| template<> struct AttributeTraits<ReluNAttribute> { |
| static const Attribute enum_value = Attribute_ReluNAttribute; |
| }; |
| |
| template<> struct AttributeTraits<AxisAttribute> { |
| static const Attribute enum_value = Attribute_AxisAttribute; |
| }; |
| |
| template<> struct AttributeTraits<ReshapeAttribute> { |
| static const Attribute enum_value = Attribute_ReshapeAttribute; |
| }; |
| |
| template<> struct AttributeTraits<SliceAttribute> { |
| static const Attribute enum_value = Attribute_SliceAttribute; |
| }; |
| |
| template<> struct AttributeTraits<TileAttribute> { |
| static const Attribute enum_value = Attribute_TileAttribute; |
| }; |
| |
| template<> struct AttributeTraits<ResizeAttribute> { |
| static const Attribute enum_value = Attribute_ResizeAttribute; |
| }; |
| |
| template<> struct AttributeTraits<ClampAttribute> { |
| static const Attribute enum_value = Attribute_ClampAttribute; |
| }; |
| |
| template<> struct AttributeTraits<RescaleAttribute> { |
| static const Attribute enum_value = Attribute_RescaleAttribute; |
| }; |
| |
| template<> struct AttributeTraits<MulAttribute> { |
| static const Attribute enum_value = Attribute_MulAttribute; |
| }; |
| |
| template<> struct AttributeTraits<ArithmeticRightShiftAttribute> { |
| static const Attribute enum_value = Attribute_ArithmeticRightShiftAttribute; |
| }; |
| |
| template<> struct AttributeTraits<CondIfAttribute> { |
| static const Attribute enum_value = Attribute_CondIfAttribute; |
| }; |
| |
| template<> struct AttributeTraits<WhileLoopAttribute> { |
| static const Attribute enum_value = Attribute_WhileLoopAttribute; |
| }; |
| |
| bool VerifyAttribute(flatbuffers::Verifier &verifier, const void *obj, Attribute type); |
| bool VerifyAttributeVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<uint8_t> *types); |
| |
| enum QuantInfo { |
| QuantInfo_NONE = 0, |
| QuantInfo_UnaryQuantInfo = 1, |
| QuantInfo_ConvQuantInfo = 2, |
| QuantInfo_MatMulQuantInfo = 3, |
| QuantInfo_PadQuantInfo = 4, |
| QuantInfo_MIN = QuantInfo_NONE, |
| QuantInfo_MAX = QuantInfo_PadQuantInfo |
| }; |
| |
| inline const QuantInfo (&EnumValuesQuantInfo())[5] { |
| static const QuantInfo values[] = { |
| QuantInfo_NONE, |
| QuantInfo_UnaryQuantInfo, |
| QuantInfo_ConvQuantInfo, |
| QuantInfo_MatMulQuantInfo, |
| QuantInfo_PadQuantInfo |
| }; |
| return values; |
| } |
| |
| inline const char * const *EnumNamesQuantInfo() { |
| static const char * const names[] = { |
| "NONE", |
| "UnaryQuantInfo", |
| "ConvQuantInfo", |
| "MatMulQuantInfo", |
| "PadQuantInfo", |
| nullptr |
| }; |
| return names; |
| } |
| |
| inline const char *EnumNameQuantInfo(QuantInfo e) { |
| if (e < QuantInfo_NONE || e > QuantInfo_PadQuantInfo) return ""; |
| const size_t index = static_cast<size_t>(e); |
| return EnumNamesQuantInfo()[index]; |
| } |
| |
| template<typename T> struct QuantInfoTraits { |
| static const QuantInfo enum_value = QuantInfo_NONE; |
| }; |
| |
| template<> struct QuantInfoTraits<UnaryQuantInfo> { |
| static const QuantInfo enum_value = QuantInfo_UnaryQuantInfo; |
| }; |
| |
| template<> struct QuantInfoTraits<ConvQuantInfo> { |
| static const QuantInfo enum_value = QuantInfo_ConvQuantInfo; |
| }; |
| |
| template<> struct QuantInfoTraits<MatMulQuantInfo> { |
| static const QuantInfo enum_value = QuantInfo_MatMulQuantInfo; |
| }; |
| |
| template<> struct QuantInfoTraits<PadQuantInfo> { |
| static const QuantInfo enum_value = QuantInfo_PadQuantInfo; |
| }; |
| |
| bool VerifyQuantInfo(flatbuffers::Verifier &verifier, const void *obj, QuantInfo type); |
| bool VerifyQuantInfoVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<uint8_t> *types); |
| |
| struct Pool2dAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { |
| enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { |
| VT_PADDING = 4, |
| VT_KERNEL = 6, |
| VT_STRIDE = 8 |
| }; |
| const flatbuffers::Vector<int32_t> *padding() const { |
| return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_PADDING); |
| } |
| const flatbuffers::Vector<int32_t> *kernel() const { |
| return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_KERNEL); |
| } |
| const flatbuffers::Vector<int32_t> *stride() const { |
| return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_STRIDE); |
| } |
| bool Verify(flatbuffers::Verifier &verifier) const { |
| return VerifyTableStart(verifier) && |
| VerifyOffset(verifier, VT_PADDING) && |
| verifier.VerifyVector(padding()) && |
| VerifyOffset(verifier, VT_KERNEL) && |
| verifier.VerifyVector(kernel()) && |
| VerifyOffset(verifier, VT_STRIDE) && |
| verifier.VerifyVector(stride()) && |
| verifier.EndTable(); |
| } |
| }; |
| |
| struct Pool2dAttributeBuilder { |
| flatbuffers::FlatBufferBuilder &fbb_; |
| flatbuffers::uoffset_t start_; |
| void add_padding(flatbuffers::Offset<flatbuffers::Vector<int32_t>> padding) { |
| fbb_.AddOffset(Pool2dAttribute::VT_PADDING, padding); |
| } |
| void add_kernel(flatbuffers::Offset<flatbuffers::Vector<int32_t>> kernel) { |
| fbb_.AddOffset(Pool2dAttribute::VT_KERNEL, kernel); |
| } |
| void add_stride(flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride) { |
| fbb_.AddOffset(Pool2dAttribute::VT_STRIDE, stride); |
| } |
| explicit Pool2dAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb) |
| : fbb_(_fbb) { |
| start_ = fbb_.StartTable(); |
| } |
| Pool2dAttributeBuilder &operator=(const Pool2dAttributeBuilder &); |
| flatbuffers::Offset<Pool2dAttribute> Finish() { |
| const auto end = fbb_.EndTable(start_); |
| auto o = flatbuffers::Offset<Pool2dAttribute>(end); |
| return o; |
| } |
| }; |
| |
| inline flatbuffers::Offset<Pool2dAttribute> CreatePool2dAttribute( |
| flatbuffers::FlatBufferBuilder &_fbb, |
| flatbuffers::Offset<flatbuffers::Vector<int32_t>> padding = 0, |
| flatbuffers::Offset<flatbuffers::Vector<int32_t>> kernel = 0, |
| flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride = 0) { |
| Pool2dAttributeBuilder builder_(_fbb); |
| builder_.add_stride(stride); |
| builder_.add_kernel(kernel); |
| builder_.add_padding(padding); |
| return builder_.Finish(); |
| } |
| |
| inline flatbuffers::Offset<Pool2dAttribute> CreatePool2dAttributeDirect( |
| flatbuffers::FlatBufferBuilder &_fbb, |
| const std::vector<int32_t> *padding = nullptr, |
| const std::vector<int32_t> *kernel = nullptr, |
| const std::vector<int32_t> *stride = nullptr) { |
| auto padding__ = padding ? _fbb.CreateVector<int32_t>(*padding) : 0; |
| auto kernel__ = kernel ? _fbb.CreateVector<int32_t>(*kernel) : 0; |
| auto stride__ = stride ? _fbb.CreateVector<int32_t>(*stride) : 0; |
| return tosa::CreatePool2dAttribute( |
| _fbb, |
| padding__, |
| kernel__, |
| stride__); |
| } |
| |
| struct Conv2dAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { |
| enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { |
| VT_PADDING = 4, |
| VT_STRIDE = 6, |
| VT_DILATION = 8 |
| }; |
| const flatbuffers::Vector<int32_t> *padding() const { |
| return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_PADDING); |
| } |
| const flatbuffers::Vector<int32_t> *stride() const { |
| return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_STRIDE); |
| } |
| const flatbuffers::Vector<int32_t> *dilation() const { |
| return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_DILATION); |
| } |
| bool Verify(flatbuffers::Verifier &verifier) const { |
| return VerifyTableStart(verifier) && |
| VerifyOffset(verifier, VT_PADDING) && |
| verifier.VerifyVector(padding()) && |
| VerifyOffset(verifier, VT_STRIDE) && |
| verifier.VerifyVector(stride()) && |
| VerifyOffset(verifier, VT_DILATION) && |
| verifier.VerifyVector(dilation()) && |
| verifier.EndTable(); |
| } |
| }; |
| |
| struct Conv2dAttributeBuilder { |
| flatbuffers::FlatBufferBuilder &fbb_; |
| flatbuffers::uoffset_t start_; |
| void add_padding(flatbuffers::Offset<flatbuffers::Vector<int32_t>> padding) { |
| fbb_.AddOffset(Conv2dAttribute::VT_PADDING, padding); |
| } |
| void add_stride(flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride) { |
| fbb_.AddOffset(Conv2dAttribute::VT_STRIDE, stride); |
| } |
| void add_dilation(flatbuffers::Offset<flatbuffers::Vector<int32_t>> dilation) { |
| fbb_.AddOffset(Conv2dAttribute::VT_DILATION, dilation); |
| } |
| explicit Conv2dAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb) |
| : fbb_(_fbb) { |
| start_ = fbb_.StartTable(); |
| } |
| Conv2dAttributeBuilder &operator=(const Conv2dAttributeBuilder &); |
| flatbuffers::Offset<Conv2dAttribute> Finish() { |
| const auto end = fbb_.EndTable(start_); |
| auto o = flatbuffers::Offset<Conv2dAttribute>(end); |
| return o; |
| } |
| }; |
| |
| inline flatbuffers::Offset<Conv2dAttribute> CreateConv2dAttribute( |
| flatbuffers::FlatBufferBuilder &_fbb, |
| flatbuffers::Offset<flatbuffers::Vector<int32_t>> padding = 0, |
| flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride = 0, |
| flatbuffers::Offset<flatbuffers::Vector<int32_t>> dilation = 0) { |
| Conv2dAttributeBuilder builder_(_fbb); |
| builder_.add_dilation(dilation); |
| builder_.add_stride(stride); |
| builder_.add_padding(padding); |
| return builder_.Finish(); |
| } |
| |
| inline flatbuffers::Offset<Conv2dAttribute> CreateConv2dAttributeDirect( |
| flatbuffers::FlatBufferBuilder &_fbb, |
| const std::vector<int32_t> *padding = nullptr, |
| const std::vector<int32_t> *stride = nullptr, |
| const std::vector<int32_t> *dilation = nullptr) { |
| auto padding__ = padding ? _fbb.CreateVector<int32_t>(*padding) : 0; |
| auto stride__ = stride ? _fbb.CreateVector<int32_t>(*stride) : 0; |
| auto dilation__ = dilation ? _fbb.CreateVector<int32_t>(*dilation) : 0; |
| return tosa::CreateConv2dAttribute( |
| _fbb, |
| padding__, |
| stride__, |
| dilation__); |
| } |
| |
| struct TransposeConv2dAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { |
| enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { |
| VT_OUTPAD = 4, |
| VT_STRIDE = 6, |
| VT_DILATION = 8, |
| VT_OUTPUT_SHAPE = 10 |
| }; |
| const flatbuffers::Vector<int32_t> *outpad() const { |
| return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_OUTPAD); |
| } |
| const flatbuffers::Vector<int32_t> *stride() const { |
| return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_STRIDE); |
| } |
| const flatbuffers::Vector<int32_t> *dilation() const { |
| return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_DILATION); |
| } |
| const flatbuffers::Vector<int32_t> *output_shape() const { |
| return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_OUTPUT_SHAPE); |
| } |
| bool Verify(flatbuffers::Verifier &verifier) const { |
| return VerifyTableStart(verifier) && |
| VerifyOffset(verifier, VT_OUTPAD) && |
| verifier.VerifyVector(outpad()) && |
| VerifyOffset(verifier, VT_STRIDE) && |
| verifier.VerifyVector(stride()) && |
| VerifyOffset(verifier, VT_DILATION) && |
| verifier.VerifyVector(dilation()) && |
| VerifyOffset(verifier, VT_OUTPUT_SHAPE) && |
| verifier.VerifyVector(output_shape()) && |
| verifier.EndTable(); |
| } |
| }; |
| |
| struct TransposeConv2dAttributeBuilder { |
| flatbuffers::FlatBufferBuilder &fbb_; |
| flatbuffers::uoffset_t start_; |
| void add_outpad(flatbuffers::Offset<flatbuffers::Vector<int32_t>> outpad) { |
| fbb_.AddOffset(TransposeConv2dAttribute::VT_OUTPAD, outpad); |
| } |
| void add_stride(flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride) { |
| fbb_.AddOffset(TransposeConv2dAttribute::VT_STRIDE, stride); |
| } |
| void add_dilation(flatbuffers::Offset<flatbuffers::Vector<int32_t>> dilation) { |
| fbb_.AddOffset(TransposeConv2dAttribute::VT_DILATION, dilation); |
| } |
| void add_output_shape(flatbuffers::Offset<flatbuffers::Vector<int32_t>> output_shape) { |
| fbb_.AddOffset(TransposeConv2dAttribute::VT_OUTPUT_SHAPE, output_shape); |
| } |
| explicit TransposeConv2dAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb) |
| : fbb_(_fbb) { |
| start_ = fbb_.StartTable(); |
| } |
| TransposeConv2dAttributeBuilder &operator=(const TransposeConv2dAttributeBuilder &); |
| flatbuffers::Offset<TransposeConv2dAttribute> Finish() { |
| const auto end = fbb_.EndTable(start_); |
| auto o = flatbuffers::Offset<TransposeConv2dAttribute>(end); |
| return o; |
| } |
| }; |
| |
| inline flatbuffers::Offset<TransposeConv2dAttribute> CreateTransposeConv2dAttribute( |
| flatbuffers::FlatBufferBuilder &_fbb, |
| flatbuffers::Offset<flatbuffers::Vector<int32_t>> outpad = 0, |
| flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride = 0, |
| flatbuffers::Offset<flatbuffers::Vector<int32_t>> dilation = 0, |
| flatbuffers::Offset<flatbuffers::Vector<int32_t>> output_shape = 0) { |
| TransposeConv2dAttributeBuilder builder_(_fbb); |
| builder_.add_output_shape(output_shape); |
| builder_.add_dilation(dilation); |
| builder_.add_stride(stride); |
| builder_.add_outpad(outpad); |
| return builder_.Finish(); |
| } |
| |
| inline flatbuffers::Offset<TransposeConv2dAttribute> CreateTransposeConv2dAttributeDirect( |
| flatbuffers::FlatBufferBuilder &_fbb, |
| const std::vector<int32_t> *outpad = nullptr, |
| const std::vector<int32_t> *stride = nullptr, |
| const std::vector<int32_t> *dilation = nullptr, |
| const std::vector<int32_t> *output_shape = nullptr) { |
| auto outpad__ = outpad ? _fbb.CreateVector<int32_t>(*outpad) : 0; |
| auto stride__ = stride ? _fbb.CreateVector<int32_t>(*stride) : 0; |
| auto dilation__ = dilation ? _fbb.CreateVector<int32_t>(*dilation) : 0; |
| auto output_shape__ = output_shape ? _fbb.CreateVector<int32_t>(*output_shape) : 0; |
| return tosa::CreateTransposeConv2dAttribute( |
| _fbb, |
| outpad__, |
| stride__, |
| dilation__, |
| output_shape__); |
| } |
| |
| struct ReluNAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { |
| enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { |
| VT_MAX_INT = 4, |
| VT_MAX_FP = 6 |
| }; |
| int32_t max_int() const { |
| return GetField<int32_t>(VT_MAX_INT, 0); |
| } |
| float max_fp() const { |
| return GetField<float>(VT_MAX_FP, 0.0f); |
| } |
| bool Verify(flatbuffers::Verifier &verifier) const { |
| return VerifyTableStart(verifier) && |
| VerifyField<int32_t>(verifier, VT_MAX_INT) && |
| VerifyField<float>(verifier, VT_MAX_FP) && |
| verifier.EndTable(); |
| } |
| }; |
| |
| struct ReluNAttributeBuilder { |
| flatbuffers::FlatBufferBuilder &fbb_; |
| flatbuffers::uoffset_t start_; |
| void add_max_int(int32_t max_int) { |
| fbb_.AddElement<int32_t>(ReluNAttribute::VT_MAX_INT, max_int, 0); |
| } |
| void add_max_fp(float max_fp) { |
| fbb_.AddElement<float>(ReluNAttribute::VT_MAX_FP, max_fp, 0.0f); |
| } |
| explicit ReluNAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb) |
| : fbb_(_fbb) { |
| start_ = fbb_.StartTable(); |
| } |
| ReluNAttributeBuilder &operator=(const ReluNAttributeBuilder &); |
| flatbuffers::Offset<ReluNAttribute> Finish() { |
| const auto end = fbb_.EndTable(start_); |
| auto o = flatbuffers::Offset<ReluNAttribute>(end); |
| return o; |
| } |
| }; |
| |
| inline flatbuffers::Offset<ReluNAttribute> CreateReluNAttribute( |
| flatbuffers::FlatBufferBuilder &_fbb, |
| int32_t max_int = 0, |
| float max_fp = 0.0f) { |
| ReluNAttributeBuilder builder_(_fbb); |
| builder_.add_max_fp(max_fp); |
| builder_.add_max_int(max_int); |
| return builder_.Finish(); |
| } |
| |
| struct AxisAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { |
| enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { |
| VT_AXIS = 4 |
| }; |
| int32_t axis() const { |
| return GetField<int32_t>(VT_AXIS, 0); |
| } |
| bool Verify(flatbuffers::Verifier &verifier) const { |
| return VerifyTableStart(verifier) && |
| VerifyField<int32_t>(verifier, VT_AXIS) && |
| verifier.EndTable(); |
| } |
| }; |
| |
| struct AxisAttributeBuilder { |
| flatbuffers::FlatBufferBuilder &fbb_; |
| flatbuffers::uoffset_t start_; |
| void add_axis(int32_t axis) { |
| fbb_.AddElement<int32_t>(AxisAttribute::VT_AXIS, axis, 0); |
| } |
| explicit AxisAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb) |
| : fbb_(_fbb) { |
| start_ = fbb_.StartTable(); |
| } |
| AxisAttributeBuilder &operator=(const AxisAttributeBuilder &); |
| flatbuffers::Offset<AxisAttribute> Finish() { |
| const auto end = fbb_.EndTable(start_); |
| auto o = flatbuffers::Offset<AxisAttribute>(end); |
| return o; |
| } |
| }; |
| |
| inline flatbuffers::Offset<AxisAttribute> CreateAxisAttribute( |
| flatbuffers::FlatBufferBuilder &_fbb, |
| int32_t axis = 0) { |
| AxisAttributeBuilder builder_(_fbb); |
| builder_.add_axis(axis); |
| return builder_.Finish(); |
| } |
| |
| struct ReshapeAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { |
| enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { |
| VT_SHAPE = 4 |
| }; |
| const flatbuffers::Vector<int32_t> *shape() const { |
| return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_SHAPE); |
| } |
| bool Verify(flatbuffers::Verifier &verifier) const { |
| return VerifyTableStart(verifier) && |
| VerifyOffset(verifier, VT_SHAPE) && |
| verifier.VerifyVector(shape()) && |
| verifier.EndTable(); |
| } |
| }; |
| |
| struct ReshapeAttributeBuilder { |
| flatbuffers::FlatBufferBuilder &fbb_; |
| flatbuffers::uoffset_t start_; |
| void add_shape(flatbuffers::Offset<flatbuffers::Vector<int32_t>> shape) { |
| fbb_.AddOffset(ReshapeAttribute::VT_SHAPE, shape); |
| } |
| explicit ReshapeAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb) |
| : fbb_(_fbb) { |
| start_ = fbb_.StartTable(); |
| } |
| ReshapeAttributeBuilder &operator=(const ReshapeAttributeBuilder &); |
| flatbuffers::Offset<ReshapeAttribute> Finish() { |
| const auto end = fbb_.EndTable(start_); |
| auto o = flatbuffers::Offset<ReshapeAttribute>(end); |
| return o; |
| } |
| }; |
| |
| inline flatbuffers::Offset<ReshapeAttribute> CreateReshapeAttribute( |
| flatbuffers::FlatBufferBuilder &_fbb, |
| flatbuffers::Offset<flatbuffers::Vector<int32_t>> shape = 0) { |
| ReshapeAttributeBuilder builder_(_fbb); |
| builder_.add_shape(shape); |
| return builder_.Finish(); |
| } |
| |
| inline flatbuffers::Offset<ReshapeAttribute> CreateReshapeAttributeDirect( |
| flatbuffers::FlatBufferBuilder &_fbb, |
| const std::vector<int32_t> *shape = nullptr) { |
| auto shape__ = shape ? _fbb.CreateVector<int32_t>(*shape) : 0; |
| return tosa::CreateReshapeAttribute( |
| _fbb, |
| shape__); |
| } |
| |
| struct SliceAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { |
| enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { |
| VT_BEGIN = 4, |
| VT_SIZE = 6 |
| }; |
| const flatbuffers::Vector<int32_t> *begin() const { |
| return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_BEGIN); |
| } |
| const flatbuffers::Vector<int32_t> *size() const { |
| return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_SIZE); |
| } |
| bool Verify(flatbuffers::Verifier &verifier) const { |
| return VerifyTableStart(verifier) && |
| VerifyOffset(verifier, VT_BEGIN) && |
| verifier.VerifyVector(begin()) && |
| VerifyOffset(verifier, VT_SIZE) && |
| verifier.VerifyVector(size()) && |
| verifier.EndTable(); |
| } |
| }; |
| |
| struct SliceAttributeBuilder { |
| flatbuffers::FlatBufferBuilder &fbb_; |
| flatbuffers::uoffset_t start_; |
| void add_begin(flatbuffers::Offset<flatbuffers::Vector<int32_t>> begin) { |
| fbb_.AddOffset(SliceAttribute::VT_BEGIN, begin); |
| } |
| void add_size(flatbuffers::Offset<flatbuffers::Vector<int32_t>> size) { |
| fbb_.AddOffset(SliceAttribute::VT_SIZE, size); |
| } |
| explicit SliceAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb) |
| : fbb_(_fbb) { |
| start_ = fbb_.StartTable(); |
| } |
| SliceAttributeBuilder &operator=(const SliceAttributeBuilder &); |
| flatbuffers::Offset<SliceAttribute> Finish() { |
| const auto end = fbb_.EndTable(start_); |
| auto o = flatbuffers::Offset<SliceAttribute>(end); |
| return o; |
| } |
| }; |
| |
| inline flatbuffers::Offset<SliceAttribute> CreateSliceAttribute( |
| flatbuffers::FlatBufferBuilder &_fbb, |
| flatbuffers::Offset<flatbuffers::Vector<int32_t>> begin = 0, |
| flatbuffers::Offset<flatbuffers::Vector<int32_t>> size = 0) { |
| SliceAttributeBuilder builder_(_fbb); |
| builder_.add_size(size); |
| builder_.add_begin(begin); |
| return builder_.Finish(); |
| } |
| |
| inline flatbuffers::Offset<SliceAttribute> CreateSliceAttributeDirect( |
| flatbuffers::FlatBufferBuilder &_fbb, |
| const std::vector<int32_t> *begin = nullptr, |
| const std::vector<int32_t> *size = nullptr) { |
| auto begin__ = begin ? _fbb.CreateVector<int32_t>(*begin) : 0; |
| auto size__ = size ? _fbb.CreateVector<int32_t>(*size) : 0; |
| return tosa::CreateSliceAttribute( |
| _fbb, |
| begin__, |
| size__); |
| } |
| |
| struct TileAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { |
| enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { |
| VT_MULTIPLES = 4 |
| }; |
| const flatbuffers::Vector<int32_t> *multiples() const { |
| return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_MULTIPLES); |
| } |
| bool Verify(flatbuffers::Verifier &verifier) const { |
| return VerifyTableStart(verifier) && |
| VerifyOffset(verifier, VT_MULTIPLES) && |
| verifier.VerifyVector(multiples()) && |
| verifier.EndTable(); |
| } |
| }; |
| |
| struct TileAttributeBuilder { |
| flatbuffers::FlatBufferBuilder &fbb_; |
| flatbuffers::uoffset_t start_; |
| void add_multiples(flatbuffers::Offset<flatbuffers::Vector<int32_t>> multiples) { |
| fbb_.AddOffset(TileAttribute::VT_MULTIPLES, multiples); |
| } |
| explicit TileAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb) |
| : fbb_(_fbb) { |
| start_ = fbb_.StartTable(); |
| } |
| TileAttributeBuilder &operator=(const TileAttributeBuilder &); |
| flatbuffers::Offset<TileAttribute> Finish() { |
| const auto end = fbb_.EndTable(start_); |
| auto o = flatbuffers::Offset<TileAttribute>(end); |
| return o; |
| } |
| }; |
| |
| inline flatbuffers::Offset<TileAttribute> CreateTileAttribute( |
| flatbuffers::FlatBufferBuilder &_fbb, |
| flatbuffers::Offset<flatbuffers::Vector<int32_t>> multiples = 0) { |
| TileAttributeBuilder builder_(_fbb); |
| builder_.add_multiples(multiples); |
| return builder_.Finish(); |
| } |
| |
| inline flatbuffers::Offset<TileAttribute> CreateTileAttributeDirect( |
| flatbuffers::FlatBufferBuilder &_fbb, |
| const std::vector<int32_t> *multiples = nullptr) { |
| auto multiples__ = multiples ? _fbb.CreateVector<int32_t>(*multiples) : 0; |
| return tosa::CreateTileAttribute( |
| _fbb, |
| multiples__); |
| } |
| |
| struct ResizeAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { |
| enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { |
| VT_OUTPUT_SIZE = 4, |
| VT_STRIDE = 6, |
| VT_OFFSET = 8, |
| VT_SHIFT = 10, |
| VT_STRIDE_FP = 12, |
| VT_OFFSET_FP = 14, |
| VT_MODE = 16 |
| }; |
| const flatbuffers::Vector<int32_t> *output_size() const { |
| return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_OUTPUT_SIZE); |
| } |
| const flatbuffers::Vector<int32_t> *stride() const { |
| return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_STRIDE); |
| } |
| const flatbuffers::Vector<int32_t> *offset() const { |
| return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_OFFSET); |
| } |
| int32_t shift() const { |
| return GetField<int32_t>(VT_SHIFT, 0); |
| } |
| const flatbuffers::Vector<float> *stride_fp() const { |
| return GetPointer<const flatbuffers::Vector<float> *>(VT_STRIDE_FP); |
| } |
| const flatbuffers::Vector<float> *offset_fp() const { |
| return GetPointer<const flatbuffers::Vector<float> *>(VT_OFFSET_FP); |
| } |
| ResizeMode mode() const { |
| return static_cast<ResizeMode>(GetField<uint32_t>(VT_MODE, 0)); |
| } |
| bool Verify(flatbuffers::Verifier &verifier) const { |
| return VerifyTableStart(verifier) && |
| VerifyOffset(verifier, VT_OUTPUT_SIZE) && |
| verifier.VerifyVector(output_size()) && |
| VerifyOffset(verifier, VT_STRIDE) && |
| verifier.VerifyVector(stride()) && |
| VerifyOffset(verifier, VT_OFFSET) && |
| verifier.VerifyVector(offset()) && |
| VerifyField<int32_t>(verifier, VT_SHIFT) && |
| VerifyOffset(verifier, VT_STRIDE_FP) && |
| verifier.VerifyVector(stride_fp()) && |
| VerifyOffset(verifier, VT_OFFSET_FP) && |
| verifier.VerifyVector(offset_fp()) && |
| VerifyField<uint32_t>(verifier, VT_MODE) && |
| verifier.EndTable(); |
| } |
| }; |
| |
| struct ResizeAttributeBuilder { |
| flatbuffers::FlatBufferBuilder &fbb_; |
| flatbuffers::uoffset_t start_; |
| void add_output_size(flatbuffers::Offset<flatbuffers::Vector<int32_t>> output_size) { |
| fbb_.AddOffset(ResizeAttribute::VT_OUTPUT_SIZE, output_size); |
| } |
| void add_stride(flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride) { |
| fbb_.AddOffset(ResizeAttribute::VT_STRIDE, stride); |
| } |
| void add_offset(flatbuffers::Offset<flatbuffers::Vector<int32_t>> offset) { |
| fbb_.AddOffset(ResizeAttribute::VT_OFFSET, offset); |
| } |
| void add_shift(int32_t shift) { |
| fbb_.AddElement<int32_t>(ResizeAttribute::VT_SHIFT, shift, 0); |
| } |
| void add_stride_fp(flatbuffers::Offset<flatbuffers::Vector<float>> stride_fp) { |
| fbb_.AddOffset(ResizeAttribute::VT_STRIDE_FP, stride_fp); |
| } |
| void add_offset_fp(flatbuffers::Offset<flatbuffers::Vector<float>> offset_fp) { |
| fbb_.AddOffset(ResizeAttribute::VT_OFFSET_FP, offset_fp); |
| } |
| void add_mode(ResizeMode mode) { |
| fbb_.AddElement<uint32_t>(ResizeAttribute::VT_MODE, static_cast<uint32_t>(mode), 0); |
| } |
| explicit ResizeAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb) |
| : fbb_(_fbb) { |
| start_ = fbb_.StartTable(); |
| } |
| ResizeAttributeBuilder &operator=(const ResizeAttributeBuilder &); |
| flatbuffers::Offset<ResizeAttribute> Finish() { |
| const auto end = fbb_.EndTable(start_); |
| auto o = flatbuffers::Offset<ResizeAttribute>(end); |
| return o; |
| } |
| }; |
| |
| inline flatbuffers::Offset<ResizeAttribute> CreateResizeAttribute( |
| flatbuffers::FlatBufferBuilder &_fbb, |
| flatbuffers::Offset<flatbuffers::Vector<int32_t>> output_size = 0, |
| flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride = 0, |
| flatbuffers::Offset<flatbuffers::Vector<int32_t>> offset = 0, |
| int32_t shift = 0, |
| flatbuffers::Offset<flatbuffers::Vector<float>> stride_fp = 0, |
| flatbuffers::Offset<flatbuffers::Vector<float>> offset_fp = 0, |
| ResizeMode mode = ResizeMode_UNKNOWN) { |
| ResizeAttributeBuilder builder_(_fbb); |
| builder_.add_mode(mode); |
| builder_.add_offset_fp(offset_fp); |
| builder_.add_stride_fp(stride_fp); |
| builder_.add_shift(shift); |
| builder_.add_offset(offset); |
| builder_.add_stride(stride); |
| builder_.add_output_size(output_size); |
| return builder_.Finish(); |
| } |
| |
| inline flatbuffers::Offset<ResizeAttribute> CreateResizeAttributeDirect( |
| flatbuffers::FlatBufferBuilder &_fbb, |
| const std::vector<int32_t> *output_size = nullptr, |
| const std::vector<int32_t> *stride = nullptr, |
| const std::vector<int32_t> *offset = nullptr, |
| int32_t shift = 0, |
| const std::vector<float> *stride_fp = nullptr, |
| const std::vector<float> *offset_fp = nullptr, |
| ResizeMode mode = ResizeMode_UNKNOWN) { |
| auto output_size__ = output_size ? _fbb.CreateVector<int32_t>(*output_size) : 0; |
| auto stride__ = stride ? _fbb.CreateVector<int32_t>(*stride) : 0; |
| auto offset__ = offset ? _fbb.CreateVector<int32_t>(*offset) : 0; |
| auto stride_fp__ = stride_fp ? _fbb.CreateVector<float>(*stride_fp) : 0; |
| auto offset_fp__ = offset_fp ? _fbb.CreateVector<float>(*offset_fp) : 0; |
| return tosa::CreateResizeAttribute( |
| _fbb, |
| output_size__, |
| stride__, |
| offset__, |
| shift, |
| stride_fp__, |
| offset_fp__, |
| mode); |
| } |
| |
| struct ClampAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { |
| enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { |
| VT_MIN_INT = 4, |
| VT_MAX_INT = 6, |
| VT_MIN_FP = 8, |
| VT_MAX_FP = 10 |
| }; |
| int32_t min_int() const { |
| return GetField<int32_t>(VT_MIN_INT, 0); |
| } |
| int32_t max_int() const { |
| return GetField<int32_t>(VT_MAX_INT, 0); |
| } |
| float min_fp() const { |
| return GetField<float>(VT_MIN_FP, 0.0f); |
| } |
| float max_fp() const { |
| return GetField<float>(VT_MAX_FP, 0.0f); |
| } |
| bool Verify(flatbuffers::Verifier &verifier) const { |
| return VerifyTableStart(verifier) && |
| VerifyField<int32_t>(verifier, VT_MIN_INT) && |
| VerifyField<int32_t>(verifier, VT_MAX_INT) && |
| VerifyField<float>(verifier, VT_MIN_FP) && |
| VerifyField<float>(verifier, VT_MAX_FP) && |
| verifier.EndTable(); |
| } |
| }; |
| |
| struct ClampAttributeBuilder { |
| flatbuffers::FlatBufferBuilder &fbb_; |
| flatbuffers::uoffset_t start_; |
| void add_min_int(int32_t min_int) { |
| fbb_.AddElement<int32_t>(ClampAttribute::VT_MIN_INT, min_int, 0); |
| } |
| void add_max_int(int32_t max_int) { |
| fbb_.AddElement<int32_t>(ClampAttribute::VT_MAX_INT, max_int, 0); |
| } |
| void add_min_fp(float min_fp) { |
| fbb_.AddElement<float>(ClampAttribute::VT_MIN_FP, min_fp, 0.0f); |
| } |
| void add_max_fp(float max_fp) { |
| fbb_.AddElement<float>(ClampAttribute::VT_MAX_FP, max_fp, 0.0f); |
| } |
| explicit ClampAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb) |
| : fbb_(_fbb) { |
| start_ = fbb_.StartTable(); |
| } |
| ClampAttributeBuilder &operator=(const ClampAttributeBuilder &); |
| flatbuffers::Offset<ClampAttribute> Finish() { |
| const auto end = fbb_.EndTable(start_); |
| auto o = flatbuffers::Offset<ClampAttribute>(end); |
| return o; |
| } |
| }; |
| |
| inline flatbuffers::Offset<ClampAttribute> CreateClampAttribute( |
| flatbuffers::FlatBufferBuilder &_fbb, |
| int32_t min_int = 0, |
| int32_t max_int = 0, |
| float min_fp = 0.0f, |
| float max_fp = 0.0f) { |
| ClampAttributeBuilder builder_(_fbb); |
| builder_.add_max_fp(max_fp); |
| builder_.add_min_fp(min_fp); |
| builder_.add_max_int(max_int); |
| builder_.add_min_int(min_int); |
| return builder_.Finish(); |
| } |
| |
| struct RescaleAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { |
| enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { |
| VT_INPUT_ZP = 4, |
| VT_OUTPUT_ZP = 6, |
| VT_MULTIPLIER = 8, |
| VT_SHIFT = 10, |
| VT_SCALE32 = 12, |
| VT_DOUBLE_ROUND = 14, |
| VT_PER_CHANNEL = 16 |
| }; |
| int32_t input_zp() const { |
| return GetField<int32_t>(VT_INPUT_ZP, 0); |
| } |
| int32_t output_zp() const { |
| return GetField<int32_t>(VT_OUTPUT_ZP, 0); |
| } |
| const flatbuffers::Vector<int32_t> *multiplier() const { |
| return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_MULTIPLIER); |
| } |
| const flatbuffers::Vector<int32_t> *shift() const { |
| return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_SHIFT); |
| } |
| bool scale32() const { |
| return GetField<uint8_t>(VT_SCALE32, 0) != 0; |
| } |
| bool double_round() const { |
| return GetField<uint8_t>(VT_DOUBLE_ROUND, 0) != 0; |
| } |
| bool per_channel() const { |
| return GetField<uint8_t>(VT_PER_CHANNEL, 0) != 0; |
| } |
| bool Verify(flatbuffers::Verifier &verifier) const { |
| return VerifyTableStart(verifier) && |
| VerifyField<int32_t>(verifier, VT_INPUT_ZP) && |
| VerifyField<int32_t>(verifier, VT_OUTPUT_ZP) && |
| VerifyOffset(verifier, VT_MULTIPLIER) && |
| verifier.VerifyVector(multiplier()) && |
| VerifyOffset(verifier, VT_SHIFT) && |
| verifier.VerifyVector(shift()) && |
| VerifyField<uint8_t>(verifier, VT_SCALE32) && |
| VerifyField<uint8_t>(verifier, VT_DOUBLE_ROUND) && |
| VerifyField<uint8_t>(verifier, VT_PER_CHANNEL) && |
| verifier.EndTable(); |
| } |
| }; |
| |
| struct RescaleAttributeBuilder { |
| flatbuffers::FlatBufferBuilder &fbb_; |
| flatbuffers::uoffset_t start_; |
| void add_input_zp(int32_t input_zp) { |
| fbb_.AddElement<int32_t>(RescaleAttribute::VT_INPUT_ZP, input_zp, 0); |
| } |
| void add_output_zp(int32_t output_zp) { |
| fbb_.AddElement<int32_t>(RescaleAttribute::VT_OUTPUT_ZP, output_zp, 0); |
| } |
| void add_multiplier(flatbuffers::Offset<flatbuffers::Vector<int32_t>> multiplier) { |
| fbb_.AddOffset(RescaleAttribute::VT_MULTIPLIER, multiplier); |
| } |
| void add_shift(flatbuffers::Offset<flatbuffers::Vector<int32_t>> shift) { |
| fbb_.AddOffset(RescaleAttribute::VT_SHIFT, shift); |
| } |
| void add_scale32(bool scale32) { |
| fbb_.AddElement<uint8_t>(RescaleAttribute::VT_SCALE32, static_cast<uint8_t>(scale32), 0); |
| } |
| void add_double_round(bool double_round) { |
| fbb_.AddElement<uint8_t>(RescaleAttribute::VT_DOUBLE_ROUND, static_cast<uint8_t>(double_round), 0); |
| } |
| void add_per_channel(bool per_channel) { |
| fbb_.AddElement<uint8_t>(RescaleAttribute::VT_PER_CHANNEL, static_cast<uint8_t>(per_channel), 0); |
| } |
| explicit RescaleAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb) |
| : fbb_(_fbb) { |
| start_ = fbb_.StartTable(); |
| } |
| RescaleAttributeBuilder &operator=(const RescaleAttributeBuilder &); |
| flatbuffers::Offset<RescaleAttribute> Finish() { |
| const auto end = fbb_.EndTable(start_); |
| auto o = flatbuffers::Offset<RescaleAttribute>(end); |
| return o; |
| } |
| }; |
| |
| inline flatbuffers::Offset<RescaleAttribute> CreateRescaleAttribute( |
| flatbuffers::FlatBufferBuilder &_fbb, |
| int32_t input_zp = 0, |
| int32_t output_zp = 0, |
| flatbuffers::Offset<flatbuffers::Vector<int32_t>> multiplier = 0, |
| flatbuffers::Offset<flatbuffers::Vector<int32_t>> shift = 0, |
| bool scale32 = false, |
| bool double_round = false, |
| bool per_channel = false) { |
| RescaleAttributeBuilder builder_(_fbb); |
| builder_.add_shift(shift); |
| builder_.add_multiplier(multiplier); |
| builder_.add_output_zp(output_zp); |
| builder_.add_input_zp(input_zp); |
| builder_.add_per_channel(per_channel); |
| builder_.add_double_round(double_round); |
| builder_.add_scale32(scale32); |
| return builder_.Finish(); |
| } |
| |
| inline flatbuffers::Offset<RescaleAttribute> CreateRescaleAttributeDirect( |
| flatbuffers::FlatBufferBuilder &_fbb, |
| int32_t input_zp = 0, |
| int32_t output_zp = 0, |
| const std::vector<int32_t> *multiplier = nullptr, |
| const std::vector<int32_t> *shift = nullptr, |
| bool scale32 = false, |
| bool double_round = false, |
| bool per_channel = false) { |
| auto multiplier__ = multiplier ? _fbb.CreateVector<int32_t>(*multiplier) : 0; |
| auto shift__ = shift ? _fbb.CreateVector<int32_t>(*shift) : 0; |
| return tosa::CreateRescaleAttribute( |
| _fbb, |
| input_zp, |
| output_zp, |
| multiplier__, |
| shift__, |
| scale32, |
| double_round, |
| per_channel); |
| } |
| |
| struct MulAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { |
| enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { |
| VT_SHIFT = 4 |
| }; |
| int32_t shift() const { |
| return GetField<int32_t>(VT_SHIFT, 0); |
| } |
| bool Verify(flatbuffers::Verifier &verifier) const { |
| return VerifyTableStart(verifier) && |
| VerifyField<int32_t>(verifier, VT_SHIFT) && |
| verifier.EndTable(); |
| } |
| }; |
| |
| struct MulAttributeBuilder { |
| flatbuffers::FlatBufferBuilder &fbb_; |
| flatbuffers::uoffset_t start_; |
| void add_shift(int32_t shift) { |
| fbb_.AddElement<int32_t>(MulAttribute::VT_SHIFT, shift, 0); |
| } |
| explicit MulAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb) |
| : fbb_(_fbb) { |
| start_ = fbb_.StartTable(); |
| } |
| MulAttributeBuilder &operator=(const MulAttributeBuilder &); |
| flatbuffers::Offset<MulAttribute> Finish() { |
| const auto end = fbb_.EndTable(start_); |
| auto o = flatbuffers::Offset<MulAttribute>(end); |
| return o; |
| } |
| }; |
| |
| inline flatbuffers::Offset<MulAttribute> 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 { |
| enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { |
| VT_ROUND = 4 |
| }; |
| bool round() const { |
| return GetField<uint8_t>(VT_ROUND, 0) != 0; |
| } |
| bool Verify(flatbuffers::Verifier &verifier) const { |
| return VerifyTableStart(verifier) && |
| VerifyField<uint8_t>(verifier, VT_ROUND) && |
| verifier.EndTable(); |
| } |
| }; |
| |
| struct ArithmeticRightShiftAttributeBuilder { |
| flatbuffers::FlatBufferBuilder &fbb_; |
| flatbuffers::uoffset_t start_; |
| void add_round(bool round) { |
| fbb_.AddElement<uint8_t>(ArithmeticRightShiftAttribute::VT_ROUND, static_cast<uint8_t>(round), 0); |
| } |
| explicit ArithmeticRightShiftAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb) |
| : fbb_(_fbb) { |
| start_ = fbb_.StartTable(); |
| } |
| ArithmeticRightShiftAttributeBuilder &operator=(const ArithmeticRightShiftAttributeBuilder &); |
| flatbuffers::Offset<ArithmeticRightShiftAttribute> Finish() { |
| const auto end = fbb_.EndTable(start_); |
| auto o = flatbuffers::Offset<ArithmeticRightShiftAttribute>(end); |
| return o; |
| } |
| }; |
| |
| inline flatbuffers::Offset<ArithmeticRightShiftAttribute> 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 { |
| enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { |
| VT_THEN_BRANCH = 4, |
| VT_ELSE_BRANCH = 6 |
| }; |
| const flatbuffers::String *then_branch() const { |
| return GetPointer<const flatbuffers::String *>(VT_THEN_BRANCH); |
| } |
| const flatbuffers::String *else_branch() const { |
| return GetPointer<const flatbuffers::String *>(VT_ELSE_BRANCH); |
| } |
| bool Verify(flatbuffers::Verifier &verifier) const { |
| return VerifyTableStart(verifier) && |
| VerifyOffset(verifier, VT_THEN_BRANCH) && |
| verifier.VerifyString(then_branch()) && |
| VerifyOffset(verifier, VT_ELSE_BRANCH) && |
| verifier.VerifyString(else_branch()) && |
| verifier.EndTable(); |
| } |
| }; |
| |
| struct CondIfAttributeBuilder { |
| flatbuffers::FlatBufferBuilder &fbb_; |
| flatbuffers::uoffset_t start_; |
| void add_then_branch(flatbuffers::Offset<flatbuffers::String> then_branch) { |
| fbb_.AddOffset(CondIfAttribute::VT_THEN_BRANCH, then_branch); |
| } |
| void add_else_branch(flatbuffers::Offset<flatbuffers::String> else_branch) { |
| fbb_.AddOffset(CondIfAttribute::VT_ELSE_BRANCH, else_branch); |
| } |
| explicit CondIfAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb) |
| : fbb_(_fbb) { |
| start_ = fbb_.StartTable(); |
| } |
| CondIfAttributeBuilder &operator=(const CondIfAttributeBuilder &); |
| flatbuffers::Offset<CondIfAttribute> Finish() { |
| const auto end = fbb_.EndTable(start_); |
| auto o = flatbuffers::Offset<CondIfAttribute>(end); |
| return o; |
| } |
| }; |
| |
| inline flatbuffers::Offset<CondIfAttribute> CreateCondIfAttribute( |
| flatbuffers::FlatBufferBuilder &_fbb, |
| flatbuffers::Offset<flatbuffers::String> then_branch = 0, |
| flatbuffers::Offset<flatbuffers::String> else_branch = 0) { |
| CondIfAttributeBuilder builder_(_fbb); |
| builder_.add_else_branch(else_branch); |
| builder_.add_then_branch(then_branch); |
| return builder_.Finish(); |
| } |
| |
| inline flatbuffers::Offset<CondIfAttribute> CreateCondIfAttributeDirect( |
| flatbuffers::FlatBufferBuilder &_fbb, |
| const char *then_branch = nullptr, |
| const char *else_branch = nullptr) { |
| auto then_branch__ = then_branch ? _fbb.CreateString(then_branch) : 0; |
| auto else_branch__ = else_branch ? _fbb.CreateString(else_branch) : 0; |
| return tosa::CreateCondIfAttribute( |
| _fbb, |
| then_branch__, |
| else_branch__); |
| } |
| |
| struct WhileLoopAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { |
| enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { |
| VT_COND_BRANCH = 4, |
| VT_BODY_BRANCH = 6 |
| }; |
| const flatbuffers::String *cond_branch() const { |
| return GetPointer<const flatbuffers::String *>(VT_COND_BRANCH); |
| } |
| const flatbuffers::String *body_branch() const { |
| return GetPointer<const flatbuffers::String *>(VT_BODY_BRANCH); |
| } |
| bool Verify(flatbuffers::Verifier &verifier) const { |
| return VerifyTableStart(verifier) && |
| VerifyOffset(verifier, VT_COND_BRANCH) && |
| verifier.VerifyString(cond_branch()) && |
| VerifyOffset(verifier, VT_BODY_BRANCH) && |
| verifier.VerifyString(body_branch()) && |
| verifier.EndTable(); |
| } |
| }; |
| |
| struct WhileLoopAttributeBuilder { |
| flatbuffers::FlatBufferBuilder &fbb_; |
| flatbuffers::uoffset_t start_; |
| void add_cond_branch(flatbuffers::Offset<flatbuffers::String> cond_branch) { |
| fbb_.AddOffset(WhileLoopAttribute::VT_COND_BRANCH, cond_branch); |
| } |
| void add_body_branch(flatbuffers::Offset<flatbuffers::String> body_branch) { |
| fbb_.AddOffset(WhileLoopAttribute::VT_BODY_BRANCH, body_branch); |
| } |
| explicit WhileLoopAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb) |
| : fbb_(_fbb) { |
| start_ = fbb_.StartTable(); |
| } |
| WhileLoopAttributeBuilder &operator=(const WhileLoopAttributeBuilder &); |
| flatbuffers::Offset<WhileLoopAttribute> Finish() { |
| const auto end = fbb_.EndTable(start_); |
| auto o = flatbuffers::Offset<WhileLoopAttribute>(end); |
| return o; |
| } |
| }; |
| |
| inline flatbuffers::Offset<WhileLoopAttribute> CreateWhileLoopAttribute( |
| flatbuffers::FlatBufferBuilder &_fbb, |
| flatbuffers::Offset<flatbuffers::String> cond_branch = 0, |
| flatbuffers::Offset<flatbuffers::String> body_branch = 0) { |
| WhileLoopAttributeBuilder builder_(_fbb); |
| builder_.add_body_branch(body_branch); |
| builder_.add_cond_branch(cond_branch); |
| return builder_.Finish(); |
| } |
| |
| inline flatbuffers::Offset<WhileLoopAttribute> CreateWhileLoopAttributeDirect( |
| flatbuffers::FlatBufferBuilder &_fbb, |
| const char *cond_branch = nullptr, |
| const char *body_branch = nullptr) { |
| auto cond_branch__ = cond_branch ? _fbb.CreateString(cond_branch) : 0; |
| auto body_branch__ = body_branch ? _fbb.CreateString(body_branch) : 0; |
| return tosa::CreateWhileLoopAttribute( |
| _fbb, |
| cond_branch__, |
| body_branch__); |
| } |
| |
| struct UnaryQuantInfo FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { |
| enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { |
| VT_INPUT_ZP = 4, |
| VT_OUTPUT_ZP = 6 |
| }; |
| int32_t input_zp() const { |
| return GetField<int32_t>(VT_INPUT_ZP, 0); |
| } |
| int32_t output_zp() const { |
| return GetField<int32_t>(VT_OUTPUT_ZP, 0); |
| } |
| bool Verify(flatbuffers::Verifier &verifier) const { |
| return VerifyTableStart(verifier) && |
| VerifyField<int32_t>(verifier, VT_INPUT_ZP) && |
| VerifyField<int32_t>(verifier, VT_OUTPUT_ZP) && |
| verifier.EndTable(); |
| } |
| }; |
| |
| struct UnaryQuantInfoBuilder { |
| flatbuffers::FlatBufferBuilder &fbb_; |
| flatbuffers::uoffset_t start_; |
| void add_input_zp(int32_t input_zp) { |
| fbb_.AddElement<int32_t>(UnaryQuantInfo::VT_INPUT_ZP, input_zp, 0); |
| } |
| void add_output_zp(int32_t output_zp) { |
| fbb_.AddElement<int32_t>(UnaryQuantInfo::VT_OUTPUT_ZP, output_zp, 0); |
| } |
| explicit UnaryQuantInfoBuilder(flatbuffers::FlatBufferBuilder &_fbb) |
| : fbb_(_fbb) { |
| start_ = fbb_.StartTable(); |
| } |
| UnaryQuantInfoBuilder &operator=(const UnaryQuantInfoBuilder &); |
| flatbuffers::Offset<UnaryQuantInfo> Finish() { |
| const auto end = fbb_.EndTable(start_); |
| auto o = flatbuffers::Offset<UnaryQuantInfo>(end); |
| return o; |
| } |
| }; |
| |
| inline flatbuffers::Offset<UnaryQuantInfo> CreateUnaryQuantInfo( |
| flatbuffers::FlatBufferBuilder &_fbb, |
| int32_t input_zp = 0, |
| int32_t output_zp = 0) { |
| UnaryQuantInfoBuilder builder_(_fbb); |
| builder_.add_output_zp(output_zp); |
| builder_.add_input_zp(input_zp); |
| return builder_.Finish(); |
| } |
| |
| struct ConvQuantInfo FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { |
| enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { |
| VT_INPUT_ZP = 4, |
| VT_WEIGHT_ZP = 6 |
| }; |
| int32_t input_zp() const { |
| return GetField<int32_t>(VT_INPUT_ZP, 0); |
| } |
| int32_t weight_zp() const { |
| return GetField<int32_t>(VT_WEIGHT_ZP, 0); |
| } |
| bool Verify(flatbuffers::Verifier &verifier) const { |
| return VerifyTableStart(verifier) && |
| VerifyField<int32_t>(verifier, VT_INPUT_ZP) && |
| VerifyField<int32_t>(verifier, VT_WEIGHT_ZP) && |
| verifier.EndTable(); |
| } |
| }; |
| |
| struct ConvQuantInfoBuilder { |
| flatbuffers::FlatBufferBuilder &fbb_; |
| flatbuffers::uoffset_t start_; |
| void add_input_zp(int32_t input_zp) { |
| fbb_.AddElement<int32_t>(ConvQuantInfo::VT_INPUT_ZP, input_zp, 0); |
| } |
| void add_weight_zp(int32_t weight_zp) { |
| fbb_.AddElement<int32_t>(ConvQuantInfo::VT_WEIGHT_ZP, weight_zp, 0); |
| } |
| explicit ConvQuantInfoBuilder(flatbuffers::FlatBufferBuilder &_fbb) |
| : fbb_(_fbb) { |
| start_ = fbb_.StartTable(); |
| } |
| ConvQuantInfoBuilder &operator=(const ConvQuantInfoBuilder &); |
| flatbuffers::Offset<ConvQuantInfo> Finish() { |
| const auto end = fbb_.EndTable(start_); |
| auto o = flatbuffers::Offset<ConvQuantInfo>(end); |
| return o; |
| } |
| }; |
| |
| inline flatbuffers::Offset<ConvQuantInfo> CreateConvQuantInfo( |
| flatbuffers::FlatBufferBuilder &_fbb, |
| int32_t input_zp = 0, |
| int32_t weight_zp = 0) { |
| ConvQuantInfoBuilder builder_(_fbb); |
| builder_.add_weight_zp(weight_zp); |
| builder_.add_input_zp(input_zp); |
| return builder_.Finish(); |
| } |
| |
| struct MatMulQuantInfo FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { |
| enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { |
| VT_A_ZP = 4, |
| VT_B_ZP = 6 |
| }; |
| int32_t a_zp() const { |
| return GetField<int32_t>(VT_A_ZP, 0); |
| } |
| int32_t b_zp() const { |
| return GetField<int32_t>(VT_B_ZP, 0); |
| } |
| bool Verify(flatbuffers::Verifier &verifier) const { |
| return VerifyTableStart(verifier) && |
| VerifyField<int32_t>(verifier, VT_A_ZP) && |
| VerifyField<int32_t>(verifier, VT_B_ZP) && |
| verifier.EndTable(); |
| } |
| }; |
| |
| struct MatMulQuantInfoBuilder { |
| flatbuffers::FlatBufferBuilder &fbb_; |
| flatbuffers::uoffset_t start_; |
| void add_a_zp(int32_t a_zp) { |
| fbb_.AddElement<int32_t>(MatMulQuantInfo::VT_A_ZP, a_zp, 0); |
| } |
| void add_b_zp(int32_t b_zp) { |
| fbb_.AddElement<int32_t>(MatMulQuantInfo::VT_B_ZP, b_zp, 0); |
| } |
| explicit MatMulQuantInfoBuilder(flatbuffers::FlatBufferBuilder &_fbb) |
| : fbb_(_fbb) { |
| start_ = fbb_.StartTable(); |
| } |
| MatMulQuantInfoBuilder &operator=(const MatMulQuantInfoBuilder &); |
| flatbuffers::Offset<MatMulQuantInfo> Finish() { |
| const auto end = fbb_.EndTable(start_); |
| auto o = flatbuffers::Offset<MatMulQuantInfo>(end); |
| return o; |
| } |
| }; |
| |
| inline flatbuffers::Offset<MatMulQuantInfo> CreateMatMulQuantInfo( |
| flatbuffers::FlatBufferBuilder &_fbb, |
| int32_t a_zp = 0, |
| int32_t b_zp = 0) { |
| MatMulQuantInfoBuilder builder_(_fbb); |
| builder_.add_b_zp(b_zp); |
| builder_.add_a_zp(a_zp); |
| return builder_.Finish(); |
| } |
| |
| struct PadQuantInfo FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { |
| enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { |
| VT_INPUT_ZP = 4 |
| }; |
| int32_t input_zp() const { |
| return GetField<int32_t>(VT_INPUT_ZP, 0); |
| } |
| bool Verify(flatbuffers::Verifier &verifier) const { |
| return VerifyTableStart(verifier) && |
| VerifyField<int32_t>(verifier, VT_INPUT_ZP) && |
| verifier.EndTable(); |
| } |
| }; |
| |
| struct PadQuantInfoBuilder { |
| flatbuffers::FlatBufferBuilder &fbb_; |
| flatbuffers::uoffset_t start_; |
| void add_input_zp(int32_t input_zp) { |
| fbb_.AddElement<int32_t>(PadQuantInfo::VT_INPUT_ZP, input_zp, 0); |
| } |
| explicit PadQuantInfoBuilder(flatbuffers::FlatBufferBuilder &_fbb) |
| : fbb_(_fbb) { |
| start_ = fbb_.StartTable(); |
| } |
| PadQuantInfoBuilder &operator=(const PadQuantInfoBuilder &); |
| flatbuffers::Offset<PadQuantInfo> Finish() { |
| const auto end = fbb_.EndTable(start_); |
| auto o = flatbuffers::Offset<PadQuantInfo>(end); |
| return o; |
| } |
| }; |
| |
| inline flatbuffers::Offset<PadQuantInfo> CreatePadQuantInfo( |
| flatbuffers::FlatBufferBuilder &_fbb, |
| int32_t input_zp = 0) { |
| PadQuantInfoBuilder builder_(_fbb); |
| builder_.add_input_zp(input_zp); |
| return builder_.Finish(); |
| } |
| |
| struct Version FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { |
| enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { |
| VT__MAJOR = 4, |
| VT__MINOR = 6, |
| VT__PATCH = 8, |
| VT__EXPERIMENTAL = 10 |
| }; |
| int32_t _major() const { |
| return GetField<int32_t>(VT__MAJOR, 0); |
| } |
| int32_t _minor() const { |
| return GetField<int32_t>(VT__MINOR, 21); |
| } |
| int32_t _patch() const { |
| return GetField<int32_t>(VT__PATCH, 0); |
| } |
| bool _experimental() const { |
| return GetField<uint8_t>(VT__EXPERIMENTAL, 0) != 0; |
| } |
| bool Verify(flatbuffers::Verifier &verifier) const { |
| return VerifyTableStart(verifier) && |
| VerifyField<int32_t>(verifier, VT__MAJOR) && |
| VerifyField<int32_t>(verifier, VT__MINOR) && |
| VerifyField<int32_t>(verifier, VT__PATCH) && |
| VerifyField<uint8_t>(verifier, VT__EXPERIMENTAL) && |
| verifier.EndTable(); |
| } |
| }; |
| |
| struct VersionBuilder { |
| flatbuffers::FlatBufferBuilder &fbb_; |
| flatbuffers::uoffset_t start_; |
| void add__major(int32_t _major) { |
| fbb_.AddElement<int32_t>(Version::VT__MAJOR, _major, 0); |
| } |
| void add__minor(int32_t _minor) { |
| fbb_.AddElement<int32_t>(Version::VT__MINOR, _minor, 21); |
| } |
| void add__patch(int32_t _patch) { |
| fbb_.AddElement<int32_t>(Version::VT__PATCH, _patch, 0); |
| } |
| void add__experimental(bool _experimental) { |
| fbb_.AddElement<uint8_t>(Version::VT__EXPERIMENTAL, static_cast<uint8_t>(_experimental), 0); |
| } |
| explicit VersionBuilder(flatbuffers::FlatBufferBuilder &_fbb) |
| : fbb_(_fbb) { |
| start_ = fbb_.StartTable(); |
| } |
| VersionBuilder &operator=(const VersionBuilder &); |
| flatbuffers::Offset<Version> Finish() { |
| const auto end = fbb_.EndTable(start_); |
| auto o = flatbuffers::Offset<Version>(end); |
| return o; |
| } |
| }; |
| |
| inline flatbuffers::Offset<Version> CreateVersion( |
| flatbuffers::FlatBufferBuilder &_fbb, |
| int32_t _major = 0, |
| int32_t _minor = 21, |
| int32_t _patch = 0, |
| bool _experimental = false) { |
| VersionBuilder builder_(_fbb); |
| builder_.add__patch(_patch); |
| builder_.add__minor(_minor); |
| builder_.add__major(_major); |
| builder_.add__experimental(_experimental); |
| return builder_.Finish(); |
| } |
| |
| struct TosaTensor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { |
| enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { |
| VT_NAME = 4, |
| VT_SHAPE = 6, |
| VT_TYPE = 8, |
| VT_USAGE = 10, |
| VT_FORMAT = 12, |
| VT_NPY_FILENAME = 14 |
| }; |
| const flatbuffers::String *name() const { |
| return GetPointer<const flatbuffers::String *>(VT_NAME); |
| } |
| const flatbuffers::Vector<int32_t> *shape() const { |
| return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_SHAPE); |
| } |
| DType type() const { |
| return static_cast<DType>(GetField<uint32_t>(VT_TYPE, 0)); |
| } |
| const flatbuffers::Vector<uint32_t> *usage() const { |
| return GetPointer<const flatbuffers::Vector<uint32_t> *>(VT_USAGE); |
| } |
| const flatbuffers::Vector<uint32_t> *format() const { |
| return GetPointer<const flatbuffers::Vector<uint32_t> *>(VT_FORMAT); |
| } |
| const flatbuffers::String *npy_filename() const { |
| return GetPointer<const flatbuffers::String *>(VT_NPY_FILENAME); |
| } |
| bool Verify(flatbuffers::Verifier &verifier) const { |
| return VerifyTableStart(verifier) && |
| VerifyOffset(verifier, VT_NAME) && |
| verifier.VerifyString(name()) && |
| VerifyOffset(verifier, VT_SHAPE) && |
| verifier.VerifyVector(shape()) && |
| VerifyField<uint32_t>(verifier, VT_TYPE) && |
| VerifyOffset(verifier, VT_USAGE) && |
| verifier.VerifyVector(usage()) && |
| VerifyOffset(verifier, VT_FORMAT) && |
| verifier.VerifyVector(format()) && |
| VerifyOffset(verifier, VT_NPY_FILENAME) && |
| verifier.VerifyString(npy_filename()) && |
| verifier.EndTable(); |
| } |
| }; |
| |
| struct TosaTensorBuilder { |
| 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<int32_t>> shape) { |
| fbb_.AddOffset(TosaTensor::VT_SHAPE, shape); |
| } |
| void add_type(DType type) { |
| fbb_.AddElement<uint32_t>(TosaTensor::VT_TYPE, static_cast<uint32_t>(type), 0); |
| } |
| void add_usage(flatbuffers::Offset<flatbuffers::Vector<uint32_t>> usage) { |
| fbb_.AddOffset(TosaTensor::VT_USAGE, usage); |
| } |
| void add_format(flatbuffers::Offset<flatbuffers::Vector<uint32_t>> format) { |
| fbb_.AddOffset(TosaTensor::VT_FORMAT, format); |
| } |
| void add_npy_filename(flatbuffers::Offset<flatbuffers::String> npy_filename) { |
| fbb_.AddOffset(TosaTensor::VT_NPY_FILENAME, npy_filename); |
| } |
| explicit TosaTensorBuilder(flatbuffers::FlatBufferBuilder &_fbb) |
| : fbb_(_fbb) { |
| start_ = fbb_.StartTable(); |
| } |
| TosaTensorBuilder &operator=(const TosaTensorBuilder &); |
| flatbuffers::Offset<TosaTensor> Finish() { |
| const auto end = fbb_.EndTable(start_); |
| auto o = flatbuffers::Offset<TosaTensor>(end); |
| return o; |
| } |
| }; |
| |
| inline flatbuffers::Offset<TosaTensor> CreateTosaTensor( |
| flatbuffers::FlatBufferBuilder &_fbb, |
| flatbuffers::Offset<flatbuffers::String> name = 0, |
| flatbuffers::Offset<flatbuffers::Vector<int32_t>> shape = 0, |
| DType type = DType_UNKNOWN, |
| flatbuffers::Offset<flatbuffers::Vector<uint32_t>> usage = 0, |
| flatbuffers::Offset<flatbuffers::Vector<uint32_t>> format = 0, |
| flatbuffers::Offset<flatbuffers::String> npy_filename = 0) { |
| TosaTensorBuilder builder_(_fbb); |
| builder_.add_npy_filename(npy_filename); |
| builder_.add_format(format); |
| builder_.add_usage(usage); |
| builder_.add_type(type); |
| builder_.add_shape(shape); |
| builder_.add_name(name); |
| return builder_.Finish(); |
| } |
| |
| inline flatbuffers::Offset<TosaTensor> CreateTosaTensorDirect( |
| flatbuffers::FlatBufferBuilder &_fbb, |
| const char *name = nullptr, |
| const std::vector<int32_t> *shape = nullptr, |
| DType type = DType_UNKNOWN, |
| const std::vector<uint32_t> *usage = nullptr, |
| const std::vector<uint32_t> *format = nullptr, |
| const char *npy_filename = nullptr) { |
| auto name__ = name ? _fbb.CreateString(name) : 0; |
| auto shape__ = shape ? _fbb.CreateVector<int32_t>(*shape) : 0; |
| auto usage__ = usage ? _fbb.CreateVector<uint32_t>(*usage) : 0; |
| auto format__ = format ? _fbb.CreateVector<uint32_t>(*format) : 0; |
| auto npy_filename__ = npy_filename ? _fbb.CreateString(npy_filename) : 0; |
| return tosa::CreateTosaTensor( |
| _fbb, |
| name__, |
| shape__, |
| type, |
| usage__, |
| format__, |
| npy_filename__); |
| } |
| |
| struct TosaOperator FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { |
| enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { |
| VT_OP = 4, |
| VT_ATTRIBUTE_TYPE = 6, |
| VT_ATTRIBUTE = 8, |
| VT_INPUTS = 10, |
| VT_OUTPUTS = 12, |
| VT_QUANT_INFO_TYPE = 14, |
| VT_QUANT_INFO = 16 |
| }; |
| Op op() const { |
| return static_cast<Op>(GetField<uint32_t>(VT_OP, 0)); |
| } |
| Attribute attribute_type() const { |
| return static_cast<Attribute>(GetField<uint8_t>(VT_ATTRIBUTE_TYPE, 0)); |
| } |
| const void *attribute() const { |
| return GetPointer<const void *>(VT_ATTRIBUTE); |
| } |
| template<typename T> const T *attribute_as() const; |
| const Pool2dAttribute *attribute_as_Pool2dAttribute() const { |
| return attribute_type() == Attribute_Pool2dAttribute ? static_cast<const Pool2dAttribute *>(attribute()) : nullptr; |
| } |
| const Conv2dAttribute *attribute_as_Conv2dAttribute() const { |
| return attribute_type() == Attribute_Conv2dAttribute ? static_cast<const Conv2dAttribute *>(attribute()) : nullptr; |
| } |
| const TransposeConv2dAttribute *attribute_as_TransposeConv2dAttribute() const { |
| return attribute_type() == Attribute_TransposeConv2dAttribute ? static_cast<const TransposeConv2dAttribute *>(attribute()) : nullptr; |
| } |
| const ReluNAttribute *attribute_as_ReluNAttribute() const { |
| return attribute_type() == Attribute_ReluNAttribute ? static_cast<const ReluNAttribute *>(attribute()) : nullptr; |
| } |
| const AxisAttribute *attribute_as_AxisAttribute() const { |
| return attribute_type() == Attribute_AxisAttribute ? static_cast<const AxisAttribute *>(attribute()) : nullptr; |
| } |
| const ReshapeAttribute *attribute_as_ReshapeAttribute() const { |
| return attribute_type() == Attribute_ReshapeAttribute ? static_cast<const ReshapeAttribute *>(attribute()) : nullptr; |
| } |
| const SliceAttribute *attribute_as_SliceAttribute() const { |
| return attribute_type() == Attribute_SliceAttribute ? static_cast<const SliceAttribute *>(attribute()) : nullptr; |
| } |
| const TileAttribute *attribute_as_TileAttribute() const { |
| return attribute_type() == Attribute_TileAttribute ? static_cast<const TileAttribute *>(attribute()) : nullptr; |
| } |
| const ResizeAttribute *attribute_as_ResizeAttribute() const { |
| return attribute_type() == Attribute_ResizeAttribute ? static_cast<const ResizeAttribute *>(attribute()) : nullptr; |
| } |
| const ClampAttribute *attribute_as_ClampAttribute() const { |
| return attribute_type() == Attribute_ClampAttribute ? static_cast<const ClampAttribute *>(attribute()) : nullptr; |
| } |
| const RescaleAttribute *attribute_as_RescaleAttribute() const { |
| return attribute_type() == Attribute_RescaleAttribute ? static_cast<const RescaleAttribute *>(attribute()) : nullptr; |
| } |
| const MulAttribute *attribute_as_MulAttribute() const { |
| return attribute_type() == Attribute_MulAttribute ? static_cast<const MulAttribute *>(attribute()) : nullptr; |
| } |
| const ArithmeticRightShiftAttribute *attribute_as_ArithmeticRightShiftAttribute() const { |
| return attribute_type() == Attribute_ArithmeticRightShiftAttribute ? static_cast<const ArithmeticRightShiftAttribute *>(attribute()) : nullptr; |
| } |
| const CondIfAttribute *attribute_as_CondIfAttribute() const { |
| return attribute_type() == Attribute_CondIfAttribute ? static_cast<const CondIfAttribute *>(attribute()) : nullptr; |
| } |
| const WhileLoopAttribute *attribute_as_WhileLoopAttribute() const { |
| return attribute_type() == Attribute_WhileLoopAttribute ? static_cast<const WhileLoopAttribute *>(attribute()) : nullptr; |
| } |
| const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *inputs() const { |
| return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_INPUTS); |
| } |
| const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *outputs() const { |
| return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_OUTPUTS); |
| } |
| QuantInfo quant_info_type() const { |
| return static_cast<QuantInfo>(GetField<uint8_t>(VT_QUANT_INFO_TYPE, 0)); |
| } |
| const void *quant_info() const { |
| return GetPointer<const void *>(VT_QUANT_INFO); |
| } |
| template<typename T> const T *quant_info_as() const; |
| const UnaryQuantInfo *quant_info_as_UnaryQuantInfo() const { |
| return quant_info_type() == QuantInfo_UnaryQuantInfo ? static_cast<const UnaryQuantInfo *>(quant_info()) : nullptr; |
| } |
| const ConvQuantInfo *quant_info_as_ConvQuantInfo() const { |
| return quant_info_type() == QuantInfo_ConvQuantInfo ? static_cast<const ConvQuantInfo *>(quant_info()) : nullptr; |
| } |
| const MatMulQuantInfo *quant_info_as_MatMulQuantInfo() const { |
| return quant_info_type() == QuantInfo_MatMulQuantInfo ? static_cast<const MatMulQuantInfo *>(quant_info()) : nullptr; |
| } |
| const PadQuantInfo *quant_info_as_PadQuantInfo() const { |
| return quant_info_type() == QuantInfo_PadQuantInfo ? static_cast<const PadQuantInfo *>(quant_info()) : nullptr; |
| } |
| bool Verify(flatbuffers::Verifier &verifier) const { |
| return VerifyTableStart(verifier) && |
| VerifyField<uint32_t>(verifier, VT_OP) && |
| VerifyField<uint8_t>(verifier, VT_ATTRIBUTE_TYPE) && |
| 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()) && |
| VerifyField<uint8_t>(verifier, VT_QUANT_INFO_TYPE) && |
| VerifyOffset(verifier, VT_QUANT_INFO) && |
| VerifyQuantInfo(verifier, quant_info(), quant_info_type()) && |
| verifier.EndTable(); |
| } |
| }; |
| |
| template<> inline const Pool2dAttribute *TosaOperator::attribute_as<Pool2dAttribute>() const { |
| return attribute_as_Pool2dAttribute(); |
| } |
| |
| template<> inline const Conv2dAttribute *TosaOperator::attribute_as<Conv2dAttribute>() const { |
| return attribute_as_Conv2dAttribute(); |
| } |
| |
| template<> inline const TransposeConv2dAttribute *TosaOperator::attribute_as<TransposeConv2dAttribute>() const { |
| return attribute_as_TransposeConv2dAttribute(); |
| } |
| |
| template<> inline const ReluNAttribute *TosaOperator::attribute_as<ReluNAttribute>() const { |
| return attribute_as_ReluNAttribute(); |
| } |
| |
| template<> inline const AxisAttribute *TosaOperator::attribute_as<AxisAttribute>() const { |
| return attribute_as_AxisAttribute(); |
| } |
| |
| template<> inline const ReshapeAttribute *TosaOperator::attribute_as<ReshapeAttribute>() const { |
| return attribute_as_ReshapeAttribute(); |
| } |
| |
| template<> inline const SliceAttribute *TosaOperator::attribute_as<SliceAttribute>() const { |
| return attribute_as_SliceAttribute(); |
| } |
| |
| template<> inline const TileAttribute *TosaOperator::attribute_as<TileAttribute>() const { |
| return attribute_as_TileAttribute(); |
| } |
| |
| template<> inline const ResizeAttribute *TosaOperator::attribute_as<ResizeAttribute>() const { |
| return attribute_as_ResizeAttribute(); |
| } |
| |
| template<> inline const ClampAttribute *TosaOperator::attribute_as<ClampAttribute>() const { |
| return attribute_as_ClampAttribute(); |
| } |
| |
| template<> inline const RescaleAttribute *TosaOperator::attribute_as<RescaleAttribute>() const { |
| return attribute_as_RescaleAttribute(); |
| } |
| |
| template<> inline const MulAttribute *TosaOperator::attribute_as<MulAttribute>() const { |
| return attribute_as_MulAttribute(); |
| } |
| |
| template<> inline const ArithmeticRightShiftAttribute *TosaOperator::attribute_as<ArithmeticRightShiftAttribute>() const { |
| return attribute_as_ArithmeticRightShiftAttribute(); |
| } |
| |
| template<> inline const CondIfAttribute *TosaOperator::attribute_as<CondIfAttribute>() const { |
| return attribute_as_CondIfAttribute(); |
| } |
| |
| template<> inline const WhileLoopAttribute *TosaOperator::attribute_as<WhileLoopAttribute>() const { |
| return attribute_as_WhileLoopAttribute(); |
| } |
| |
| template<> inline const UnaryQuantInfo *TosaOperator::quant_info_as<UnaryQuantInfo>() const { |
| return quant_info_as_UnaryQuantInfo(); |
| } |
| |
| template<> inline const ConvQuantInfo *TosaOperator::quant_info_as<ConvQuantInfo>() const { |
| return quant_info_as_ConvQuantInfo(); |
| } |
| |
| template<> inline const MatMulQuantInfo *TosaOperator::quant_info_as<MatMulQuantInfo>() const { |
| return quant_info_as_MatMulQuantInfo(); |
| } |
| |
| template<> inline const PadQuantInfo *TosaOperator::quant_info_as<PadQuantInfo>() const { |
| return quant_info_as_PadQuantInfo(); |
| } |
| |
| struct TosaOperatorBuilder { |
| flatbuffers::FlatBufferBuilder &fbb_; |
| flatbuffers::uoffset_t start_; |
| void add_op(Op op) { |
| fbb_.AddElement<uint32_t>(TosaOperator::VT_OP, static_cast<uint32_t>(op), 0); |
| } |
| void add_attribute_type(Attribute attribute_type) { |
| fbb_.AddElement<uint8_t>(TosaOperator::VT_ATTRIBUTE_TYPE, static_cast<uint8_t>(attribute_type), 0); |
| } |
| void add_attribute(flatbuffers::Offset<void> 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); |
| } |
| void add_quant_info_type(QuantInfo quant_info_type) { |
| fbb_.AddElement<uint8_t>(TosaOperator::VT_QUANT_INFO_TYPE, static_cast<uint8_t>(quant_info_type), 0); |
| } |
| void add_quant_info(flatbuffers::Offset<void> quant_info) { |
| fbb_.AddOffset(TosaOperator::VT_QUANT_INFO, quant_info); |
| } |
| explicit TosaOperatorBuilder(flatbuffers::FlatBufferBuilder &_fbb) |
| : fbb_(_fbb) { |
| start_ = fbb_.StartTable(); |
| } |
| TosaOperatorBuilder &operator=(const TosaOperatorBuilder &); |
| flatbuffers::Offset<TosaOperator> Finish() { |
| const auto end = fbb_.EndTable(start_); |
| auto o = flatbuffers::Offset<TosaOperator>(end); |
| return o; |
| } |
| }; |
| |
| inline flatbuffers::Offset<TosaOperator> CreateTosaOperator( |
| flatbuffers::FlatBufferBuilder &_fbb, |
| Op op = Op_UNKNOWN, |
| Attribute attribute_type = Attribute_NONE, |
| flatbuffers::Offset<void> attribute = 0, |
| flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> inputs = 0, |
| flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputs = 0, |
| QuantInfo quant_info_type = QuantInfo_NONE, |
| flatbuffers::Offset<void> quant_info = 0) { |
| TosaOperatorBuilder builder_(_fbb); |
| builder_.add_quant_info(quant_info); |
| builder_.add_outputs(outputs); |
| builder_.add_inputs(inputs); |
| builder_.add_attribute(attribute); |
| builder_.add_op(op); |
| builder_.add_quant_info_type(quant_info_type); |
| builder_.add_attribute_type(attribute_type); |
| return builder_.Finish(); |
| } |
| |
| inline flatbuffers::Offset<TosaOperator> CreateTosaOperatorDirect( |
| flatbuffers::FlatBufferBuilder &_fbb, |
| Op op = Op_UNKNOWN, |
| Attribute attribute_type = Attribute_NONE, |
| flatbuffers::Offset<void> attribute = 0, |
| const std::vector<flatbuffers::Offset<flatbuffers::String>> *inputs = nullptr, |
| const std::vector<flatbuffers::Offset<flatbuffers::String>> *outputs = nullptr, |
| QuantInfo quant_info_type = QuantInfo_NONE, |
| flatbuffers::Offset<void> quant_info = 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::CreateTosaOperator( |
| _fbb, |
| op, |
| attribute_type, |
| attribute, |
| inputs__, |
| outputs__, |
| quant_info_type, |
| quant_info); |
| } |
| |
| struct TosaBasicBlock FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { |
| 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<const flatbuffers::String *>(VT_NAME); |
| } |
| const flatbuffers::Vector<flatbuffers::Offset<TosaOperator>> *operators() const { |
| return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<TosaOperator>> *>(VT_OPERATORS); |
| } |
| const flatbuffers::Vector<flatbuffers::Offset<TosaTensor>> *tensors() const { |
| return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<TosaTensor>> *>(VT_TENSORS); |
| } |
| const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *inputs() const { |
| return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_INPUTS); |
| } |
| const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *outputs() const { |
| return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(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 { |
| 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<TosaOperator>>> operators) { |
| fbb_.AddOffset(TosaBasicBlock::VT_OPERATORS, operators); |
| } |
| void add_tensors(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<TosaTensor>>> 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(); |
| } |
| TosaBasicBlockBuilder &operator=(const TosaBasicBlockBuilder &); |
| flatbuffers::Offset<TosaBasicBlock> Finish() { |
| const auto end = fbb_.EndTable(start_); |
| auto o = flatbuffers::Offset<TosaBasicBlock>(end); |
| return o; |
| } |
| }; |
| |
| inline flatbuffers::Offset<TosaBasicBlock> CreateTosaBasicBlock( |
| flatbuffers::FlatBufferBuilder &_fbb, |
| flatbuffers::Offset<flatbuffers::String> name = 0, |
| flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<TosaOperator>>> operators = 0, |
| flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<TosaTensor>>> 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<TosaBasicBlock> CreateTosaBasicBlockDirect( |
| flatbuffers::FlatBufferBuilder &_fbb, |
| const char *name = nullptr, |
| const std::vector<flatbuffers::Offset<TosaOperator>> *operators = nullptr, |
| const std::vector<flatbuffers::Offset<TosaTensor>> *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<TosaOperator>>(*operators) : 0; |
| auto tensors__ = tensors ? _fbb.CreateVector<flatbuffers::Offset<TosaTensor>>(*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 TosaGraph FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { |
| enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { |
| VT_VERSION = 4, |
| VT_BLOCKS = 6 |
| }; |
| const Version *version() const { |
| return GetPointer<const Version *>(VT_VERSION); |
| } |
| const flatbuffers::Vector<flatbuffers::Offset<TosaBasicBlock>> *blocks() const { |
| return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<TosaBasicBlock>> *>(VT_BLOCKS); |
| } |
| bool Verify(flatbuffers::Verifier &verifier) const { |
| return VerifyTableStart(verifier) && |
| VerifyOffset(verifier, VT_VERSION) && |
| verifier.VerifyTable(version()) && |
| VerifyOffset(verifier, VT_BLOCKS) && |
| verifier.VerifyVector(blocks()) && |
| verifier.VerifyVectorOfTables(blocks()) && |
| verifier.EndTable(); |
| } |
| }; |
| |
| struct TosaGraphBuilder { |
| flatbuffers::FlatBufferBuilder &fbb_; |
| flatbuffers::uoffset_t start_; |
| void add_version(flatbuffers::Offset<Version> version) { |
| fbb_.AddOffset(TosaGraph::VT_VERSION, version); |
| } |
| void add_blocks(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<TosaBasicBlock>>> blocks) { |
| fbb_.AddOffset(TosaGraph::VT_BLOCKS, blocks); |
| } |
| explicit TosaGraphBuilder(flatbuffers::FlatBufferBuilder &_fbb) |
| : fbb_(_fbb) { |
| start_ = fbb_.StartTable(); |
| } |
| TosaGraphBuilder &operator=(const TosaGraphBuilder &); |
| flatbuffers::Offset<TosaGraph> Finish() { |
| const auto end = fbb_.EndTable(start_); |
| auto o = flatbuffers::Offset<TosaGraph>(end); |
| return o; |
| } |
| }; |
| |
| inline flatbuffers::Offset<TosaGraph> CreateTosaGraph( |
| flatbuffers::FlatBufferBuilder &_fbb, |
| flatbuffers::Offset<Version> version = 0, |
| flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<TosaBasicBlock>>> blocks = 0) { |
| TosaGraphBuilder builder_(_fbb); |
| builder_.add_blocks(blocks); |
| builder_.add_version(version); |
| return builder_.Finish(); |
| } |
| |
| inline flatbuffers::Offset<TosaGraph> CreateTosaGraphDirect( |
| flatbuffers::FlatBufferBuilder &_fbb, |
| flatbuffers::Offset<Version> version = 0, |
| const std::vector<flatbuffers::Offset<TosaBasicBlock>> *blocks = nullptr) { |
| auto blocks__ = blocks ? _fbb.CreateVector<flatbuffers::Offset<TosaBasicBlock>>(*blocks) : 0; |
| return tosa::CreateTosaGraph( |
| _fbb, |
| version, |
| blocks__); |
| } |
| |
| inline bool VerifyAttribute(flatbuffers::Verifier &verifier, const void *obj, Attribute type) { |
| switch (type) { |
| case Attribute_NONE: { |
| return true; |
| } |
| case Attribute_Pool2dAttribute: { |
| auto ptr = reinterpret_cast<const Pool2dAttribute *>(obj); |
| return verifier.VerifyTable(ptr); |
| } |
| case Attribute_Conv2dAttribute: { |
| auto ptr = reinterpret_cast<const Conv2dAttribute *>(obj); |
| return verifier.VerifyTable(ptr); |
| } |
| case Attribute_TransposeConv2dAttribute: { |
| auto ptr = reinterpret_cast<const TransposeConv2dAttribute *>(obj); |
| return verifier.VerifyTable(ptr); |
| } |
| case Attribute_ReluNAttribute: { |
| auto ptr = reinterpret_cast<const ReluNAttribute *>(obj); |
| return verifier.VerifyTable(ptr); |
| } |
| case Attribute_AxisAttribute: { |
| auto ptr = reinterpret_cast<const AxisAttribute *>(obj); |
| return verifier.VerifyTable(ptr); |
| } |
| case Attribute_ReshapeAttribute: { |
| auto ptr = reinterpret_cast<const ReshapeAttribute *>(obj); |
| return verifier.VerifyTable(ptr); |
| } |
| case Attribute_SliceAttribute: { |
| auto ptr = reinterpret_cast<const SliceAttribute *>(obj); |
| return verifier.VerifyTable(ptr); |
| } |
| case Attribute_TileAttribute: { |
| auto ptr = reinterpret_cast<const TileAttribute *>(obj); |
| return verifier.VerifyTable(ptr); |
| } |
| case Attribute_ResizeAttribute: { |
| auto ptr = reinterpret_cast<const ResizeAttribute *>(obj); |
| return verifier.VerifyTable(ptr); |
| } |
| case Attribute_ClampAttribute: { |
| auto ptr = reinterpret_cast<const ClampAttribute *>(obj); |
| return verifier.VerifyTable(ptr); |
| } |
| case Attribute_RescaleAttribute: { |
| auto ptr = reinterpret_cast<const RescaleAttribute *>(obj); |
| return verifier.VerifyTable(ptr); |
| } |
| case Attribute_MulAttribute: { |
| auto ptr = reinterpret_cast<const MulAttribute *>(obj); |
| return verifier.VerifyTable(ptr); |
| } |
| case Attribute_ArithmeticRightShiftAttribute: { |
| auto ptr = reinterpret_cast<const ArithmeticRightShiftAttribute *>(obj); |
| return verifier.VerifyTable(ptr); |
| } |
| case Attribute_CondIfAttribute: { |
| auto ptr = reinterpret_cast<const CondIfAttribute *>(obj); |
| return verifier.VerifyTable(ptr); |
| } |
| case Attribute_WhileLoopAttribute: { |
| auto ptr = reinterpret_cast<const WhileLoopAttribute *>(obj); |
| return verifier.VerifyTable(ptr); |
| } |
| default: return false; |
| } |
| } |
| |
| inline bool VerifyAttributeVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<uint8_t> *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<Attribute>(i))) { |
| return false; |
| } |
| } |
| return true; |
| } |
| |
| inline bool VerifyQuantInfo(flatbuffers::Verifier &verifier, const void *obj, QuantInfo type) { |
| switch (type) { |
| case QuantInfo_NONE: { |
| return true; |
| } |
| case QuantInfo_UnaryQuantInfo: { |
| auto ptr = reinterpret_cast<const UnaryQuantInfo *>(obj); |
| return verifier.VerifyTable(ptr); |
| } |
| case QuantInfo_ConvQuantInfo: { |
| auto ptr = reinterpret_cast<const ConvQuantInfo *>(obj); |
| return verifier.VerifyTable(ptr); |
| } |
| case QuantInfo_MatMulQuantInfo: { |
| auto ptr = reinterpret_cast<const MatMulQuantInfo *>(obj); |
| return verifier.VerifyTable(ptr); |
| } |
| case QuantInfo_PadQuantInfo: { |
| auto ptr = reinterpret_cast<const PadQuantInfo *>(obj); |
| return verifier.VerifyTable(ptr); |
| } |
| default: return false; |
| } |
| } |
| |
| inline bool VerifyQuantInfoVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<uint8_t> *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 (!VerifyQuantInfo( |
| verifier, values->Get(i), types->GetEnum<QuantInfo>(i))) { |
| return false; |
| } |
| } |
| return true; |
| } |
| |
| inline const tosa::TosaGraph *GetTosaGraph(const void *buf) { |
| return flatbuffers::GetRoot<tosa::TosaGraph>(buf); |
| } |
| |
| inline const tosa::TosaGraph *GetSizePrefixedTosaGraph(const void *buf) { |
| return flatbuffers::GetSizePrefixedRoot<tosa::TosaGraph>(buf); |
| } |
| |
| inline const char *TosaGraphIdentifier() { |
| return "TOSA"; |
| } |
| |
| inline bool TosaGraphBufferHasIdentifier(const void *buf) { |
| return flatbuffers::BufferHasIdentifier( |
| buf, TosaGraphIdentifier()); |
| } |
| |
| inline bool VerifyTosaGraphBuffer( |
| flatbuffers::Verifier &verifier) { |
| return verifier.VerifyBuffer<tosa::TosaGraph>(TosaGraphIdentifier()); |
| } |
| |
| inline bool VerifySizePrefixedTosaGraphBuffer( |
| flatbuffers::Verifier &verifier) { |
| return verifier.VerifySizePrefixedBuffer<tosa::TosaGraph>(TosaGraphIdentifier()); |
| } |
| |
| inline const char *TosaGraphExtension() { |
| return "tosa"; |
| } |
| |
| inline void FinishTosaGraphBuffer( |
| flatbuffers::FlatBufferBuilder &fbb, |
| flatbuffers::Offset<tosa::TosaGraph> root) { |
| fbb.Finish(root, TosaGraphIdentifier()); |
| } |
| |
| inline void FinishSizePrefixedTosaGraphBuffer( |
| flatbuffers::FlatBufferBuilder &fbb, |
| flatbuffers::Offset<tosa::TosaGraph> root) { |
| fbb.FinishSizePrefixed(root, TosaGraphIdentifier()); |
| } |
| |
| } // namespace tosa |
| |
| #endif // FLATBUFFERS_GENERATED_TOSA_TOSA_H_ |