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_CMUL,
00066 SH_OP_CSUM,
00067 SH_OP_DOT,
00068 SH_OP_DX,
00069 SH_OP_DY,
00070
00071 SH_OP_EXP,
00072 SH_OP_EXP2,
00073 SH_OP_EXP10,
00074 SH_OP_FLR,
00075 SH_OP_FRAC,
00076
00077 SH_OP_LIT,
00078 SH_OP_LOG,
00079 SH_OP_LOG2,
00080 SH_OP_LOG10,
00081 SH_OP_LRP,
00082
00083 SH_OP_MAD,
00084 SH_OP_MAX,
00085 SH_OP_MIN,
00086 SH_OP_MOD,
00087
00088 SH_OP_POW,
00089 SH_OP_RCP,
00090 SH_OP_RND,
00091 SH_OP_RSQ,
00092
00093 SH_OP_SIN,
00094 SH_OP_SGN,
00095 SH_OP_SQRT,
00096 SH_OP_TAN,
00097
00098
00099 SH_OP_NORM,
00100 SH_OP_XPD,
00101
00102
00103 SH_OP_TEX,
00104 SH_OP_TEXI,
00105 SH_OP_TEXD,
00106
00107
00108 SH_OP_COND,
00109
00110
00111 SH_OP_KIL,
00112
00113
00114 SH_OP_OPTBRA,
00115
00116
00117 SH_OP_DECL,
00118
00119
00120
00121 SH_OP_STARTSEC,
00122 SH_OP_ENDSEC,
00123
00124
00125 SH_OP_FETCH,
00126 SH_OP_LOOKUP,
00127
00128
00129
00130 SH_OP_PAL,
00131
00132 SH_OP_COMMENT,
00133
00134
00135
00136 SH_OP_RET,
00137
00138 SH_OPERATION_END,
00139 };
00140
00141 #ifdef IGNORE
00142 #undef IGNORE
00143 #endif
00144
00146 struct
00147 SH_DLLEXPORT
00148 ShOperationInfo {
00149 const char* name;
00150 int arity;
00151
00152 enum ResultSource {
00153 LINEAR,
00154 ALL,
00155 EXTERNAL,
00156
00157 IGNORE
00158 } result_source;
00159
00160 bool commutative;
00161 };
00162
00163
00164 SH_DLLEXPORT
00165 extern const ShOperationInfo opInfo[];
00166
00167 }
00168
00169 #endif