public void setListMatrix(float rList) {
		if (rList <= 0)
			throw new IllegalArgumentException("rList<=0");
		this.rList = rList;
		double[] sig = new double[Element.NMAX];
		sig[ID_NT] = nt.getSigma();
		sig[ID_PL] = pl.getSigma();
		sig[ID_WS] = ws.getSigma();
		sig[ID_CK] = ck.getSigma();
		sig[ID_MO] = mo.getSigma();
		sig[ID_SP] = sp.getSigma();
		for (int i = ID_ALA; i <= ID_VAL; i++)
			sig[i] = aminoAcidElement[i - ID_ALA].getSigma();
		for (int i = ID_A; i <= ID_U; i++)
			sig[i] = nucleotideElement[i - ID_A].getSigma();
		int n = sig.length;
		for (int i = 0; i < n - 1; i++) {
			for (int j = i + 1; j < n; j++) {
				// Christie Williams@colostate.edu pointed out that the listSquareMatrix elements for A-T and C-G pairs
				// should be doubled as those of cutOffSquareMatrix
				listSquareMatrix[j][i] = listSquareMatrix[i][j] = sig[j] * sig[i] * rList * rList * (isComplementary(i, j) ? 4 : 1);
			}
		}
		for (int i = 0; i < n; i++) {
			listSquareMatrix[i][i] = sig[i] * sig[i] * rList * rList;
		}
	}