public static double ComputeROCAUCTrapeziod <RealType>(IList <bool> labels, IList <RealType> sample)
            where RealType : IComparable <RealType>
        {
            int    postive_count            = ToolsCollection.CountOccurance(labels, true);
            double true_positive_increment  = 1.0 / postive_count;
            double false_positive_increment = 1.0 / (labels.Count - postive_count);

            double[]   true_positive_rates  = new double[labels.Count + 1];
            double[]   false_positive_rates = new double[labels.Count + 1];
            List <int> ordering             = ToolsMathCollection.Ordering(sample);


            for (int index = 1; index < labels.Count + 1; index++)
            {
                if (labels[ordering[index - 1]])
                {
                    true_positive_rates[index]  = true_positive_rates[index - 1] + true_positive_increment;
                    false_positive_rates[index] = false_positive_rates[index - 1];
                }
                else
                {
                    true_positive_rates[index]  = true_positive_rates[index - 1];
                    false_positive_rates[index] = false_positive_rates[index - 1] + false_positive_increment;
                }
            }
            return(IntegralEvaluatorTrapezoid.EvaluateStaticValue(false_positive_rates, true_positive_rates));
        }
        public static RealType MeanAll <RealType>(IAlgebraReal <RealType> algebra, IList <IList <RealType> > samples)
        {
            RealType total_count = algebra.AddIdentity;
            RealType total_sum   = algebra.AddIdentity;

            foreach (IList <RealType> sample in samples)
            {
                total_count = algebra.Add(total_count, algebra.ToDomain((float)sample.Count));
                total_sum   = algebra.Add(total_sum, ToolsMathCollection.Sum(algebra, sample));
            }
            return(algebra.Divide(total_sum, total_count));
        }
 public static double[] Shift(double[] domain, double[] range, double shift)
 {
     return(Resample(domain, range, ToolsMathCollection.Add(domain, shift)));
 }
 public static RealType Mean <RealType>(
     IAlgebraReal <RealType> algebra,
     IList <RealType> sample_0)
 {
     return(algebra.Divide(ToolsMathCollection.Sum(algebra, sample_0), algebra.ToDomain((float)sample_0.Count)));
 }