private double computeErrors(double[][] input, double[] output, int[] block)
{
double sumOfSquaredErrors = 0.0;
// for each input sample
foreach (int i in block)
{
double actual = Function(solution, input[i]);
double expected = output[i];
double e = expected - actual;
sumOfSquaredErrors += e * e;
errors[i] = e;
}
return sumOfSquaredErrors / 2.0;
}