public InferenceMachine(InferenceContext context, IEnumerable<UniversalSet> universes, RuleSet ruleSet) { Universes = new List<UniversalSet>(universes); RuleSet = ruleSet; Context = context; }
public double Evaluate(InferenceContext context) { return context.Options.LogicOps.Not(_operand.Evaluate(context)); }
public double Evaluate(InferenceContext context) { double value = context[_left]; return double.IsNaN(value) ? double.NaN : _right[value]; }
public double Evaluate(InferenceContext context) { var leftResult = _left.Evaluate(context); var rightResult = _right.Evaluate(context); return context.Options.LogicOps.Or(leftResult, rightResult); }
public Task<Set> EvaluateAsync(InferenceContext context) { return Task.Run(() => { var resultSet = Set.Empty; Parallel.ForEach(Rules, rule => { var result = rule.Evaluate(context); context.Options.SetOps.Union(resultSet, result); }); return resultSet; }); }
public Set Evaluate(InferenceContext context) { var resultSet = Set.Empty; Parallel.ForEach(Rules, rule => { var result = rule.Evaluate(context); context.Options.SetOps.Union(resultSet, result); }); return resultSet; }
public Task<Set> EvaluateAsync(InferenceContext context) { return Task.Run(() => { var result = Condition.Evaluate(context); var newDic = Then.Values.Where(item => item.Value <= result).ToDictionary(item => item.Key, item => item.Value); return new Set(string.Concat(Name, " result set"), newDic); }); }
public Set Evaluate(InferenceContext context) { var result = Condition.Evaluate(context); var newDic = Then.Values.Where(item => item.Value <= result).ToDictionary(item => item.Key, item => item.Value); return new Set(string.Concat(Name, " result set"), newDic); }