private static double findBestBandwith(double minBandwidth, double maxBandwidth, double[] gcs, double[] counts) { minBandwidth = Math.Max(2.0 / gcs.Length, minBandwidth); maxBandwidth = Math.Min(1.0, maxBandwidth); if (maxBandwidth < minBandwidth) { maxBandwidth = minBandwidth; } return Utilities.GoldenSectionSearch(b => objective(b, gcs, counts), minBandwidth, maxBandwidth); }