private void printVisual(T[] S) {
		final int v = 6;
		final int w = v + 1;
		for (T i : S) {
			DEBUG_F("%6d",i);
			DEBUG_C(",");
		}
		DEBUG_C("\n");
		DEBUG_C(new String(new char[v-1]).replace("\0", " "));
		for (int i=0; i<S.length*w; i++) {
			double pos = Double.valueOf(i)/w;
			if (pos == Double.valueOf(i1) || pos == Double.valueOf(i2) || pos == Double.valueOf(i3) ) {
				DEBUG_C("^");
			} else {
				DEBUG_C(" ");
			}
		}
		DEBUG_C("\n");
		for (int i=0; i<S.length; i++) {
			
			if (i == i1) {
				DEBUG_F("%"+w+"s", "i1");
			} else if (i == i2) {
				DEBUG_F("%"+w+"s", "i2");
			} else if (i == i3) {
				DEBUG_F("%"+w+"s", "i3");
			} else {
				DEBUG_F("%"+w+"s", "");
			}
		}
		DEBUG_C("\n");
	}