Changeset 14238 for branches/symbreg-factors-2650/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Analyzers/SymbolicDataAnalysisVariableFrequencyAnalyzer.cs
- Timestamp:
- 08/05/16 17:34:16 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/symbreg-factors-2650/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Analyzers/SymbolicDataAnalysisVariableFrequencyAnalyzer.cs
r14232 r14238 167 167 if (aggregateLaggedVariables) { 168 168 tree.Root.ForEachNodePrefix(node => { 169 if (node.Symbol is Variable) { 170 var varNode = node as VariableTreeNode; 171 IncReferenceCount(references, varNode.VariableName); 172 } else if (node.Symbol is VariableCondition) { 173 var varCondNode = node as VariableConditionTreeNode; 174 IncReferenceCount(references, varCondNode.VariableName); 175 } else if (node.Symbol is FactorVariable) { 169 if (node is IVariableTreeNode) { 176 170 var factorNode = node as FactorVariableTreeNode; 177 if ( aggregateFactorVariables) {178 IncReferenceCount(references, factorNode.VariableName );171 if (factorNode != null && !aggregateFactorVariables) { 172 IncReferenceCount(references, factorNode.VariableName + "=" + factorNode.VariableValue); 179 173 } else { 180 IncReferenceCount(references, factorNode.ToString()); 174 var varNode = node as IVariableTreeNode; 175 IncReferenceCount(references, varNode.VariableName); 181 176 } 182 177 } … … 189 184 190 185 private static void GetVariableReferences(Dictionary<string, int> references, ISymbolicExpressionTreeNode node, int currentLag, bool aggregateFactorVariables) { 191 if (node.Symbol is LaggedVariable) { 192 var laggedVarNode = node as LaggedVariableTreeNode; 193 IncReferenceCount(references, laggedVarNode.VariableName, currentLag + laggedVarNode.Lag); 194 } else if (node.Symbol is Variable) { 195 var varNode = node as VariableTreeNode; 196 IncReferenceCount(references, varNode.VariableName, currentLag); 197 } else if (node.Symbol is FactorVariable) { 198 var factorNode = node as FactorVariableTreeNode; 199 if (aggregateFactorVariables) { 200 IncReferenceCount(references, factorNode.VariableName, currentLag); 186 if (node is IVariableTreeNode) { 187 var laggedVarTreeNode = node as LaggedVariableTreeNode; 188 var factorVarTreeNode = node as FactorVariableTreeNode; 189 var varConditionTreeNode = node as VariableConditionTreeNode; 190 if (laggedVarTreeNode != null) { 191 IncReferenceCount(references, laggedVarTreeNode.VariableName, currentLag + laggedVarTreeNode.Lag); 192 } else if (factorVarTreeNode != null) { 193 if (aggregateFactorVariables) { 194 IncReferenceCount(references, factorVarTreeNode.VariableName, currentLag); 195 } else { 196 IncReferenceCount(references, factorVarTreeNode.VariableName + "=" + factorVarTreeNode.VariableValue, currentLag); 197 } 198 } else if (varConditionTreeNode != null) { 199 IncReferenceCount(references, varConditionTreeNode.VariableName, currentLag); 200 GetVariableReferences(references, node.GetSubtree(0), currentLag, aggregateFactorVariables); 201 GetVariableReferences(references, node.GetSubtree(1), currentLag, aggregateFactorVariables); 201 202 } else { 202 IncReferenceCount(references, factorNode.ToString(), currentLag); 203 } 204 } else if (node.Symbol is VariableCondition) { 205 var varCondNode = node as VariableConditionTreeNode; 206 IncReferenceCount(references, varCondNode.VariableName, currentLag); 207 GetVariableReferences(references, node.GetSubtree(0), currentLag, aggregateFactorVariables); 208 GetVariableReferences(references, node.GetSubtree(1), currentLag, aggregateFactorVariables); 203 var varNode = node as IVariableTreeNode; 204 IncReferenceCount(references, varNode.VariableName, currentLag); 205 } 209 206 } else if (node.Symbol is Integral) { 210 207 var laggedNode = node as LaggedTreeNode;
Note: See TracChangeset
for help on using the changeset viewer.