Changeset 16356 for trunk/HeuristicLab.ExtLibs/HeuristicLab.NativeInterpreter/0.1/NativeInterpreter-0.1/src/interpreter.h
- Timestamp:
- 12/08/18 08:11:48 (5 years ago)
- Location:
- trunk
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk
- Property svn:mergeinfo changed
/branches/2915-AbsoluteSymbol (added) merged: 15943-15944,16236-16240,16304,16306,16332,16344-16352,16355 /branches/2937_SymReg_AnalyticalQuotient (added) merged: 16083
- Property svn:mergeinfo changed
-
trunk/HeuristicLab.ExtLibs
- Property svn:mergeinfo changed
/branches/2915-AbsoluteSymbol/HeuristicLab.ExtLibs (added) merged: 16240,16332,16349-16351
- Property svn:mergeinfo changed
-
trunk/HeuristicLab.ExtLibs/HeuristicLab.NativeInterpreter/0.1/NativeInterpreter-0.1/src/interpreter.h
r16334 r16356 12 12 switch (in.opcode) 13 13 { 14 case OpCodes::Const: /* nothing to do */ break; 14 15 case OpCodes::Var: 15 16 { … … 100 101 break; 101 102 } 103 case OpCodes::Sqrt: 104 { 105 in.value = std::pow(code[in.childIndex].value, 1./2.); 106 break; 107 } 102 108 case OpCodes::Square: 103 109 { … … 105 111 break; 106 112 } 107 case OpCodes::Sqrt: 108 { 109 in.value = std::sqrt(code[in.childIndex].value); 110 break; 111 } 113 case OpCodes::CubeRoot: 114 { 115 in.value = std::pow(code[in.childIndex].value, 1./3.); 116 break; 117 } 118 case OpCodes::Cube: 119 { 120 in.value = std::pow(code[in.childIndex].value, 3.); 121 break; 122 } 123 case OpCodes::Absolute: 124 { 125 in.value = std::fabs(code[in.childIndex].value); 126 break; 127 } 128 case OpCodes::AnalyticalQuotient: 129 { 130 double x = code[in.childIndex].value; 131 double y = code[in.childIndex + 1].value; 132 in.value = x / std::sqrt(1 + y*y); 133 break; 134 } 135 default: in.value = NAN; 112 136 } 113 137 } … … 136 160 break; 137 161 } 162 case OpCodes::Const: /* nothing to do because buffers for constants are already set */ break; 138 163 case OpCodes::Add: 139 164 { … … 227 252 case OpCodes::Square: 228 253 { 229 square(in.buf, code[in.childIndex].buf);254 pow(in.buf, code[in.childIndex].buf, 2.); 230 255 break; 231 256 } 232 257 case OpCodes::Sqrt: 233 258 { 234 sqrt(in.buf, code[in.childIndex].buf); 235 break; 236 } 237 } 259 pow(in.buf, code[in.childIndex].buf, 1./2.); 260 break; 261 } 262 case OpCodes::CubeRoot: 263 { 264 pow(in.buf, code[in.childIndex].buf, 1./3.); 265 break; 266 } 267 case OpCodes::Cube: 268 { 269 pow(in.buf, code[in.childIndex].buf, 3.); 270 break; 271 } 272 case OpCodes::Absolute: 273 { 274 abs(in.buf, code[in.childIndex].buf); 275 break; 276 } 277 case OpCodes::AnalyticalQuotient: 278 { 279 load(in.buf, code[in.childIndex].buf); 280 analytical_quotient(in.buf, code[in.childIndex + 1].buf); 281 break; 282 } 283 default: load(in.buf, NAN); 284 } 238 285 } 239 286 }
Note: See TracChangeset
for help on using the changeset viewer.