Exemplo n.º 1
0
 /**
  * Sample mode
  * @param numbers   List of number
  * @return          Sample median, if table was empty or null then Double.NaN is returned.
  */
 public static double mode(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]);
     }
     foreach (double v in numbers)
     {
         if (mXparser.isCurrentCalculationCancelled(token))
         {
             return(Double.NaN);
         }
         if (Double.IsNaN(v))
         {
             return(Double.NaN);
         }
     }
     double[,] dist = NumberTheory.getDistValues(token, numbers, true);
     return(dist[0, 0]);
 }
Exemplo n.º 2
0
        /**
         * Greater or equal relation.
         *
         * @param      a                   the a number (a >= b)
         * @param      b                   the b number (a >= b)
         *
         * @return     if a = Double.NaN or b = Double.NaN return Double.NaN,
         *             else if a >= b return 1,
         *             otherwise return 0.
         */
        public static double geq(double a, double b)
        {
            if ((Double.IsNaN(a)) || (Double.IsNaN(b)))
            {
                return(Double.NaN);
            }
            double eps = NumberTheory.max(epsilon, MathFunctions.ulp(b));

            if (Double.IsInfinity(a) || Double.IsInfinity(b))
            {
                eps = 0;
            }
            double result = BooleanAlgebra.FALSE;

            if (epsilonComparison)
            {
                if (a >= b - eps)
                {
                    result = BooleanAlgebra.TRUE;
                }
            }
            else if (a >= b)
            {
                result = BooleanAlgebra.TRUE;
            }
            return(result);
        }
Exemplo n.º 3
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);
     }
 }
        /**
         * Greater or equal relation.
         *
         * @param      a                   the a number (a >= b)
         * @param      b                   the b number (a >= b)
         *
         * @return     if a = Double.NaN or b = Double.NaN return Double.NaN,
         *             else if a >= b return 1,
         *             otherwise return 0.
         */
        public static double geq(double a, double b)
        {
            if ((Double.IsNaN(a)) || (Double.IsNaN(b)))
            {
                return(Double.NaN);
            }
            double eps    = NumberTheory.max(epsilon, MathFunctions.ulp(b));
            double result = 0;

            if (epsilonComparison)
            {
                if (a >= b - eps)
                {
                    result = 1;
                }
            }
            else if (a >= b)
            {
                result = 1;
            }
            return(result);
        }
Exemplo n.º 5
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);
     }
 }
Exemplo n.º 6
0
 /**
  * Sample mode
  * @param numbers   List of number
  * @return          Sample median, if table was empty or null then Double.NaN is returned.
  */
 public static double mode(params double[] numbers)
 {
     if (numbers == null)
     {
         return(Double.NaN);
     }
     if (numbers.Length == 0)
     {
         return(Double.NaN);
     }
     if (numbers.Length == 1)
     {
         return(numbers[0]);
     }
     foreach (double v in numbers)
     {
         if (Double.IsNaN(v))
         {
             return(Double.NaN);
         }
     }
     double[,] dist = NumberTheory.getDistValues(numbers, true);
     return(dist[0, 0]);
 }