private static StringBuilder AppendDefinedResultNode(StringBuilder builder, EquationNodeModel node)
 {
     if (!NeedsFormatting(node))
     {
         return(builder);
     }
     builder.Append("+[");
     if (node.IsK1Enabled)
     {
         builder.AppendFormat("{0:0.0000;-0.0000}*{1}(k-1)", node.FactorK1, node.ShortName);
     }
     if (node.IsK2Enabled)
     {
         builder.AppendFormat("{2}{0:0.0000;-0.0000}*{1}(k-2)",
                              node.FactorK2,
                              node.ShortName,
                              node.IsK1Enabled ? "+" : string.Empty);
     }
     if (node.IsK3Enabled)
     {
         builder.AppendFormat("{2}{0:0.0000;-0.0000}*{1}(k-3)",
                              node.FactorK3,
                              node.ShortName,
                              node.IsK2Enabled ? "+" : string.Empty);
     }
     return(builder.Append("]"));
 }
Exemple #2
0
        public static double GetForecast(this EquationNodeModel node)
        {
            var weight = node.IsResult ? 0.0 : node.IsVisible ? node.Weight : 1.0;
            var f      = node.Factor * weight ?? 0.0;
            var f1     = node.FactorK1 * node.WeightK1 ?? 0.0;
            var f2     = node.FactorK2 * node.WeightK2 ?? 0.0;
            var f3     = node.FactorK3 * node.WeightK3 ?? 0.0;

            return(f + f1 + f2 + f3);
        }
 private static StringBuilder AppendNode(this StringBuilder builder, EquationNodeModel node, int index)
 {
     return(node.IsResult
         ? (node.IsDefined
             ? AppendDefinedResultNode(builder, node)
             : AppendUndefinedResultNode(builder, node, index))
         : (node.IsDefined
             ? AppendDefinedParamNode(builder, node)
             : AppendUndefinedParamNode(builder, node, index)));
 }
 private static StringBuilder AppendUndefinedParamNode(StringBuilder builder, EquationNodeModel node, int index)
 {
     builder.Append("[");
     builder.AppendFormat("a({0},0)*{1}", index + 1, node.ShortName);
     if (node.IsK1Enabled)
     {
         builder.AppendFormat("+a({0},1)*{1}(k-1)", index + 1, node.ShortName);
     }
     if (node.IsK2Enabled)
     {
         builder.AppendFormat("+a({0},2)*{1}(k-2)", index + 1, node.ShortName);
     }
     if (node.IsK3Enabled)
     {
         builder.AppendFormat("+a({0},3)*{1}(k-3)", index + 1, node.ShortName);
     }
     return(builder.Append("]"));
 }
 private static StringBuilder AppendDefinedParamNode(StringBuilder builder, EquationNodeModel node)
 {
     if (node.IsVisible)
     {
         builder.Append("[");
         builder.AppendFormat("{0:0.0000;-0.0000}*{1}", node.Factor, node.ShortName);
         if (node.IsK1Enabled)
         {
             builder.AppendFormat("{0:+0.0000;-0.0000}*{1}(k-1)", node.FactorK1, node.ShortName);
         }
         if (node.IsK2Enabled)
         {
             builder.AppendFormat("{0:+0.0000;-0.0000}*{1}(k-2)", node.FactorK2, node.ShortName);
         }
         if (node.IsK3Enabled)
         {
             builder.AppendFormat("{0:+0.0000;-0.0000}*{1}(k-3)", node.FactorK3, node.ShortName);
         }
         return(builder.Append("]"));
     }
     return(builder.AppendFormat("{0:0.0000;-0.0000}", node.Factor));
 }
 private static StringBuilder AppendUndefinedResultNode(StringBuilder builder, EquationNodeModel node, int index)
 {
     if (!NeedsFormatting(node))
     {
         return(builder);
     }
     builder.Append("+[");
     if (node.IsK1Enabled)
     {
         builder.AppendFormat("a({0},1)*{1}(k-1)", index + 1, node.ShortName);
     }
     if (node.IsK2Enabled)
     {
         builder.AppendFormat("{2}a({0},2)*{1}(k-2)",
                              index + 1,
                              node.ShortName,
                              node.IsK1Enabled ? "+" : string.Empty);
     }
     if (node.IsK3Enabled)
     {
         builder.AppendFormat("{2}a({0},3)*{1}(k-3)",
                              index + 1,
                              node.ShortName,
                              node.IsK2Enabled ? "+" : string.Empty);
     }
     return(builder.Append("]"));
 }
 private static bool NeedsFormatting(EquationNodeModel node)
 {
     return(node.IsK1Enabled || node.IsK2Enabled || node.IsK3Enabled);
 }