public String toString() {

    StringBuffer text = new StringBuffer();

    if (m_t == null)
      return "Gaussian Processes: No model built yet.";

    try {

      text.append("Gaussian Processes\n\n");
      text.append("Kernel used:\n  " + m_kernel.toString() + "\n\n");

      text.append("Average Target Value : " + m_avg_target + "\n");

      text.append("Inverted Covariance Matrix:\n");
      double min = m_C.get(0,0);
      double max = m_C.get(0,0);
      for (int i = 0; i < m_NumTrain; i++)
	for (int j = 0; j < m_NumTrain; j++) {
	    if (m_C.get(i,j) < min) min = m_C.get(i,j);
	    else if (m_C.get(i,j) > max) max = m_C.get(i,j);
	}
      text.append("    Lowest Value = " + min + "\n");
      text.append("    Highest Value = " + max + "\n");
      text.append("Inverted Covariance Matrix * Target-value Vector:\n");
      min = m_t.get(0,0);
      max = m_t.get(0,0);
      for (int i = 0; i < m_NumTrain; i++) {
	    if (m_t.get(i,0) < min) min = m_t.get(i,0);
	    else if (m_t.get(i,0) > max) max = m_t.get(i,0);
	}
      text.append("    Lowest Value = " + min + "\n");
      text.append("    Highest Value = " + max + "\n \n");   
      
    } catch (Exception e) {
      return "Can't print the classifier.";
    }

    return text.toString();
  }