1. A machine-readable non-transitory storage medium having instructions stored thereon that, when executed, perform a method, comprising: providing a confidence vector at each of a plurality of variable nodes, each confidence vector associated with a portion of the codeword and comprising two or more vector components; at each variable node, selecting one of the vector components and passing the selected vector component to one or more of a plurality of check nodes; at each of the plurality of check nodes, calculating a return value for each variable node that passed a selected vector component to the check node, each respective return value calculated based on vector components received from variable nodes other than a variable node designated to receive the respective return value; receiving, at each variable node, a plurality of return values from the one or more check nodes; and updating, at each variable node, the confidence vector based on the plurality of return values to indicate one or more values assigned to the portion of the codeword.