public void propagate(Neuron neuron, double expected, double beta, double learningFactor, double inputDifference = 0) { neuron.setWeightsCorrections(expected, beta, learningFactor, inputDifference); if (neuron.layerNumber == 0) { return; } for (int i = 0; i < neuron.inputs.Count - 1; i++) { this.propagate(this.getNeuron(neuron.layerNumber - 1, i), expected, beta, learningFactor, neuron.inputDifferences[i]); } }