Exemplo n.º 1
0
 /**
  * Sample median
  * @param numbers   List of number
  * @return          Sample median, if table was empty or null then Double.NaN is returned.
  */
 public static double median(CancellationToken token, params double[] numbers)
 {
     if (numbers == null)
     {
         return(Double.NaN);
     }
     if (numbers.Length == 0)
     {
         return(Double.NaN);
     }
     if (numbers.Length == 1)
     {
         return(numbers[0]);
     }
     if (numbers.Length == 2)
     {
         return((numbers[0] + numbers[1]) / 2.0);
     }
     foreach (double v in numbers)
     {
         if (mXparser.isCurrentCalculationCancelled(token))
         {
             return(Double.NaN);
         }
         if (Double.IsNaN(v))
         {
             return(Double.NaN);
         }
     }
     NumberTheory.sortAsc(token, numbers);
     if ((numbers.Length % 2) == 1)
     {
         int i = (numbers.Length - 1) / 2;
         return(numbers[i]);
     }
     else
     {
         int i = (numbers.Length / 2) - 1;
         return((numbers[i] + numbers[i + 1]) / 2.0);
     }
 }
Exemplo n.º 2
0
 /**
  * Sample median
  * @param numbers   List of number
  * @return          Sample median, if table was empty or null then Double.NaN is returned.
  */
 public static double median(params double[] numbers)
 {
     if (numbers == null)
     {
         return(Double.NaN);
     }
     if (numbers.Length == 0)
     {
         return(Double.NaN);
     }
     if (numbers.Length == 1)
     {
         return(numbers[0]);
     }
     if (numbers.Length == 2)
     {
         return((numbers[0] + numbers[1]) / 2.0);
     }
     foreach (double v in numbers)
     {
         if (Double.IsNaN(v))
         {
             return(Double.NaN);
         }
     }
     NumberTheory.sortAsc(numbers);
     if ((numbers.Length % 2) == 1)
     {
         int i = (numbers.Length - 1) / 2;
         return(numbers[i]);
     }
     else
     {
         int i = (numbers.Length / 2) - 1;
         return((numbers[i] + numbers[i + 1]) / 2.0);
     }
 }