private int trMedian3 (final int ISA, final int ISAd, final int ISAn, int v1, int v2, int v3) {

		final int[] SA = this.SA;

		int SA_v1 = trGetC (ISA, ISAd, ISAn, SA[v1]);
		int SA_v2 = trGetC (ISA, ISAd, ISAn, SA[v2]);
		int SA_v3 = trGetC (ISA, ISAd, ISAn, SA[v3]);

		if (SA_v1 > SA_v2) {
			final int temp = v1;
			v1 = v2;
			v2 = temp;
			final int SA_vtemp = SA_v1;
			SA_v1 = SA_v2;
			SA_v2 = SA_vtemp;
		}
		if (SA_v2 > SA_v3) {
			if (SA_v1 > SA_v3) {
				return v1;
			}
			return v3;
		}

		return v2;

	}