docs: 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..
  
  
      >>> g = State("Rb", 87, 5, 0, 1/Integer(2))
      >>> e = State("Rb", 87, 5, 1, 3/Integer(2))
      >>> print(reduced_matrix_element(g, e))
      5.97785756147
      >>> print(reduced_matrix_element(e, g))
      -5.97785756146761
      >>> print(reduced_matrix_element(g, e, convention=2))
      4.22698361868
      >>> print(reduced_matrix_element(e, g, convention=2))
      -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