Changeset 18060 for branches/3040_VectorBasedGP/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Converters/VectorTreeSimplifier.cs
- Timestamp:
- 09/28/21 13:37:43 (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/3040_VectorBasedGP/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Converters/VectorTreeSimplifier.cs
r17629 r18060 66 66 private static readonly StandardDeviation standardDeviationSymbol = new StandardDeviation(); 67 67 private static readonly Variance varianceSymbol = new Variance(); 68 private static readonly Min minSymbol = new Min(); 69 private static readonly Max maxSymbol = new Max(); 68 70 69 71 private readonly SymbolicDataAnalysisExpressionTreeVectorInterpreter interpreter; … … 281 283 private static bool IsVariance(ISymbolicExpressionTreeNode node) { 282 284 return node.Symbol is Variance; 285 } 286 287 private static bool IsMin(ISymbolicExpressionTreeNode node) { 288 return node.Symbol is Min; 289 } 290 291 private static bool IsMax(ISymbolicExpressionTreeNode node) { 292 return node.Symbol is Max; 283 293 } 284 294 #endregion … … 363 373 } else if (IsVariance(original)) { 364 374 return SimplifyVarianceAggregation(original); 375 } else if (IsMin(original)) { 376 return SimplifyMinAggregation(original); 377 } else if (IsMax(original)) { 378 return SimplifyMaxAggregation(original); 365 379 } else { 366 380 return SimplifyAny(original); … … 574 588 private ISymbolicExpressionTreeNode SimplifyVarianceAggregation(ISymbolicExpressionTreeNode original) { 575 589 return MakeVarianceAggregation(GetSimplifiedTree(original.GetSubtree(0))); 590 } 591 592 private ISymbolicExpressionTreeNode SimplifyMinAggregation(ISymbolicExpressionTreeNode original) { 593 return MakeMinAggregation(GetSimplifiedTree(original.GetSubtree(0))); 594 } 595 596 private ISymbolicExpressionTreeNode SimplifyMaxAggregation(ISymbolicExpressionTreeNode original) { 597 return MakeMaxAggregation(GetSimplifiedTree(original.GetSubtree(0))); 576 598 } 577 599 #endregion … … 1508 1530 }); 1509 1531 } 1532 1533 private ISymbolicExpressionTreeNode MakeMinAggregation(ISymbolicExpressionTreeNode node) { 1534 return MakeAggregation(node, meanSymbol, 1535 simplifyScalar: n => n, 1536 simplifyAdditiveTerms: (vectorNode, scalarNode) => { 1537 var minNode = MakeMinAggregation(vectorNode); 1538 return MakeSum(scalarNode, minNode); 1539 }, 1540 simplifyMultiplicativeFactors: (vectorNode, scalarNode) => { 1541 var minNode = MakeMinAggregation(vectorNode); 1542 return MakeProduct(scalarNode, minNode); 1543 }); 1544 } 1545 1546 private ISymbolicExpressionTreeNode MakeMaxAggregation(ISymbolicExpressionTreeNode node) { 1547 return MakeAggregation(node, meanSymbol, 1548 simplifyScalar: n => n, 1549 simplifyAdditiveTerms: (vectorNode, scalarNode) => { 1550 var maxNode = MakeMaxAggregation(vectorNode); 1551 return MakeSum(scalarNode, maxNode); 1552 }, 1553 simplifyMultiplicativeFactors: (vectorNode, scalarNode) => { 1554 var maxNode = MakeMaxAggregation(vectorNode); 1555 return MakeProduct(scalarNode, maxNode); 1556 }); 1557 } 1510 1558 #endregion 1511 1559
Note: See TracChangeset
for help on using the changeset viewer.