public static TallyCount UpdateTally <T>(this ITally <T> tally, TallyCount count, IEnumerable <T> items) { foreach (var item in items) { UpdateTally(tally, count, item); } return(count); }
public static TallyCount CreateTally <T>(this ITally <T> tally, IEnumerable <T> items) { var count = new TallyCount(tally.Definition); foreach (var item in items) { UpdateTally(tally, count, item); } return(count); }
public static TallyCount UpdateTally <T>(this ITally <T> tally, TallyCount count, T item) { var i = tally.BinSelector(item); if (i < 0) { return(count); } if (i >= tally.Definition.Bins.Length) { throw new Exception($"BinSelector() returned invalid value: {i} ({tally.Definition.Bins.Length} bins exist"); } if (count.Counts.Length != tally.Definition.Bins.Length) { Array.Resize(ref count.Counts, tally.Definition.Bins.Length); } count.Counts[i]++; return(count); }
public void Add(TallyCount c2) { Enumerable.Range(0, Counts.Length).Select(i => Counts[i] += c2.Counts[i]).ToList(); }