Пример #1
0
        internal static double Average(this ExtractedArray <double> source)
        {
            Contract.RequiresNotDefault(source, "source");
            Contract.RequiresNonEmptyCollection(source.ActualLength);

            return((double)Sum(source) / source.ActualLength);
        }
Пример #2
0
        internal static double?Max(this ExtractedArray <double?> source)
        {
            Contract.RequiresNotDefault(source, "source");
            Contract.RequiresNonEmptyCollection(source.ActualLength);

            double?max = null;
            double?current;
            int    i = 0;

            for (; i < source.ActualLength; i++)
            {
                current = source.Array[i];
                if (current != null)
                {
                    max = current;
                    break;
                }
            }
            for (; i < source.ActualLength; i++)
            {
                current = source.Array[i];
                if (current != null &&
                    max.Value < current.Value)
                {
                    max = current;
                }
            }

            return(max);
        }
Пример #3
0
        internal static short?Min(this ExtractedArray <short?> source)
        {
            Contract.RequiresNotDefault(source, "source");
            Contract.RequiresNonEmptyCollection(source.ActualLength);

            short?min = null;
            short?current;
            int   i = 0;

            for (; i < source.ActualLength; i++)
            {
                current = source.Array[i];
                if (current != null)
                {
                    min = current;
                    break;
                }
            }
            for (; i < source.ActualLength; i++)
            {
                current = source.Array[i];
                if (current != null &&
                    min.Value > current.Value)
                {
                    min = current;
                }
            }

            return(min);
        }
Пример #4
0
        internal static short Max(this ExtractedArray <short> source)
        {
            Contract.RequiresNotDefault(source, "source");
            Contract.RequiresNonEmptyCollection(source.ActualLength);

            var max = short.MinValue;

            for (int i = 0; i < source.ActualLength; i++)
            {
                max = Math.Max(max, source.Array[i]);
            }

            return(max);
        }
Пример #5
0
        internal static double?Average(this ExtractedArray <double?> source)
        {
            Contract.RequiresNotDefault(source, "source");
            Contract.RequiresNonEmptyCollection(source.ActualLength);

            var sum = Sum(source);

            if (sum == null)
            {
                return(null);
            }

            return(sum.Value / source.ActualLength);
        }
Пример #6
0
        internal static double Min(this ExtractedArray <double> source)
        {
            Contract.RequiresNotDefault(source, "source");
            Contract.RequiresNonEmptyCollection(source.ActualLength);

            var min = double.MaxValue;

            for (int i = 0; i < source.ActualLength; i++)
            {
                min = Math.Min(min, source.Array[i]);
            }

            return(min);
        }
Пример #7
0
        internal static double Sum(this ExtractedArray <double> source)
        {
            Contract.RequiresNotDefault(source, "source");

            double sum = 0;

            for (int i = 0; i < source.ActualLength; i++)
            {
                checked
                {
                    sum += source.Array[i];
                }
            }

            return(sum);
        }
Пример #8
0
        internal static double?Sum(this ExtractedArray <double?> source)
        {
            Contract.RequiresNotDefault(source, "source");

            double sum = 0;
            double?current;

            for (int i = 0; i < source.ActualLength; i++)
            {
                current = source.Array[i];
                if (current != null)
                {
                    checked
                    {
                        sum += current.GetValueOrDefault();
                    }
                }
            }

            return(sum);
        }