public Decision Build( IIntMap<int> outcomeArrows, IntInterval possibleBounds, IIntFrequency frequency) { defaultAction = outcomeArrows.DefaultValue; this.actionIdToDecision[defaultAction] = new ActionDecision(defaultAction); Decision result; if (TryBuildElementaryTree(outcomeArrows, out result)) { return result; } // TODO: Alternatively to averaging probability, each test can // be split if probability varies significantly within test range DecisionTest[] tests = outcomeArrows .EnumerateCoverage(possibleBounds) .Select( a => new DecisionTest(a.Key, a.Value, frequency.Average(a.Key)) ) .ToArray(); result = GenTree(new ArraySlice<DecisionTest>(tests)); return result; }
public Decision Build( IIntMap <int> outcomeArrows, IntInterval possibleBounds, IIntFrequency frequency) { defaultAction = outcomeArrows.DefaultValue; this.actionIdToDecision[defaultAction] = new ActionDecision(defaultAction); Decision result; if (TryBuildElementaryTree(outcomeArrows, out result)) { return(result); } // TODO: Alternatively to averaging probability, each test can // be split if probability varies significantly within test range DecisionTest[] tests = outcomeArrows .EnumerateCoverage(possibleBounds) .Select( a => new DecisionTest(a.Key, a.Value, frequency.Average(a.Key)) ) .ToArray(); result = GenTree(new ArraySlice <DecisionTest>(tests)); return(result); }
public static SwitchGenerator Sparse( IIntMap<int> arrows, IntInterval possibleBounds, IIntFrequency frequency = null) { var result = new SparseSwitchGenerator(arrows, possibleBounds, frequency); return result; }
public static SwitchGenerator Sparse( IIntMap <int> arrows, IntInterval possibleBounds, IIntFrequency frequency = null) { var result = new SparseSwitchGenerator(arrows, possibleBounds, frequency); return(result); }
public static SwitchGenerator Sparse( IntArrow<int>[] intervalToValue, int defaultValue, IntInterval possibleBounds, IIntFrequency frequency = null) { var result = new SparseSwitchGenerator(intervalToValue, defaultValue, possibleBounds, frequency); return result; }
public SparseSwitchGenerator( IIntMap<int> intMap, IntInterval possibleBounds, IIntFrequency frequency) { this.strategy = new InlineFirstDTStrategy(this); this.intMap = intMap; this.possibleBounds = possibleBounds; this.frequency = frequency ?? new UniformIntFrequency(possibleBounds); }
public SparseSwitchGenerator( IntArrow<int>[] intArrows, int defaultValue, IntInterval possibleBounds, IIntFrequency frequency = null) : this(new MutableIntMap<int>(intArrows, defaultValue), possibleBounds, frequency) { }
public static SwitchGenerator Sparse( IntArrow <int>[] intervalToValue, int defaultValue, IntInterval possibleBounds, IIntFrequency frequency = null) { var result = new SparseSwitchGenerator(intervalToValue, defaultValue, possibleBounds, frequency); return(result); }
public SparseSwitchGenerator( IIntMap <int> intMap, IntInterval possibleBounds, IIntFrequency frequency) { this.strategy = new InlineFirstDTStrategy(this); this.intMap = intMap; this.possibleBounds = possibleBounds; this.frequency = frequency ?? new UniformIntFrequency(possibleBounds); }
public SparseSwitchGenerator( IntArrow <int>[] intArrows, int defaultValue, IntInterval possibleBounds, IIntFrequency frequency = null) : this( new MutableIntMap <int>(intArrows, defaultValue), possibleBounds, frequency) { }