private boolean isRepulsive(int idOfI, int idOfJ) {

		/* special treatment of same nucleotides */
		if ((idOfI == ID_A && idOfJ == ID_A) || (idOfI == ID_C && idOfJ == ID_C) || (idOfI == ID_G && idOfJ == ID_G) || (idOfI == ID_T && idOfJ == ID_T) || (idOfI == ID_U && idOfJ == ID_U) || (idOfI == ID_SP && idOfJ == ID_SP))
			return true;

		/* same element other than nucleotides */
		if (idOfI == idOfJ)
			return false;

		/* A-C */
		if ((idOfI == ID_A && idOfJ == ID_C) || (idOfI == ID_C && idOfJ == ID_A))
			return true;

		/* A-G */
		if ((idOfI == ID_A && idOfJ == ID_G) || (idOfI == ID_G && idOfJ == ID_A))
			return true;

		/* C-T */
		if ((idOfI == ID_C && idOfJ == ID_T) || (idOfI == ID_T && idOfJ == ID_C))
			return true;

		/* C-U */
		if ((idOfI == ID_C && idOfJ == ID_U) || (idOfI == ID_U && idOfJ == ID_C))
			return true;

		/* G-T */
		if ((idOfI == ID_G && idOfJ == ID_T) || (idOfI == ID_T && idOfJ == ID_G))
			return true;

		/* G-U */
		if ((idOfI == ID_G && idOfJ == ID_U) || (idOfI == ID_U && idOfJ == ID_G))
			return true;

		/* others */
		return affinity.isRepulsive(getElement(idOfI), getElement(idOfJ));

	}