 BEGIN_PROVIDER [ double precision, psi_energy_h_core, (N_states) ]
  implicit none
  integer :: i
  integer :: j,k
  double precision :: tmp(mo_num,mo_num),mono_ints(mo_num,mo_num)
  BEGIN_DOC
! psi_energy_h_core = $\langle \Psi | h_{core} |\Psi \rangle$
!
! computed using the :c:data:`one_e_dm_mo_alpha` +
! :c:data:`one_e_dm_mo_beta` and :c:data:`mo_one_e_integrals`
  END_DOC
  psi_energy_h_core = 0.d0
  do i = 1, N_states
   do j = 1, mo_num
    do k = 1, mo_num
     psi_energy_h_core(i) += mo_one_e_integrals(k,j) * (one_e_dm_mo_alpha(k,j,i) + one_e_dm_mo_beta(k,j,i))
    enddo
   enddo
  enddo
 double precision :: accu
 do i = 1, N_states
  accu = 0.d0
  do j = 1, mo_num
   accu += one_e_dm_mo_alpha(j,j,i) + one_e_dm_mo_beta(j,j,i)
  enddo
  accu = (elec_alpha_num + elec_beta_num ) / accu
  psi_energy_h_core(i) = psi_energy_h_core(i) * accu
 enddo
END_PROVIDER

 BEGIN_PROVIDER [ double precision, v_ne_psi_energy, (N_states) ]
  implicit none
  integer :: i
  integer :: j,k
  double precision :: tmp(mo_num,mo_num),mono_ints(mo_num,mo_num)
  BEGIN_DOC
! v_ne_psi_energy = $\langle \Psi | v_ne |\Psi \rangle$
!
! computed using the :c:data:`one_e_dm_mo_alpha` +
! :c:data:`one_e_dm_mo_beta` and :c:data:`mo_one_e_integrals`
  END_DOC
  v_ne_psi_energy = 0.d0
  do i = 1, N_states
   do j = 1, mo_num
    do k = 1, mo_num
     v_ne_psi_energy(i) += mo_integrals_n_e(k,j) * (one_e_dm_mo_alpha(k,j,i) + one_e_dm_mo_beta(k,j,i))
    enddo
   enddo
  enddo
 double precision :: accu
 do i = 1, N_states
  accu = 0.d0
  do j = 1, mo_num
   accu += one_e_dm_mo_alpha(j,j,i) + one_e_dm_mo_beta(j,j,i)
  enddo
  accu = (elec_alpha_num + elec_beta_num ) / accu
  v_ne_psi_energy(i) = v_ne_psi_energy(i) * accu
 enddo
END_PROVIDER
