subroutine gen_ab_cum_list_ueg(ilut, csf_i, occ_orbs, cum_arr, excit_arr, orb_arr)
! create the cummulative probability array for (ab) orbital pairs
! in the hubbard/UEG case with k-point symmetry
integer(n_int), intent(in) :: ilut(0:nifguga)
type(CSF_Info_t), intent(in) :: csf_i
integer, intent(in) :: occ_orbs(2)
real(dp), intent(out) :: cum_arr(nSpatOrbs)
integer, intent(out) :: orb_arr(nSpatOrbs)
type(ExcitationInformation_t), intent(out) :: excit_arr(nBasis)
! determine the GUGA restrictions:
if (is_in_pair(occ_orbs(1), occ_orbs(2))) then
call gen_ab_cum_list_3(csf_i, occ_orbs, cum_arr, excit_arr, orb_arr)
else
! determine the different types
! actually, due to ki + kj = ka + kb k-point symmetry the
! 3 3, 3 1, and 1 3 cases are actually the same!
! and no pesky full-stop mixed or full-start mixed are allowed in
! the hubbard model!
! not sure about this assumption above anymore! have to check that!
if ((.not. IsDoub(ilut, occ_orbs(1))) .and. (.not. IsDoub(ilut, occ_orbs(2)))) then
call gen_ab_cum_list_1_1(csf_i, occ_orbs, cum_arr, excit_arr, orb_arr)
else
call gen_ab_cum_list_3_3(csf_i, occ_orbs, cum_arr, excit_arr, orb_arr)
end if
end if
end subroutine gen_ab_cum_list_ueg