function TestInitiator_ilut(ilut, site_idx, is_init, run) result(initiator)
integer(n_int), intent(inout) :: ilut(0:NIfTot)
integer, intent(in) :: run, site_idx
logical, intent(in) :: is_init
integer :: nI(nel), exLvl
real(dp) :: sgn(lenof_sign)
logical :: initiator
exLvl = FindBitExcitLevel(ilut, ilutRef(:, run), t_hphf_ic=.true.)
call decode_bit_det(nI, ilut)
call extract_sign(ilut, sgn)
if (tPureInitiatorSpace) then
initiator = TestInitiator_pure_space(ilut, nI, site_idx, is_init, run)
else
initiator = TestInitiator_explicit(ilut, nI, site_idx, is_init, sgn, exLvl, run)
end if
end function TestInitiator_ilut