Lattice sampling algorithms for communications