public static double GetLocalStandardDeviationAverage(List<double> list, List<string> chromosome)
{
List<double> medianAbsoluteDeviations = new List<double>();
int iStart = 0;
for (int i = 0; i < list.Count; i++)
{
if (chromosome[i] != chromosome[iStart])
{
int iEnd = i; // 0-based, exclusive
medianAbsoluteDeviations.Add(Utilities.Mad(list, iStart, iEnd));
iStart = i;
}
}
medianAbsoluteDeviations.Add(Utilities.Mad(list, iStart, list.Count));
return medianAbsoluteDeviations.Average();
}