Blahut-Arimoto algorithm