00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00024 #ifndef SHOPERATION_HPP
00025 #define SHOPERATION_HPP
00026
00027 #include "ShDllExport.hpp"
00028
00029 namespace SH {
00030
00036 enum ShOperation {
00037 SH_OP_ASN,
00038
00039
00040 SH_OP_NEG,
00041 SH_OP_ADD,
00042 SH_OP_MUL,
00043
00044 SH_OP_DIV,
00045
00046
00047
00048 SH_OP_SLT,
00049 SH_OP_SLE,
00050 SH_OP_SGT,
00051 SH_OP_SGE,
00052 SH_OP_SEQ,
00053 SH_OP_SNE,
00054
00055
00056 SH_OP_ABS,
00057 SH_OP_ACOS,
00058 SH_OP_ASIN,
00059 SH_OP_ATAN,
00060 SH_OP_ATAN2,
00061
00062 SH_OP_CBRT,
00063 SH_OP_CEIL,
00064 SH_OP_COS,
00065 SH_OP_COSH,
00066 SH_OP_CMUL,
00067 SH_OP_CSUM,
00068 SH_OP_DOT,
00069 SH_OP_DX,
00070 SH_OP_DY,
00071
00072 SH_OP_EXP,
00073 SH_OP_EXP2,
00074 SH_OP_EXP10,
00075 SH_OP_FLR,
00076 SH_OP_FRAC,
00077
00078 SH_OP_LIT,
00079 SH_OP_LOG,
00080 SH_OP_LOG2,
00081 SH_OP_LOG10,
00082 SH_OP_LRP,
00083
00084 SH_OP_MAD,
00085 SH_OP_MAX,
00086 SH_OP_MIN,
00087 SH_OP_MOD,
00088
00089 SH_OP_POW,
00090 SH_OP_RCP,
00091 SH_OP_RND,
00092 SH_OP_RSQ,
00093
00094 SH_OP_SIN,
00095 SH_OP_SINH,
00096 SH_OP_SGN,
00097 SH_OP_SQRT,
00098 SH_OP_TAN,
00099 SH_OP_TANH,
00100
00101
00102 SH_OP_NORM,
00103 SH_OP_XPD,
00104
00105
00106 SH_OP_TEX,
00107 SH_OP_TEXI,
00108 SH_OP_TEXD,
00109
00110
00111 SH_OP_COND,
00112
00113
00114 SH_OP_KIL,
00115
00116
00117 SH_OP_OPTBRA,
00118
00119
00120 SH_OP_DECL,
00121
00122
00123
00124 SH_OP_STARTSEC,
00125 SH_OP_ENDSEC,
00126
00127
00128 SH_OP_FETCH,
00129 SH_OP_LOOKUP,
00130
00131
00132
00133 SH_OP_PAL,
00134
00135 SH_OP_COMMENT,
00136
00137
00138
00139 SH_OP_RET,
00140
00141 SH_OPERATION_END,
00142 };
00143
00144 #ifdef IGNORE
00145 #undef IGNORE
00146 #endif
00147
00149 struct
00150 SH_DLLEXPORT
00151 ShOperationInfo {
00152 const char* name;
00153 int arity;
00154
00155 enum ResultSource {
00156 LINEAR,
00157 ALL,
00158 EXTERNAL,
00159
00160 IGNORE
00161 } result_source;
00162
00163 bool commutative;
00164 };
00165
00166
00167 SH_DLLEXPORT
00168 extern const ShOperationInfo opInfo[];
00169
00170 }
00171
00172 #endif