protected void FinaliseErrorSecondDerivatives(Step downstream)
{
for (int i = 0; i < downstream.ErrorDerivative.Length; i++)
{
double weightedInputs = downstream.WeightedInputs[i];
double activationDerivative = downstream.CalculateActivationDerivative(weightedInputs);
downstream.ErrorDerivative[i] *= activationDerivative * activationDerivative;
}
}