real(dp) function epsilon_kvec_vector(k_vec)
! and actually this function has to be defined differently for
! different type of lattices! TODO!
! actually i could get rid of this function and directly call
! the dispersion relation of the lattice..
integer, intent(in) :: k_vec(3)
#ifdef DEBUG_
character(*), parameter :: this_routine = "epsilon_kvec_vector"
#endif
ASSERT(associated(lat))
! i could save the basic lattice vectors for the lattice or even
! store the dispersion relation for each lattice type and call it
! with a given k-vector?
! change that to only access the cached result of the dispersion
! relation
! it is necessary to call this function only with k_vectors
! within the first BZ!!
epsilon_kvec_vector = dispersion_rel_cached(lat%get_sym_from_k(k_vec))
end function epsilon_kvec_vector