Example #1
0
 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]);
 }
Example #2
0
        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);
        }
Example #3
0
 protected override double calculate()
 {
     return(values.count() <= lag ? double.NaN : values - values[lag]);
 }
Example #4
0
 protected override T calculate()
 {
     return(values.count() <= lag ? default(T) : values[lag]);
 }
Example #5
0
 protected override T[] calculate()
 {
     return(values.count() <= window ? null : values.toArray(window));
 }