/// <summary>
/// Calculate the error for this neural network. The error is calculated
/// using root-mean-square(RMS).
/// </summary>
/// <param name="data">The training set.</param>
/// <returns>The error percentage.</returns>
public double CalculateError(INeuralDataSet data)
{
ClearContext();
ErrorCalculation errorCalculation = new ErrorCalculation();
foreach (INeuralDataPair pair in data)
{
INeuralData actual = Compute(pair.Input);
errorCalculation.UpdateError(actual.Data, pair.Ideal.Data);
}
return errorCalculation.Calculate();
}