public String toString() {
		StringBuilder sb = new StringBuilder();
		if (isSparse()) {
			sb.append(getTarget());
			SparseVector sv = (SparseVector) vector;
			int[] indices = sv.getIndices();
			double[] values = sv.getValues();
			for (int i = 0; i < indices.length; i++) {
				sb.append(" ").append(indices[i]).append(":");
				print(sb, values[i]);
			}
		} else {
			double[] values = getValues();
			print(sb, values[0]);
			for (int i = 1; i < values.length; i++) {
				sb.append("\t");
				print(sb, values[i]);
			}
			if (!Double.isNaN(getTarget())) {
				sb.append("\t");
				print(sb, getTarget());
			}
		}
		return sb.toString();
	}