protected override CrossOverStatus calculate() { if (spud1[0].CompareTo(spud2[0]) < 0) { return(CrossOverStatus.BELOW); } if (spud1[0].CompareTo(spud2[0]) > 0) { return(CrossOverStatus.ABOVE); } if (spud1.count() == 1 || spud2.count() == 1) { return(CrossOverStatus.NONE); } return(this[1]); }
protected override T calculate() { if (!isInitialized()) { return(spud[0]); } var challenger = spud[0]; if (count() < 2) { return(spud[0]); } var champion = this[1]; if (challenge(champion, challenger)) { return(challenger); } if (period >= spud.count()) { return(champion); } if (!champion.Equals(spud[period])) { return(champion); } champion = challenger; for (var i = 1; i < period; i++) { challenger = spud[i]; if (challenge(champion, challenger)) { champion = challenger; } } return(champion); }
protected override double calculate() { return(values.count() <= lag ? double.NaN : values - values[lag]); }
protected override T calculate() { return(values.count() <= lag ? default(T) : values[lag]); }
protected override T[] calculate() { return(values.count() <= window ? null : values.toArray(window)); }