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("]")); }
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); }