/**
  * Calculate the error for this neural network.
  * The error is calculated
  * using root-mean-square(RMS).
  *
  * @param
  *        	MLDataSet data
  *        	The training set.
  * @return double The error percentage.
  */
 public function calculateError(MLDataSet $data)
 {
     $errorCalculation = new ErrorCalculation();
     $actual = array();
     $pair = BasicMLDataPair::createPair($data->getInputSize(), $data->getIdealSize());
     for ($i = 0; $i < $data->getRecordCount(); ++$i) {
         $data->getRecord($i, $pair);
         $this->compute($pair->getInputArray(), $actual);
         $errorCalculation->updateError($actual, $pair->getIdealArray(), $pair->getSignificance());
     }
     return $errorCalculation->calculate();
 }