void calcFactors(int n, int el, int m) {
		int abm = Math.abs(m);
		if (lastFactorial < n + el) {
			for (int i = lastFactorial + 1; i <= n + el; i++)
				fact[i] = factorial(i);
			lastFactorial = n + el;
		}
		double Nnl = Math.pow(2 * psi_Znuc / n / A0, 1.5)
				* Math.sqrt(fact[n - el - 1] / 2 / n / Math.pow(fact[n + el], 3));
		double Lnl = fact[n + el] * fact[n + el];
		double Plm = Math.pow(2, -el) * fact[el] * fact[el + abm]
				* Math.sqrt((2 * el + 1) * fact[el - abm] / 2 / fact[el + abm]);

		for (int p = 0; p <= n - el - 1; p++)
			rfactor[p] = Nnl * Lnl / fact[p] / fact[n - el - p - 1] / fact[2 * el + p + 1];
		for (int p = abm; p <= el; p++)
			pfactor[p] = Math.pow(-1, el - p) * Plm / fact[p] / fact[el + abm - p] / fact[el - p] / fact[p - abm];
	}