/** * {@inheritDoc} */ @Override public void getRecord(long index, MLDataPair pair) { if (this.data == null) { throw new EncogError( "You must normalize the dataset before using it."); } // Copy the input, account for time windows. int inputSize = calculateLagCount(); for (int i = 0; i < inputSize; i++) { double[] dataRow = lookupDataRow((int) (index + i)); EngineArray.arrayCopy(dataRow, 0, pair.getInput().getData(), i * MatrixMLDataSet.this.calculatedInputSize, MatrixMLDataSet.this.calculatedInputSize); } // Copy the output, account for time windows. int outputStart = (this.leadWindowSize > 0) ? 1 : 0; int outputSize = calculateLeadCount(); for (int i = 0; i < outputSize; i++) { double[] dataRow = lookupDataRow((int) (index + i + outputStart)); EngineArray.arrayCopy(dataRow, this.calculatedInputSize, pair.getIdealArray(), i * MatrixMLDataSet.this.calculatedIdealSize, MatrixMLDataSet.this.calculatedIdealSize); } }