public virtual void Compute(double[] input, double[] output)
{
int sourceIndex = _layerOutput.Length
- _layerCounts[_layerCounts.Length - 1];
EngineArray.ArrayCopy(input, 0, _layerOutput, sourceIndex,
_inputCount);
for (int i = _layerIndex.Length - 1; i > 0; i--)
{
ComputeLayer(i);
}
// update context values
int offset = _contextTargetOffset[0];
for (int x = 0; x < _contextTargetSize[0]; x++)
{
_layerOutput[offset + x] = _layerOutput[x];
}
EngineArray.ArrayCopy(_layerOutput, 0, output, 0, _outputCount);
}