--- /dev/null
+%{
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * 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.
+ */
+
+#include "ONNXOpType.h"
+
+using namespace nnc;
+
+%}
+
+%language=C++
+%define class-name ONNXPerfectHash
+%struct-type
+%define lookup-function-name getONNXOpType
+%readonly-tables
+%enum
+%omit-struct-type
+
+struct ONNXOpType { char *name; ONNXOpType opCode; ONNXOpSupportState state};
+%%
+Abs, ONNXOpCode::Abs, ONNXOpSupportState::Unsupported
+Acos, ONNXOpCode::Acos, ONNXOpSupportState::Unsupported
+Add, ONNXOpCode::Add, ONNXOpSupportState::Unsupported
+And, ONNXOpCode::And, ONNXOpSupportState::Unsupported
+ArgMax, ONNXOpCode::ArgMax, ONNXOpSupportState::Unsupported
+ArgMin, ONNXOpCode::ArgMin, ONNXOpSupportState::Unsupported
+Asin, ONNXOpCode::Asin, ONNXOpSupportState::Unsupported
+Atan, ONNXOpCode::Atan, ONNXOpSupportState::Unsupported
+AveragePool, ONNXOpCode::AveragePool, ONNXOpSupportState::Fullysupported
+BatchNormalization, ONNXOpCode::BatchNormalization, ONNXOpSupportState::Fullysupported
+Cast, ONNXOpCode::Cast, ONNXOpSupportState::Unsupported
+Ceil, ONNXOpCode::Ceil, ONNXOpSupportState::Unsupported
+Clip, ONNXOpCode::Clip, ONNXOpSupportState::Unsupported
+Concat, ONNXOpCode::Concat, ONNXOpSupportState::Fullysupported
+Constant, ONNXOpCode::Constant, ONNXOpSupportState::Unsupported
+ConstantLike, ONNXOpCode::ConstantLike, ONNXOpSupportState::Unsupported
+Conv, ONNXOpCode::Conv, ONNXOpSupportState::Fullysupported
+ConvTranspose, ONNXOpCode::ConvTranspose, ONNXOpSupportState::Unsupported
+Cos, ONNXOpCode::Cos, ONNXOpSupportState::Unsupported
+DepthToSpace, ONNXOpCode::DepthToSpace, ONNXOpSupportState::Unsupported
+Div, ONNXOpCode::Div, ONNXOpSupportState::Unsupported
+Dropout, ONNXOpCode::Dropout, ONNXOpSupportState::Fullysupported
+Elu, ONNXOpCode::Elu, ONNXOpSupportState::Unsupported
+Equal, ONNXOpCode::Equal, ONNXOpSupportState::Unsupported
+Exp, ONNXOpCode::Exp, ONNXOpSupportState::Unsupported
+Expand, ONNXOpCode::Expand, ONNXOpSupportState::Unsupported
+EyeLike, ONNXOpCode::EyeLike, ONNXOpSupportState::Unsupported
+Flatten, ONNXOpCode::Flatten, ONNXOpSupportState::Unsupported
+Floor, ONNXOpCode::Floor, ONNXOpSupportState::Unsupported
+GRU, ONNXOpCode::GRU, ONNXOpSupportState::Unsupported
+Gather, ONNXOpCode::Gather, ONNXOpSupportState::Unsupported
+Gemm, ONNXOpCode::Gemm, ONNXOpSupportState::Unsupported
+GlobalAveragePool, ONNXOpCode::GlobalAveragePool, ONNXOpSupportState::Unsupported
+GlobalLpPool, ONNXOpCode::GlobalLpPool, ONNXOpSupportState::Unsupported
+GlobalMaxPool, ONNXOpCode::GlobalMaxPool, ONNXOpSupportState::Unsupported
+Greater, ONNXOpCode::Greater, ONNXOpSupportState::Unsupported
+HardSigmoid, ONNXOpCode::HardSigmoid, ONNXOpSupportState::Unsupported
+Hardmax, ONNXOpCode::Hardmax, ONNXOpSupportState::Unsupported
+Identity, ONNXOpCode::Identity, ONNXOpSupportState::Supported
+If, ONNXOpCode::If, ONNXOpSupportState::Unsupported
+InstanceNormalizati, ONNXOpCode::InstanceNormalizati, ONNXOpSupportState::Unsupported
+LRN, ONNXOpCode::LRN, ONNXOpSupportState::Unsupported
+LSTM, ONNXOpCode::LSTM, ONNXOpSupportState::Unsupported
+LeakyRelu, ONNXOpCode::LeakyRelu, ONNXOpSupportState::Unsupported
+Less, ONNXOpCode::Less, ONNXOpSupportState::Unsupported
+Log, ONNXOpCode::Log, ONNXOpSupportState::Unsupported
+LogSoftmax, ONNXOpCode::LogSoftmax, ONNXOpSupportState::Unsupported
+Loop, ONNXOpCode::Loop, ONNXOpSupportState::Unsupported
+LpNormalization, ONNXOpCode::LpNormalization, ONNXOpSupportState::Unsupported
+LpPool, ONNXOpCode::LpPool, ONNXOpSupportState::Unsupported
+MatMul, ONNXOpCode::MatMul, ONNXOpSupportState::Unsupported
+Max, ONNXOpCode::Max, ONNXOpSupportState::Unsupported
+MaxPool, ONNXOpCode::MaxPool, ONNXOpSupportState::Supported
+MaxRoiPool, ONNXOpCode::MaxRoiPool, ONNXOpSupportState::Unsupported
+Mean, ONNXOpCode::Mean, ONNXOpSupportState::Unsupported
+Min, ONNXOpCode::Min, ONNXOpSupportState::Unsupported
+Mul, ONNXOpCode::Mul, ONNXOpSupportState::Unsupported
+Multinomial, ONNXOpCode::Multinomial, ONNXOpSupportState::Unsupported
+Neg, ONNXOpCode::Neg, ONNXOpSupportState::Unsupported
+Not, ONNXOpCode::Not, ONNXOpSupportState::Unsupported
+Or, ONNXOpCode::Or, ONNXOpSupportState::Unsupported
+PRelu, ONNXOpCode::PRelu, ONNXOpSupportState::Unsupported
+Pad, ONNXOpCode::Pad, ONNXOpSupportState::Unsupported
+Pow, ONNXOpCode::Pow, ONNXOpSupportState::Unsupported
+RNN, ONNXOpCode::RNN, ONNXOpSupportState::Unsupported
+RandomNormal, ONNXOpCode::RandomNormal, ONNXOpSupportState::Unsupported
+RandomNormalLike, ONNXOpCode::RandomNormalLike, ONNXOpSupportState::Unsupported
+RandomUniform, ONNXOpCode::RandomUniform, ONNXOpSupportState::Unsupported
+RandomUniformLike, ONNXOpCode::RandomUniformLike, ONNXOpSupportState::Unsupported
+Reciprocal, ONNXOpCode::Reciprocal, ONNXOpSupportState::Unsupported
+ReduceL1, ONNXOpCode::ReduceL1, ONNXOpSupportState::Unsupported
+ReduceL2, ONNXOpCode::ReduceL2, ONNXOpSupportState::Unsupported
+ReduceLogSum, ONNXOpCode::ReduceLogSum, ONNXOpSupportState::Unsupported
+ReduceLogSumExp, ONNXOpCode::ReduceLogSumExp, ONNXOpSupportState::Unsupported
+ReduceMax, ONNXOpCode::ReduceMax, ONNXOpSupportState::Unsupported
+ReduceMean, ONNXOpCode::ReduceMean, ONNXOpSupportState::Unsupported
+ReduceMin, ONNXOpCode::ReduceMin, ONNXOpSupportState::Unsupported
+ReduceProd, ONNXOpCode::ReduceProd, ONNXOpSupportState::Unsupported
+ReduceSum, ONNXOpCode::ReduceSum, ONNXOpSupportState::Unsupported
+ReduceSumSquare, ONNXOpCode::ReduceSumSquare, ONNXOpSupportState::Unsupported
+Relu, ONNXOpCode::Relu, ONNXOpSupportState::Fullysupported
+Reshape, ONNXOpCode::Reshape, ONNXOpSupportState::Fullysupported
+Scan, ONNXOpCode::Scan, ONNXOpSupportState::Unsupported
+Selu, ONNXOpCode::Selu, ONNXOpSupportState::Unsupported
+Shape, ONNXOpCode::Shape, ONNXOpSupportState::Unsupported
+Sigmoid, ONNXOpCode::Sigmoid, ONNXOpSupportState::Unsupported
+Sin, ONNXOpCode::Sin, ONNXOpSupportState::Unsupported
+Size, ONNXOpCode::Size, ONNXOpSupportState::Unsupported
+Slice, ONNXOpCode::Slice, ONNXOpSupportState::Unsupported
+Softmax, ONNXOpCode::Softmax, ONNXOpSupportState::Fullysupported
+Softplus, ONNXOpCode::Softplus, ONNXOpSupportState::Unsupported
+Softsign, ONNXOpCode::Softsign, ONNXOpSupportState::Unsupported
+SpaceToDepth, ONNXOpCode::SpaceToDepth, ONNXOpSupportState::Unsupported
+Split, ONNXOpCode::Split, ONNXOpSupportState::Fullysupported
+Sqrt, ONNXOpCode::Sqrt, ONNXOpSupportState::Unsupported
+Squeeze, ONNXOpCode::Squeeze, ONNXOpSupportState::Unsupported
+Sub, ONNXOpCode::Sub, ONNXOpSupportState::Unsupported
+Sum, ONNXOpCode::Sum, ONNXOpSupportState::Unsupported
+Tan, ONNXOpCode::Tan, ONNXOpSupportState::Unsupported
+Tanh, ONNXOpCode::Tanh, ONNXOpSupportState::Unsupported
+Tile, ONNXOpCode::Tile, ONNXOpSupportState::Unsupported
+TopK, ONNXOpCode::TopK, ONNXOpSupportState::Unsupported
+Transpose, ONNXOpCode::Transpose, ONNXOpSupportState::Unsupported
+Unsqueeze, ONNXOpCode::Unsqueeze, ONNXOpSupportState::Unsupported
+Upsample, ONNXOpCode::Upsample, ONNXOpSupportState::Unsupported
+Xor, ONNXOpCode::Xor, ONNXOpSupportState::Unsupported
+ATen, ONNXOpCode::ATen, ONNXOpSupportState::Unsupported
+Affine, ONNXOpCode::Affine, ONNXOpSupportState::Unsupported
+ConstantFill, ONNXOpCode::ConstantFill, ONNXOpSupportState::Unsupported
+Crop, ONNXOpCode::Crop, ONNXOpSupportState::Unsupported
+DynamicSlice, ONNXOpCode::DynamicSlice, ONNXOpSupportState::Unsupported
+GRUUnit, ONNXOpCode::GRUUnit, ONNXOpSupportState::Unsupported
+GivenTensorFill, ONNXOpCode::GivenTensorFill, ONNXOpSupportState::Unsupported
+ImageScaler, ONNXOpCode::ImageScaler, ONNXOpSupportState::Unsupported
+ParametricSoftplus, ONNXOpCode::ParametricSoftplus, ONNXOpSupportState::Unsupported
+Scale, ONNXOpCode::Scale, ONNXOpSupportState::Partiallysupported
+ScaledTanh, ONNXOpCode::ScaledTanh, ONNXOpSupportState::Unsupported
+ThresholdedRelu, ONNXOpCode::ThresholdedRelu, ONNXOpSupportState::Unsupported
--- /dev/null
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * 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.
+ */
+
+/* C++ code produced by gperf version 3.1 */
+/* Command-line: gperf --output-file=ONNXPerfectHash.h ONNXPerfect.gperf */
+/* Computed positions: -k'1-2,$' */
+
+#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
+ && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
+ && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
+ && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
+ && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
+ && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
+ && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
+ && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
+ && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
+ && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
+ && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
+ && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
+ && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
+ && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
+ && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
+ && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
+ && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
+ && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
+ && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
+ && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
+ && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
+ && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
+ && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
+/* The character set is not based on ISO-646. */
+#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gperf@gnu.org>."
+#endif
+
+#line 1 "ONNXPerfect.gperf"
+
+#include "ONNXOpType.h"
+
+using namespace nnc;
+
+/* maximum key range = 193, duplicates = 0 */
+
+class ONNXPerfectHash
+{
+private:
+ static inline unsigned int hash (const char *str, size_t len);
+public:
+ static const struct ONNXOpType *getONNXOpType (const char *str, size_t len);
+};
+
+inline unsigned int
+ONNXPerfectHash::hash (const char *str, size_t len)
+{
+ static const unsigned char asso_values[] =
+ {
+ 199, 199, 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199, 199, 22,
+ 0, 199, 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 40, 75, 0, 25, 35,
+ 50, 25, 0, 65, 199, 0, 5, 0, 10, 65,
+ 90, 199, 0, 20, 110, 82, 199, 199, 0, 199,
+ 199, 199, 199, 199, 199, 199, 199, 0, 25, 60,
+ 35, 5, 25, 125, 30, 65, 199, 199, 0, 40,
+ 5, 15, 20, 60, 10, 90, 35, 40, 45, 45,
+ 65, 55, 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199
+ };
+ return len + asso_values[static_cast<unsigned char>(str[1])] + asso_values[static_cast<unsigned char>(str[0])] + asso_values[static_cast<unsigned char>(str[len - 1])];
+}
+
+const struct ONNXOpType *
+ONNXPerfectHash::getONNXOpType (const char *str, size_t len)
+{
+ enum
+ {
+ TOTAL_KEYWORDS = 118,
+ MIN_WORD_LENGTH = 2,
+ MAX_WORD_LENGTH = 19,
+ MIN_HASH_VALUE = 6,
+ MAX_HASH_VALUE = 198
+ };
+
+ static const struct ONNXOpType wordlist[] =
+ {
+ {""}, {""}, {""}, {""}, {""}, {""},
+#line 84 "ONNXPerfect.gperf"
+ {"MatMul", ONNXOpCode::MatMul, ONNXOpSupportState::Unsupported},
+#line 86 "ONNXPerfect.gperf"
+ {"MaxPool", ONNXOpCode::MaxPool, ONNXOpSupportState::Supported},
+ {""},
+#line 45 "ONNXPerfect.gperf"
+ {"Ceil", ONNXOpCode::Ceil, ONNXOpSupportState::Unsupported},
+#line 87 "ONNXPerfect.gperf"
+ {"MaxRoiPool", ONNXOpCode::MaxRoiPool, ONNXOpSupportState::Unsupported},
+ {""},
+#line 99 "ONNXPerfect.gperf"
+ {"RandomNormal", ONNXOpCode::RandomNormal, ONNXOpSupportState::Unsupported},
+#line 105 "ONNXPerfect.gperf"
+ {"ReduceL2", ONNXOpCode::ReduceL2, ONNXOpSupportState::Unsupported},
+#line 88 "ONNXPerfect.gperf"
+ {"Mean", ONNXOpCode::Mean, ONNXOpSupportState::Unsupported},
+#line 103 "ONNXPerfect.gperf"
+ {"Reciprocal", ONNXOpCode::Reciprocal, ONNXOpSupportState::Unsupported},
+ {""},
+#line 115 "ONNXPerfect.gperf"
+ {"Reshape", ONNXOpCode::Reshape, ONNXOpSupportState::Fullysupported},
+#line 75 "ONNXPerfect.gperf"
+ {"LRN", ONNXOpCode::LRN, ONNXOpSupportState::Unsupported},
+#line 110 "ONNXPerfect.gperf"
+ {"ReduceMin", ONNXOpCode::ReduceMin, ONNXOpSupportState::Unsupported},
+#line 109 "ONNXPerfect.gperf"
+ {"ReduceMean", ONNXOpCode::ReduceMean, ONNXOpSupportState::Unsupported},
+#line 100 "ONNXPerfect.gperf"
+ {"RandomNormalLike", ONNXOpCode::RandomNormalLike, ONNXOpSupportState::Unsupported},
+#line 102 "ONNXPerfect.gperf"
+ {"RandomUniformLike", ONNXOpCode::RandomUniformLike, ONNXOpSupportState::Unsupported},
+#line 98 "ONNXPerfect.gperf"
+ {"RNN", ONNXOpCode::RNN, ONNXOpSupportState::Unsupported},
+#line 46 "ONNXPerfect.gperf"
+ {"Clip", ONNXOpCode::Clip, ONNXOpSupportState::Unsupported},
+#line 113 "ONNXPerfect.gperf"
+ {"ReduceSumSquare", ONNXOpCode::ReduceSumSquare, ONNXOpSupportState::Unsupported},
+ {""},
+#line 142 "ONNXPerfect.gperf"
+ {"ConstantFill", ONNXOpCode::ConstantFill, ONNXOpSupportState::Unsupported},
+#line 139 "ONNXPerfect.gperf"
+ {"Xor", ONNXOpCode::Xor, ONNXOpSupportState::Unsupported},
+#line 76 "ONNXPerfect.gperf"
+ {"LSTM", ONNXOpCode::LSTM, ONNXOpSupportState::Unsupported},
+#line 122 "ONNXPerfect.gperf"
+ {"Slice", ONNXOpCode::Slice, ONNXOpSupportState::Unsupported},
+#line 83 "ONNXPerfect.gperf"
+ {"LpPool", ONNXOpCode::LpPool, ONNXOpSupportState::Unsupported},
+#line 49 "ONNXPerfect.gperf"
+ {"ConstantLike", ONNXOpCode::ConstantLike, ONNXOpSupportState::Unsupported},
+#line 51 "ONNXPerfect.gperf"
+ {"ConvTranspose", ONNXOpCode::ConvTranspose, ONNXOpSupportState::Unsupported},
+#line 143 "ONNXPerfect.gperf"
+ {"Crop", ONNXOpCode::Crop, ONNXOpSupportState::Unsupported},
+#line 104 "ONNXPerfect.gperf"
+ {"ReduceL1", ONNXOpCode::ReduceL1, ONNXOpSupportState::Unsupported},
+ {""},
+#line 67 "ONNXPerfect.gperf"
+ {"GlobalLpPool", ONNXOpCode::GlobalLpPool, ONNXOpSupportState::Unsupported},
+#line 68 "ONNXPerfect.gperf"
+ {"GlobalMaxPool", ONNXOpCode::GlobalMaxPool, ONNXOpSupportState::Unsupported},
+#line 44 "ONNXPerfect.gperf"
+ {"Cast", ONNXOpCode::Cast, ONNXOpSupportState::Unsupported},
+#line 107 "ONNXPerfect.gperf"
+ {"ReduceLogSumExp", ONNXOpCode::ReduceLogSumExp, ONNXOpSupportState::Unsupported},
+#line 64 "ONNXPerfect.gperf"
+ {"Gather", ONNXOpCode::Gather, ONNXOpSupportState::Unsupported},
+#line 66 "ONNXPerfect.gperf"
+ {"GlobalAveragePool", ONNXOpCode::GlobalAveragePool, ONNXOpSupportState::Unsupported},
+#line 90 "ONNXPerfect.gperf"
+ {"Mul", ONNXOpCode::Mul, ONNXOpSupportState::Unsupported},
+#line 81 "ONNXPerfect.gperf"
+ {"Loop", ONNXOpCode::Loop, ONNXOpSupportState::Unsupported},
+#line 82 "ONNXPerfect.gperf"
+ {"LpNormalization", ONNXOpCode::LpNormalization, ONNXOpSupportState::Unsupported},
+#line 70 "ONNXPerfect.gperf"
+ {"HardSigmoid", ONNXOpCode::HardSigmoid, ONNXOpSupportState::Unsupported},
+#line 53 "ONNXPerfect.gperf"
+ {"DepthToSpace", ONNXOpCode::DepthToSpace, ONNXOpSupportState::Unsupported},
+#line 125 "ONNXPerfect.gperf"
+ {"Softsign", ONNXOpCode::Softsign, ONNXOpSupportState::Unsupported},
+#line 114 "ONNXPerfect.gperf"
+ {"Relu", ONNXOpCode::Relu, ONNXOpSupportState::Fullysupported},
+#line 111 "ONNXPerfect.gperf"
+ {"ReduceProd", ONNXOpCode::ReduceProd, ONNXOpSupportState::Unsupported},
+#line 91 "ONNXPerfect.gperf"
+ {"Multinomial", ONNXOpCode::Multinomial, ONNXOpSupportState::Unsupported},
+#line 69 "ONNXPerfect.gperf"
+ {"Greater", ONNXOpCode::Greater, ONNXOpSupportState::Unsupported},
+#line 101 "ONNXPerfect.gperf"
+ {"RandomUniform", ONNXOpCode::RandomUniform, ONNXOpSupportState::Unsupported},
+#line 112 "ONNXPerfect.gperf"
+ {"ReduceSum", ONNXOpCode::ReduceSum, ONNXOpSupportState::Unsupported},
+ {""},
+#line 47 "ONNXPerfect.gperf"
+ {"Concat", ONNXOpCode::Concat, ONNXOpSupportState::Fullysupported},
+#line 106 "ONNXPerfect.gperf"
+ {"ReduceLogSum", ONNXOpCode::ReduceLogSum, ONNXOpSupportState::Unsupported},
+#line 48 "ONNXPerfect.gperf"
+ {"Constant", ONNXOpCode::Constant, ONNXOpSupportState::Unsupported},
+#line 77 "ONNXPerfect.gperf"
+ {"LeakyRelu", ONNXOpCode::LeakyRelu, ONNXOpSupportState::Unsupported},
+#line 118 "ONNXPerfect.gperf"
+ {"Shape", ONNXOpCode::Shape, ONNXOpSupportState::Unsupported},
+#line 39 "ONNXPerfect.gperf"
+ {"ArgMin", ONNXOpCode::ArgMin, ONNXOpSupportState::Unsupported},
+#line 61 "ONNXPerfect.gperf"
+ {"Flatten", ONNXOpCode::Flatten, ONNXOpSupportState::Unsupported},
+#line 93 "ONNXPerfect.gperf"
+ {"Not", ONNXOpCode::Not, ONNXOpSupportState::Unsupported},
+#line 50 "ONNXPerfect.gperf"
+ {"Conv", ONNXOpCode::Conv, ONNXOpSupportState::Fullysupported},
+#line 62 "ONNXPerfect.gperf"
+ {"Floor", ONNXOpCode::Floor, ONNXOpSupportState::Unsupported},
+ {""},
+#line 145 "ONNXPerfect.gperf"
+ {"GRUUnit", ONNXOpCode::GRUUnit, ONNXOpSupportState::Unsupported},
+#line 85 "ONNXPerfect.gperf"
+ {"Max", ONNXOpCode::Max, ONNXOpSupportState::Unsupported},
+#line 117 "ONNXPerfect.gperf"
+ {"Selu", ONNXOpCode::Selu, ONNXOpSupportState::Unsupported},
+ {""}, {""},
+#line 71 "ONNXPerfect.gperf"
+ {"Hardmax", ONNXOpCode::Hardmax, ONNXOpSupportState::Unsupported},
+#line 89 "ONNXPerfect.gperf"
+ {"Min", ONNXOpCode::Min, ONNXOpSupportState::Unsupported},
+#line 65 "ONNXPerfect.gperf"
+ {"Gemm", ONNXOpCode::Gemm, ONNXOpSupportState::Unsupported},
+ {""},
+#line 141 "ONNXPerfect.gperf"
+ {"Affine", ONNXOpCode::Affine, ONNXOpSupportState::Unsupported},
+#line 55 "ONNXPerfect.gperf"
+ {"Dropout", ONNXOpCode::Dropout, ONNXOpSupportState::Fullysupported},
+#line 56 "ONNXPerfect.gperf"
+ {"Elu", ONNXOpCode::Elu, ONNXOpSupportState::Unsupported},
+#line 108 "ONNXPerfect.gperf"
+ {"ReduceMax", ONNXOpCode::ReduceMax, ONNXOpSupportState::Unsupported},
+#line 127 "ONNXPerfect.gperf"
+ {"Split", ONNXOpCode::Split, ONNXOpSupportState::Fullysupported},
+ {""},
+#line 126 "ONNXPerfect.gperf"
+ {"SpaceToDepth", ONNXOpCode::SpaceToDepth, ONNXOpSupportState::Unsupported},
+#line 37 "ONNXPerfect.gperf"
+ {"And", ONNXOpCode::And, ONNXOpSupportState::Unsupported},
+#line 41 "ONNXPerfect.gperf"
+ {"Atan", ONNXOpCode::Atan, ONNXOpSupportState::Unsupported},
+ {""}, {""},
+#line 94 "ONNXPerfect.gperf"
+ {"Or", ONNXOpCode::Or, ONNXOpSupportState::Unsupported},
+#line 130 "ONNXPerfect.gperf"
+ {"Sub", ONNXOpCode::Sub, ONNXOpSupportState::Unsupported},
+#line 116 "ONNXPerfect.gperf"
+ {"Scan", ONNXOpCode::Scan, ONNXOpSupportState::Unsupported},
+#line 149 "ONNXPerfect.gperf"
+ {"Scale", ONNXOpCode::Scale, ONNXOpSupportState::Partiallysupported},
+ {""},
+#line 129 "ONNXPerfect.gperf"
+ {"Squeeze", ONNXOpCode::Squeeze, ONNXOpSupportState::Unsupported},
+#line 120 "ONNXPerfect.gperf"
+ {"Sin", ONNXOpCode::Sin, ONNXOpSupportState::Unsupported},
+#line 121 "ONNXPerfect.gperf"
+ {"Size", ONNXOpCode::Size, ONNXOpSupportState::Unsupported},
+#line 80 "ONNXPerfect.gperf"
+ {"LogSoftmax", ONNXOpCode::LogSoftmax, ONNXOpSupportState::Unsupported},
+#line 42 "ONNXPerfect.gperf"
+ {"AveragePool", ONNXOpCode::AveragePool, ONNXOpSupportState::Fullysupported},
+#line 144 "ONNXPerfect.gperf"
+ {"DynamicSlice", ONNXOpCode::DynamicSlice, ONNXOpSupportState::Unsupported},
+#line 43 "ONNXPerfect.gperf"
+ {"BatchNormalization", ONNXOpCode::BatchNormalization, ONNXOpSupportState::Fullysupported},
+ {""},
+#line 57 "ONNXPerfect.gperf"
+ {"Equal", ONNXOpCode::Equal, ONNXOpSupportState::Unsupported},
+#line 137 "ONNXPerfect.gperf"
+ {"Unsqueeze", ONNXOpCode::Unsqueeze, ONNXOpSupportState::Unsupported},
+#line 60 "ONNXPerfect.gperf"
+ {"EyeLike", ONNXOpCode::EyeLike, ONNXOpSupportState::Unsupported},
+#line 131 "ONNXPerfect.gperf"
+ {"Sum", ONNXOpCode::Sum, ONNXOpSupportState::Unsupported},
+#line 78 "ONNXPerfect.gperf"
+ {"Less", ONNXOpCode::Less, ONNXOpSupportState::Unsupported},
+#line 146 "ONNXPerfect.gperf"
+ {"GivenTensorFill", ONNXOpCode::GivenTensorFill, ONNXOpSupportState::Unsupported},
+ {""},
+#line 123 "ONNXPerfect.gperf"
+ {"Softmax", ONNXOpCode::Softmax, ONNXOpSupportState::Fullysupported},
+#line 52 "ONNXPerfect.gperf"
+ {"Cos", ONNXOpCode::Cos, ONNXOpSupportState::Unsupported},
+ {""},
+#line 63 "ONNXPerfect.gperf"
+ {"GRU", ONNXOpCode::GRU, ONNXOpSupportState::Unsupported},
+ {""}, {""},
+#line 36 "ONNXPerfect.gperf"
+ {"Add", ONNXOpCode::Add, ONNXOpSupportState::Unsupported},
+ {""},
+#line 138 "ONNXPerfect.gperf"
+ {"Upsample", ONNXOpCode::Upsample, ONNXOpSupportState::Unsupported},
+ {""},
+#line 73 "ONNXPerfect.gperf"
+ {"If", ONNXOpCode::If, ONNXOpSupportState::Unsupported},
+#line 132 "ONNXPerfect.gperf"
+ {"Tan", ONNXOpCode::Tan, ONNXOpSupportState::Unsupported},
+#line 128 "ONNXPerfect.gperf"
+ {"Sqrt", ONNXOpCode::Sqrt, ONNXOpSupportState::Unsupported},
+#line 150 "ONNXPerfect.gperf"
+ {"ScaledTanh", ONNXOpCode::ScaledTanh, ONNXOpSupportState::Unsupported},
+#line 38 "ONNXPerfect.gperf"
+ {"ArgMax", ONNXOpCode::ArgMax, ONNXOpSupportState::Unsupported},
+ {""},
+#line 58 "ONNXPerfect.gperf"
+ {"Exp", ONNXOpCode::Exp, ONNXOpSupportState::Unsupported},
+ {""}, {""},
+#line 147 "ONNXPerfect.gperf"
+ {"ImageScaler", ONNXOpCode::ImageScaler, ONNXOpSupportState::Unsupported},
+#line 119 "ONNXPerfect.gperf"
+ {"Sigmoid", ONNXOpCode::Sigmoid, ONNXOpSupportState::Unsupported},
+#line 96 "ONNXPerfect.gperf"
+ {"Pad", ONNXOpCode::Pad, ONNXOpSupportState::Unsupported},
+#line 135 "ONNXPerfect.gperf"
+ {"TopK", ONNXOpCode::TopK, ONNXOpSupportState::Unsupported},
+ {""}, {""}, {""},
+#line 124 "ONNXPerfect.gperf"
+ {"Softplus", ONNXOpCode::Softplus, ONNXOpSupportState::Unsupported},
+#line 136 "ONNXPerfect.gperf"
+ {"Transpose", ONNXOpCode::Transpose, ONNXOpSupportState::Unsupported},
+#line 95 "ONNXPerfect.gperf"
+ {"PRelu", ONNXOpCode::PRelu, ONNXOpSupportState::Unsupported},
+ {""}, {""},
+#line 54 "ONNXPerfect.gperf"
+ {"Div", ONNXOpCode::Div, ONNXOpSupportState::Unsupported},
+#line 40 "ONNXPerfect.gperf"
+ {"Asin", ONNXOpCode::Asin, ONNXOpSupportState::Unsupported},
+ {""},
+#line 59 "ONNXPerfect.gperf"
+ {"Expand", ONNXOpCode::Expand, ONNXOpSupportState::Unsupported},
+ {""},
+#line 92 "ONNXPerfect.gperf"
+ {"Neg", ONNXOpCode::Neg, ONNXOpSupportState::Unsupported},
+#line 133 "ONNXPerfect.gperf"
+ {"Tanh", ONNXOpCode::Tanh, ONNXOpSupportState::Unsupported},
+ {""}, {""}, {""},
+#line 79 "ONNXPerfect.gperf"
+ {"Log", ONNXOpCode::Log, ONNXOpSupportState::Unsupported},
+ {""}, {""}, {""}, {""},
+#line 97 "ONNXPerfect.gperf"
+ {"Pow", ONNXOpCode::Pow, ONNXOpSupportState::Unsupported},
+#line 74 "ONNXPerfect.gperf"
+ {"InstanceNormalizati", ONNXOpCode::InstanceNormalizati, ONNXOpSupportState::Unsupported},
+ {""}, {""}, {""},
+#line 34 "ONNXPerfect.gperf"
+ {"Abs", ONNXOpCode::Abs, ONNXOpSupportState::Unsupported},
+#line 140 "ONNXPerfect.gperf"
+ {"ATen", ONNXOpCode::ATen, ONNXOpSupportState::Unsupported},
+ {""}, {""}, {""},
+#line 72 "ONNXPerfect.gperf"
+ {"Identity", ONNXOpCode::Identity, ONNXOpSupportState::Supported},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""},
+#line 134 "ONNXPerfect.gperf"
+ {"Tile", ONNXOpCode::Tile, ONNXOpSupportState::Unsupported},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+#line 35 "ONNXPerfect.gperf"
+ {"Acos", ONNXOpCode::Acos, ONNXOpSupportState::Unsupported},
+#line 151 "ONNXPerfect.gperf"
+ {"ThresholdedRelu", ONNXOpCode::ThresholdedRelu, ONNXOpSupportState::Unsupported},
+ {""}, {""},
+#line 148 "ONNXPerfect.gperf"
+ {"ParametricSoftplus", ONNXOpCode::ParametricSoftplus, ONNXOpSupportState::Unsupported}
+ };
+
+ if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
+ {
+ unsigned int key = hash (str, len);
+
+ if (key <= MAX_HASH_VALUE)
+ {
+ const char *s = wordlist[key].name;
+
+ if (*str == *s && !strcmp (str + 1, s + 1))
+ return &wordlist[key];
+ }
+ }
+ return 0;
+}