XName.h 5.1 KB
Newer Older
xiaotong committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
/* 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.
 */

/*
 *
 * We define various names here
 *
 * $Created by: XIAO Tong (xiaotong@mail.neu.edu.cn) 2018-07-05
xiaotong committed
23
 * It was really HOT these days. I can't imagine it is SO hot here in Shenyang!
xiaotong committed
24 25 26 27 28 29 30
*/

#ifndef __XNAME_H__
#define __XNAME_H__

namespace nts { // namespace nts(NiuTrans.Tensor)

31 32
/* math operations */
#define MATH_BASE               0x00001000
33

34
#define MATH_ABSOLUTE           MATH_BASE + 1
35 36 37
#define MATH_CEIL               MATH_ABSOLUTE + 1
#define MATH_EXP                MATH_CEIL + 1
#define MATH_FLOOR              MATH_EXP + 1
38 39
#define MATH_ISNONZERO          MATH_FLOOR + 1
#define MATH_ISZERO             MATH_ISNONZERO + 1
40
#define MATH_LOG                MATH_ISZERO + 1
41 42 43
#define MATH_SQRT               MATH_LOG + 1
#define MATH_SQUARE             MATH_SQRT + 1
#define MATH_SIN                MATH_SQUARE + 1
44 45
#define MATH_COS                MATH_SIN + 1
#define MATH_TAN                MATH_COS + 1
46
#define MATH_ROUND              MATH_TAN + 1
47

48 49
#define MATH_CLIP               MATH_ROUND + 1
#define MATH_DIV                MATH_CLIP + 1
50
#define MATH_DIVDIM             MATH_DIV + 1
liyinqiao committed
51 52
#define MATH_MASK               MATH_DIVDIM + 1
#define MATH_MATRIXMUL          MATH_MASK + 1
53
#define MATH_MATRIXMULBATCHED   MATH_MATRIXMUL + 1
liyinqiao committed
54 55 56
#define MATH_MAX                MATH_MATRIXMULBATCHED + 1
#define MATH_MIN                MATH_MAX + 1
#define MATH_MULTIPLY           MATH_MIN + 1
57
#define MATH_MULTIPLYDIM        MATH_MULTIPLY + 1
xiaotong committed
58 59
#define MATH_MULTIPLYBROADCAST  MATH_MULTIPLYDIM + 1
#define MATH_NEGATE             MATH_MULTIPLYBROADCAST + 1
60 61 62
#define MATH_NORMALIZE          MATH_NEGATE + 1
#define MATH_POWER              MATH_NORMALIZE + 1
#define MATH_SCALEANDSHIFT      MATH_POWER + 1
63
#define MATH_MULANDSHIFT        MATH_SCALEANDSHIFT + 1
64 65 66 67 68
#define MATH_SCALE              MATH_MULANDSHIFT + 1
#define MATH_DESCALE            MATH_SCALE + 1
#define MATH_SHIFT              MATH_DESCALE + 1
#define MATH_MOD                MATH_SHIFT + 1
#define MATH_SIGN               MATH_MOD + 1
69 70 71 72
#define MATH_SUB                MATH_SIGN + 1
#define MATH_SUBDIM             MATH_SUB + 1
#define MATH_SUM                MATH_SUBDIM + 1
#define MATH_SUMDIM             MATH_SUM + 1
xiaotong committed
73
#define MATH_SUMBROADCAST       MATH_SUMDIM + 1
74

xiaotong committed
75
#define REDUCE                  MATH_SUMBROADCAST + 1
76 77 78
#define REDUCE_REDUCEMAX        REDUCE + 1
#define REDUCE_REDUCEMEAN       REDUCE_REDUCEMAX + 1
#define REDUCE_REDUCESUM        REDUCE_REDUCEMEAN + 1
79 80
#define REDUCE_REDUCESUMALL     REDUCE_REDUCESUM + 1
#define REDUCE_REDUCESUMSQUARED REDUCE_REDUCESUMALL + 1
81 82
#define REDUCE_REDUCEVARIANCE   REDUCE_REDUCESUMSQUARED + 1

83 84 85
/* data and shape related operations */
#define DATA_BASE               MATH_BASE * 2
#define GETANDSET               DATA_BASE + 1
liyinqiao committed
86 87
#define GETANDSET_CONVERTDATATYPE GETANDSET + 1
#define GETANDSET_SELECT        GETANDSET_CONVERTDATATYPE + 1
88 89 90 91

#define MOVEMENT                GETANDSET_SELECT + 1
#define MOVEMENT_COPYINDEXED    MOVEMENT + 1
#define MOVEMENT_COPYVALUES     MOVEMENT_COPYINDEXED + 1
92
#define MOVEMENT_GATHER         MOVEMENT_COPYVALUES + 1
93
#define MOVEMENT_DROPOUTWITHINDEX         MOVEMENT_GATHER + 1
94

95
#define SHAPE                   MOVEMENT_DROPOUTWITHINDEX + 1
96 97
#define SHAPE_CONCATENATE       SHAPE + 1
#define SHAPE_MERGE             SHAPE_CONCATENATE + 1
98 99
#define SHAPE_MERGE_LIST        SHAPE_MERGE + 1
#define SHAPE_PERMUTE           SHAPE_MERGE_LIST + 1
100 101
#define SHAPE_RESHAPE           SHAPE_PERMUTE + 1
#define SHAPE_SPLIT             SHAPE_RESHAPE + 1
102
#define SHAPE_SPLIT_LIST        SHAPE_SPLIT + 1
liyinqiao committed
103 104
#define SHAPE_STACK             SHAPE_SPLIT_LIST + 1
#define SHAPE_SQUEEZE           SHAPE_STACK + 1
105
#define SHAPE_TRANSPOSE         SHAPE_SQUEEZE + 1
106
#define SHAPE_UNSQUEEZE         SHAPE_TRANSPOSE + 1
xiaotong committed
107

108 109 110 111 112 113
#define SORT                    SHAPE_UNSQUEEZE + 1
#define SORT_SORT               SORT + 1
#define SORT_TOPK               SORT_SORT + 1

/* activation functions */
#define FUNCTION_BASE           DATA_BASE * 2
114 115
#define FUNC_DROPOUT            FUNCTION_BASE + 1
#define FUNC_HARDTANH           FUNC_DROPOUT + 1
116 117 118 119 120 121
#define FUNC_IDENTITY           FUNC_HARDTANH + 1
#define FUNC_LOGSOFTMAX         FUNC_IDENTITY + 1
#define FUNC_RECTIFY            FUNC_LOGSOFTMAX + 1
#define FUNC_SIGMOID            FUNC_RECTIFY + 1
#define FUNC_SOFTMAX            FUNC_SIGMOID + 1

122 123 124
#define LOSS_BASE               FUNCTION_BASE * 2
#define LOSS_CROSSENTROPY       LOSS_BASE + 1

xiaotong committed
125 126
/* get operator name */
const char * GetOPName(int type);
xiaotong committed
127

xiaotong committed
128 129
} // namespace nts(NiuTrans.Tensor)

xiaotong committed
130
#endif // __XNAME_H__