/** Returns a clone of this parameter group. */ @Override @SuppressWarnings("unchecked") public MatrixParameters clone() { final MatrixParameters copy = (MatrixParameters) super.clone(); if (copy.matrixValues != null) { copy.numRow = (ParameterValue) copy.parameter(0); copy.numCol = (ParameterValue) copy.parameter(1); copy.matrixValues = copy.matrixValues.clone(); for (int j = 0; j < copy.matrixValues.length; j++) { ParameterValue[] array = copy.matrixValues[j]; if (array != null) { copy.matrixValues[j] = array = array.clone(); for (int i = 0; i < array.length; i++) { if (array[i] != null) { array[i] = array[i].clone(); } } } } } return copy; }