// as in : [The Meaning and Use of the Area nder a Receiver Operating Characteristic(ROC) Curve] part 3 equation 1
        public static double ComputeStandardError(double auc, IList <double> sample, IList <bool> labels, Random random, int trial_count)
        {
            double[] true_instances  = ToolsCollection.SelectWithSelectorValue(sample, labels, true);
            double[] false_instances = ToolsCollection.SelectWithSelectorValue(sample, labels, true);
            double   theta           = auc;
            //double Q1 = ComputeQ1Simple(true_instances, false_instances, random, trial_count);
            //double Q2 = ComputeQ2Simple(true_instances, false_instances, random, trial_count);

            //If we asume theta follow a negative exponential distribution
            double Q1 = theta / (2 - theta);
            double Q2 = (2 * theta * theta) / (1 + theta);

            double na = true_instances.Length;
            double nn = false_instances.Length;

            return(Math.Sqrt(((theta * (1 - theta)) + ((na - 1) * (Q1 - (theta * theta))) + ((nn - 1) * (Q2 - (theta * theta)))) / (na * nn)));
        }