/* NiuTrans.Tensor - an open-source tensor library * Copyright (C) 2018, Natural Language Processing Lab, Northestern University. * 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. */ /* * $Created by: XIAO Tong (xiaotong@mail.neu.edu.cn) 2018-07-05 */ #include "XName.h" namespace nts { // namespace nts(NiuTrans.Tensor) /* get operator name */ const char * GetOPName(int type) { if ((type & MATH_BASE) != 0){ if (type == MATH_ABSOLUTE) return "M_ABSOLUTE"; else if (type == MATH_CEIL) return "M_CEIL"; else if (type == MATH_EXP) return "M_EXP"; else if (type == MATH_FLOOR) return "M_FLOOR"; else if (type == MATH_ISNONZERO) return "M_ISNONZERO"; else if (type == MATH_ISZERO) return "M_ISZERO"; else if (type == MATH_LOG) return "M_LOG"; else if (type == MATH_SQRT) return "M_SQRT"; else if (type == MATH_SQUARE) return "M_SQUARE"; else if (type == MATH_SIN) return "M_SIN"; else if (type == MATH_COS) return "M_COS"; else if (type == MATH_TAN) return "M_TAN"; else if (type == MATH_ROUND) return "M_ROUND"; else if (type == MATH_CLIP) return "M_CLIP"; else if (type == MATH_DIV) return "M_DIV"; else if (type == MATH_DIVDIM) return "M_DIVDIM"; else if (type == MATH_MATRIXMUL) return "M_MATRIXMUL"; else if (type == MATH_MATRIXMULBATCHED) return "M_MATRIXMULBATCHED"; else if (type == MATH_MULTIPLY) return "M_MULTIPLY"; else if (type == MATH_MULTIPLYDIM) return "M_MULTIPLYDIM"; else if (type == MATH_MULTIPLYBROADCAST) return "M_MULTIPLYBROADCAST"; else if (type == MATH_NEGATE) return "M_NEGATE"; else if (type == MATH_NORMALIZE) return "M_NORMALIZE"; else if (type == MATH_POWER) return "M_POWER"; else if (type == MATH_SCALEANDSHIFT) return "M_SCALEANDSHIFT"; else if (type == MATH_MULANDSHIFT) return "M_OPERATION"; else if (type == MATH_SIGN) return "M_SIGN"; else if (type == MATH_SUB) return "M_SUB"; else if (type == MATH_SUBDIM) return "M_SUBDIM"; else if (type == MATH_SUM) return "M_SUM"; else if (type == MATH_SUMDIM) return "M_SUMDIM"; else if (type == MATH_SUMBROADCAST) return "M_SUMBROADCAST"; else if (type == REDUCE_REDUCEMAX) return "R_REDUCEMAX"; else if (type == REDUCE_REDUCEMEAN) return "R_REDUCEMEAN"; else if (type == REDUCE_REDUCESUM) return "R_REDUCESUM"; else if (type == REDUCE_REDUCESUMSQUARED) return "R_REDUCESUMSQUARED"; else if (type == REDUCE_REDUCEVARIANCE) return "R_REDUCEVARIANCE"; } else if ((type & DATA_BASE) != 0){ if (type == GETANDSET_SELECT) return "G_SELECT"; else if (type == MOVEMENT_COPYINDEXED) return "M_COPYINDEXED"; else if (type == MOVEMENT_COPYVALUES) return "M_COPYVALUES"; else if (type == MOVEMENT_GATHER) return "M_GATHER"; else if (type == SHAPE_CONCATENATE) return "S_CONCATENATE"; else if (type == SHAPE_MERGE) return "S_MERGE"; else if (type == SHAPE_MERGE_LIST) return "S_MERGE_LIST"; else if (type == SHAPE_PERMUTE) return "S_PERMUTE"; else if (type == SHAPE_RESHAPE) return "S_RESHAPE"; else if (type == SHAPE_SPLIT) return "S_SPLIT"; else if (type == SHAPE_SPLIT_LIST) return "S_SPLIT_LIST"; else if (type == SHAPE_SQUEEZE) return "S_SQUEEZE"; else if (type == SHAPE_TRANSPOSE) return "S_TRANSPOSE"; else if (type == SHAPE_UNSQUEEZE) return "S_UNSQUEEZE"; else if (type == SORT_SORT) return "S_SORT"; else if (type == SORT_TOPK) return "S_TOPK"; } else if ((type & FUNCTION_BASE) != 0){ if (type == FUNC_DROPOUT) return "F_DROPOUT"; else if (type == FUNC_HARDTANH) return "F_HARDTANH"; else if (type == FUNC_IDENTITY) return "F_IDENTITY"; else if (type == FUNC_LOGSOFTMAX) return "F_LOGSOFTMAX"; else if (type == FUNC_RECTIFY) return "F_RECTIFY"; else if (type == FUNC_SIGMOID) return "F_SIGMOID"; else if (type == FUNC_SOFTMAX) return "F_SOFTMAX"; } return "NULL"; } } // namespace nts(NiuTrans.Tensor)