- Timestamp:
- 10/22/15 19:12:29 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Common/3.3/EnumerableStatisticExtensions.cs
r13034 r13051 65 65 66 66 // Numerical Recipes in C++, §8.5 Selecting the Mth Largest, O(n) 67 // Gi ben k in [0..n-1] returns an array value from array arr[0..n-1] such that k array values are67 // Given k in [0..n-1] returns an array value from array arr[0..n-1] such that k array values are 68 68 // lee than or equal to the one returned. The input array will be rearranged to hav this value in 69 69 // location arr[k], with all smaller elements moved to arr[0..k-1] (in arbitrary order) and all 70 70 // larger elements in arr[k+1..n-1] (also in arbitrary order). 71 // 72 // Could be changed to Select<T> where T is IComparable but in this case is significantly slower for double values 71 73 private static double Select(int k, double[] arr) { 72 74 Contract.Assert(arr.GetLowerBound(0) == 0); … … 198 200 } 199 201 200 /// <summary>201 /// Calculates the pth percentile of the values.202 /// </summary>203 public static double Percentile(this IEnumerable<double> values, double p) {204 // percentiles are actually quantiles where alpha is constrained to integer percentage values from 1% to 99%205 return Quantile(values, p);206 }207 208 202 public static IEnumerable<double> LimitToRange(this IEnumerable<double> values, double min, double max) { 209 203 if (min > max) throw new ArgumentException(string.Format("Minimum {0} is larger than maximum {1}.", min, max));
Note: See TracChangeset
for help on using the changeset viewer.