Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
02/07/12 12:35:42 (12 years ago)
Author:
gkronber
Message:

#1081 improved formatter, line chart view, simplifier for time series prognosis solutions

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Formatters/SymbolicDataAnalysisExpressionLatexFormatter.cs

    r7460 r7463  
    3333  [StorableClass]
    3434  public sealed class SymbolicDataAnalysisExpressionLatexFormatter : NamedItem, ISymbolicExpressionTreeStringFormatter {
    35     private List<double> constants;
     35    private readonly List<double> constants;
     36    private int targetCount;
    3637    private int currentLag;
    3738
     
    5758        StringBuilder strBuilder = new StringBuilder();
    5859        constants.Clear();
     60        targetCount = 1;
    5961        strBuilder.AppendLine(FormatRecursively(symbolicExpressionTree.Root));
    6062        return strBuilder.ToString();
     
    9698      } else if (node.Symbol is Division) {
    9799        if (node.SubtreeCount == 1) {
    98           strBuilder.Append(@" \cfrac{1}{");
     100          strBuilder.Append(@" \cfrac{1");
    99101        } else {
    100102          strBuilder.Append(@" \cfrac{ ");
     
    160162        strBuilder.Append(invokeNode.Symbol.FunctionName + @" \left( ");
    161163      } else if (node.Symbol is StartSymbol) {
    162         strBuilder.Append("Result & = ");
     164        strBuilder.Append("target_" + (targetCount++) + "(t) & = ");
    163165      } else if (node.Symbol is Argument) {
    164166        var argSym = node.Symbol as Argument;
     
    197199        strBuilder.Append(@" \cdot ");
    198200      } else if (node.Symbol is Division) {
    199         strBuilder.Append(@" }{ \cfrac{ ");
     201        if (node.SubtreeCount <= 2)
     202          strBuilder.Append(@" }{ ");
     203        else
     204          strBuilder.Append(@" }{ \cfrac{ ");
    200205      } else if (node.Symbol is Average) {
    201206        strBuilder.Append(@" + ");
     
    228233        strBuilder.Append(" , ");
    229234      } else if (node.Symbol is StartSymbol) {
    230         strBuilder.Append(@"\\" + Environment.NewLine + " & ");
     235        strBuilder.Append(@"\\" + Environment.NewLine);
     236        strBuilder.Append("target_" + (targetCount++) + "(t) & = ");
    231237      } else if (node.Symbol is Power) {
    232238        strBuilder.Append(@"\right) ^ { \operatorname{round} \left(");
     
    253259      } else if (node.Symbol is Division) {
    254260        strBuilder.Append("} ");
    255         if (node.SubtreeCount > 1)
    256           strBuilder.Append("{1} ");
    257         for (int i = 1; i < node.SubtreeCount; i++) {
     261        if (node.SubtreeCount == 1 || node.SubtreeCount == 2)
    258262          strBuilder.Append(" } ");
    259         }
     263        else
     264          for (int i = 0; i < node.SubtreeCount; i++) {
     265            strBuilder.Append(" } ");
     266          }
    260267      } else if (node.Symbol is Average) {
    261268        strBuilder.Append(@" \right) ");
Note: See TracChangeset for help on using the changeset viewer.