Rate-compatible puncturing of low-density parity-check codes
differential evolution - a simple and efficient heuristic for global optimization over continuous spaces .