void writeDiversityStats(bool before) { if (_generations > 0) { _learningEnabled = false; DiversityAnalyzer analyser = new DiversityAnalyzer(_world); double[][] readings = analyser.getSensorReadings(); string diverseFile = before ? DiversityFile.Replace(".csv", "_before.csv") : DiversityFile.Replace(".csv", "_after.csv"); using (TextWriter writer = new StreamWriter(diverseFile, true)) { List <double> orientationVariances = new List <double>(); List <double> velocityVariances = new List <double>(); foreach (double[] reading in readings) { var variances = analyser.getResponseVariance(reading); orientationVariances.Add(variances[0]); velocityVariances.Add(variances[1]); } writer.WriteLine("{0},{1},{2}", _generations, orientationVariances.Average(), velocityVariances.Average()); } _world.Reset(); _learningEnabled = true; } }