Example #1
0
        /// <summary>
        /// 지정된 시퀀스의 값 중 가장 작은 값을 가진 요소의 인덱스를 구한다.
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="source"></param>
        /// <returns></returns>
        public static int IndexOfAbsMin <T>(this IEnumerable <T> source)
        {
            var index = -1;

            using (var iter = source.Abs().GetEnumerator()) {
                if (iter.MoveNext() == false)
                {
                    return(index);
                }

                var highest = iter.Current;
                var count   = 0;
                index = count;

                while (iter.MoveNext())
                {
                    var current = iter.Current;
                    count++;
                    if (LinqTool.Operators <T> .LessThan(current, highest))
                    {
                        highest = current;
                        index   = count;
                    }
                }
            }
            return(index);
        }
Example #2
0
        /// <summary>
        /// 시퀀스 요소의 절대값의 최대/최소값을 구한다.
        /// </summary>
        /// <param name="source">Sequece of variable</param>
        /// <param name="min">변량의 절대값의 최소값</param>
        /// <param name="max">변량의 절대값의 최대값</param>
        public static void GetAbsMinMax(this IEnumerable <int> source, out int min, out int max)
        {
            source.ShouldNotBeNull("source");

            min = int.MaxValue;
            max = int.MinValue;

            foreach (var v in source.Abs())
            {
                if (min > v)
                {
                    min = v;
                }
                if (max < v)
                {
                    max = v;
                }
            }
        }
Example #3
0
 /// <summary>
 /// 변량들의 절대값의 합을 구한다.
 /// </summary>
 /// <param name="source">변량 시퀀스</param>
 /// <returns>변량들의 절대값의 합</returns>
 public static long AbsSum(this IEnumerable <long> source)
 {
     return(source.Abs().Sum());
 }
Example #4
0
 /// <summary>
 /// 변량들의 절대값의 합을 구한다.
 /// </summary>
 /// <param name="source">변량 시퀀스</param>
 /// <returns>변량들의 절대값의 합</returns>
 public static int AbsSum(this IEnumerable <int> source)
 {
     return(source.Abs().Sum());
 }
Example #5
0
 /// <summary>
 /// 변량들의 절대값의 합을 구한다.
 /// </summary>
 /// <param name="source">변량 시퀀스</param>
 /// <returns>변량들의 절대값의 합</returns>
 public static float AbsSum(this IEnumerable <float> source)
 {
     return(source.Abs().Sum());
 }
Example #6
0
 /// <summary>
 /// 변량들의 절대값의 합을 구한다.
 /// </summary>
 /// <param name="source">변량 시퀀스</param>
 /// <returns>변량들의 절대값의 합</returns>
 public static double AbsSum(this IEnumerable <double> source)
 {
     return(source.Abs().Sum());
 }
Example #7
0
 /// <summary>
 /// 변량들의 절대값의 합을 구한다.
 /// </summary>
 /// <param name="source">변량 시퀀스</param>
 /// <returns>변량들의 절대값의 합</returns>
 public static decimal AbsSum(this IEnumerable <decimal> source)
 {
     return(source.Abs().Sum());
 }