<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def reduced_matrix_element(fine_statei, fine_statej, convention=1):
 r"""Return the reduced matrix element of the position operator in Bohr\ radii. We have two available conventions for this 1.- [Racah]_ and [Edmonds74]_ .. math:: \langle \gamma_i, J_i, M_i| \hat{T}^k_q| \gamma_j, J_j, M_j\rangle \ = (-1)^{J_i-M_i} \ \left(\begin{matrix}J_i & k & J_j\\-M_i & q & M_j\end{matrix}\right) \ \langle \gamma_i, J_i|| \hat{T}^k|| \gamma_j, J_j \ \rangle_\mathrm{Racah} 2.- [Brink_Satchler]_ .. math:: \langle \gamma_i, J_i, M_i| \hat{T}^k_q| \gamma_j, J_j, M_j\rangle \ = (-1)^{J_i-M_i} \sqrt{2J_i+1} \ \left(\begin{matrix}J_i & k & J_j\\-M_i & q & M_j\end{matrix}\right) \ \langle \gamma_i, J_i|| \hat{T}^k|| \gamma_j, J_j\rangle \ _\mathrm{Brink} These two definitions of the reduced matrix element are related by .. math:: \langle \gamma_i, J_i|| \hat{T}^k|| \gamma_j, J_j \ \rangle_\mathrm{Racah} = \sqrt{2J_i+1} \ \langle \gamma_i, J_i|| \hat{T}^k|| \gamma_j, J_j\rangle \ _\mathrm{Brink} With the Racah element being symetric under argument exchange apart from a\ sign: .. math:: \langle \gamma_j, J_j|| (\hat{T}^k)^\dagger|| \gamma_i, J_i\rangle \ _\mathrm{Racah} = (-1)^{J_j-J_i}\ \langle \gamma_i, J_i|| \hat{T}^k|| \gamma_j, J_j\rangle \ _\mathrm{Racah} And the Brink element being asymetric under argument exchange: .. math:: \langle \gamma_j, J_j|| \hat{T}^k|| \gamma_i, J_i\rangle \ _\mathrm{Brink} = (-1)^{J_j-J_i}\ \frac{\sqrt{2J_i +1}}{\sqrt{2J_j +1}}\ \langle \gamma_i, J_i|| \hat{T}^k|| \gamma_j, J_j\rangle \ _\mathrm{Brink} References: .. [Brink_Satchler] Brink, D. M. and G. R. Satchler: 1994. "Angular\ Momentum". Oxford: Oxford University Press, 3rd edn., 182 pages. .. [Racah] Racah, G.: 1942. "Theory of complex spectra II". Phys. Rev., \ 62 438-462. .. [Edmonds74] A. R. Edmonds. Angular momentum in quantum mechanics. Investigations in physics, 4.; Investigations in physics, no. 4. Princeton, N.J., Princeton University Press, 1957.. 5.97785756147 -5.97785756146761 4.22698361868 -2.11349180934051 """

    if fine_statei == fine_statej:
        return 0.0

    t = Transition(fine_statei, fine_statej)
    einsteinAij = t.einsteinA
    omega0 = t.omega
    Ji = fine_statei.j; Jj = fine_statej.j

    factor = sqrt(3*Pi*hbar*c**3*epsilon0)/e

    if omega0 < 0:
        rij = factor*sqrt((2*Jj+1)*einsteinAij/omega0**3)/a0
    else:
        rij = reduced_matrix_element(fine_statej, fine_statei,
                                     convention=convention)
        rij *= (-1)**(Jj-Ji)

    # We return the Brink matrix element.
    if convention == 2:
        if omega0 < 0:
            rij = rij / sqrt(2*Ji+1)
        else:
            rij = rij / sqrt(2*Ji+1)

    return rij