/// <summary> /// Extends current chain about new rule with given probability. /// </summary> /// <param name="rule">Extending rule.</param> /// <param name="probability">Probability of extending rule.</param> /// <returns>Extended chain.</returns> internal RuleChain ExtendBy(ContextRule rule, double probability) { return(new RuleChain(this, rule, _totalProbability * probability)); }
/// <summary> /// Initializes empty chain. /// </summary> internal RuleChain() { _totalProbability = 1.0; _previousChain = null; _rule = null; }
/// <summary> /// Initializes part of chain based on previous parts of chain. /// </summary> private RuleChain(RuleChain previousChain, ContextRule rule, double totalProbability) { _previousChain = previousChain; _rule = rule; _totalProbability = totalProbability; }
internal void Add(ContextRule contextRule) { _rules.Add(contextRule); }