/// <summary>Backpropagates the given error trough the layer.</summary>
 /// <param name="outputErrorArray">The output error to be backpropagated.</param>
 /// <param name="outputErrorSkip">The index of the first entry of the ouptut error array to be used.</param>
 /// <param name="inputErrorArray">The array to be written the input entry into.</param>
 /// <param name="inputErrorSkip">The index of the first entry of the input error array to be used.</param>
 /// <param name="learning">Whether the array is being used in a training session.</param>
 public virtual void BackPropagate(float[] outputErrorArray, int outputErrorSkip, float[] inputErrorArray, int inputErrorSkip, bool learning)
 {
     Backbone.BackpropagateConnectionMatrix(this.Input, this.InputSkip, this.InputSize, this.Output, this.OutputSkip, this.OutputSize, this.Weights, outputErrorArray, outputErrorSkip, inputErrorArray, inputErrorSkip, this.Gradients, learning);
 }