Changeset 16899 for branches/2988_ModelsOfModels2/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Interpreter/SymbolicDataAnalysisExpressionTreeNativeInterpreter.cs
- Timestamp:
- 05/06/19 14:20:06 (5 years ago)
- Location:
- branches/2988_ModelsOfModels2/HeuristicLab.Problems.DataAnalysis.Symbolic
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2988_ModelsOfModels2/HeuristicLab.Problems.DataAnalysis.Symbolic
- Property svn:mergeinfo changed
/trunk/HeuristicLab.Problems.DataAnalysis.Symbolic merged: 16737,16740,16758,16762,16764,16768,16802,16822,16839,16858,16868
- Property svn:mergeinfo changed
-
branches/2988_ModelsOfModels2/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Interpreter/SymbolicDataAnalysisExpressionTreeNativeInterpreter.cs
r16565 r16899 20 20 #endregion 21 21 22 using System; 23 using System.Collections.Generic; 24 using System.Linq; 25 using System.Runtime.InteropServices; 22 using HEAL.Attic; 26 23 using HeuristicLab.Common; 27 24 using HeuristicLab.Core; … … 29 26 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding; 30 27 using HeuristicLab.Parameters; 31 using HEAL.Attic; 28 using System; 29 using System.Collections.Generic; 30 using System.Linq; 31 using System.Runtime.InteropServices; 32 32 33 33 namespace HeuristicLab.Problems.DataAnalysis.Symbolic { … … 101 101 private IDataset dataset; 102 102 103 private static readonly HashSet<byte> supportedOpCodes = new HashSet<byte>() { 104 (byte)OpCode.Constant, 105 (byte)OpCode.Variable, 106 (byte)OpCode.Add, 107 (byte)OpCode.Sub, 108 (byte)OpCode.Mul, 109 (byte)OpCode.Div, 110 (byte)OpCode.Exp, 111 (byte)OpCode.Log, 112 (byte)OpCode.Sin, 113 (byte)OpCode.Cos, 114 (byte)OpCode.Tan, 115 (byte)OpCode.Tanh, 116 (byte)OpCode.Power, 117 (byte)OpCode.Root, 118 (byte)OpCode.SquareRoot, 119 (byte)OpCode.Square, 120 (byte)OpCode.CubeRoot, 121 (byte)OpCode.Cube, 122 (byte)OpCode.Absolute, 123 (byte)OpCode.AnalyticQuotient 124 }; 125 103 126 public IEnumerable<double> GetSymbolicExpressionTreeValues(ISymbolicExpressionTree tree, IDataset dataset, IEnumerable<int> rows) { 104 127 if (!rows.Any()) return Enumerable.Empty<double>(); … … 108 131 } 109 132 110 var code = Compile(tree, OpCodes.MapSymbolToOpCode); 133 byte mapSupportedSymbols(ISymbolicExpressionTreeNode node) { 134 var opCode = OpCode.MapSymbolToOpCode(node); 135 if (supportedOpCodes.Contains(opCode)) return opCode; 136 else throw new NotSupportedException($"The native interpreter does not support {node.Symbol.Name}"); 137 }; 138 var code = Compile(tree, mapSupportedSymbols); 111 139 112 140 var rowsArray = rows.ToArray();
Note: See TracChangeset
for help on using the changeset viewer.