add gen_homo_poisson
reimplement based on fast gen_homo_poisson