private int trMedian5 (final int ISA, final int ISAd, final int ISAn, int v1, int v2, int v3, int v4, int v5) {

		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]);
		int SA_v4 = trGetC (ISA, ISAd, ISAn, SA[v4]);
		int SA_v5 = trGetC (ISA, ISAd, ISAn, SA[v5]);
		int temp;
		int SA_vtemp;

		if (SA_v2 > SA_v3) {
			temp = v2;
			v2 = v3;
			v3 = temp;
			SA_vtemp = SA_v2;
			SA_v2 = SA_v3;
			SA_v3 = SA_vtemp;
		}
		if (SA_v4 > SA_v5) {
			temp = v4;
			v4 = v5;
			v5 = temp;
			SA_vtemp = SA_v4;
			SA_v4 = SA_v5;
			SA_v5 = SA_vtemp;
		}
		if (SA_v2 > SA_v4) {
			temp = v2;
			v2 = v4;
			v4 = temp;
			SA_vtemp = SA_v2;
			SA_v2 = SA_v4;
			SA_v4 = SA_vtemp;
			temp = v3;
			v3 = v5;
			v5 = temp;
			SA_vtemp = SA_v3;
			SA_v3 = SA_v5;
			SA_v5 = SA_vtemp;
		}
		if (SA_v1 > SA_v3) {
			temp = v1;
			v1 = v3;
			v3 = temp;
			SA_vtemp = SA_v1;
			SA_v1 = SA_v3;
			SA_v3 = SA_vtemp;
		}
		if (SA_v1 > SA_v4) {
			temp = v1;
			v1 = v4;
			v4 = temp;
			SA_vtemp = SA_v1;
			SA_v1 = SA_v4;
			SA_v4 = SA_vtemp;
			temp = v3;
			v3 = v5;
			v5 = temp;
			SA_vtemp = SA_v3;
			SA_v3 = SA_v5;
			SA_v5 = SA_vtemp;
		}
		if (SA_v3 > SA_v4) {
			return v4;
		}
		return v3;

	}