An algorithm for computing the capacity of arbitrary discrete memoryless channels | Synapse