Efficient low-density parity-check decoding