A method for decoding low-density parity-check low-density parity-check, LDPC, codes, comprising: receiving a codeword over a wireless channel; receiving, at a processing node of a decoder used to decode the codeword, a first incoming log likelihood ratio, LLR, and a second incoming LLR associated with the codeword; approximating a processing node function and computing an output of the processing node function based, at least in part, on a magnitude of the first incoming LLR and a magnitude of the second incoming LLR, wherein approximating the processing node function comprises: determining a minimum, M, of the magnitude of the first incoming LLR and the magnitude of the second incoming LLR; computing a correction term according to: f(|A-B| + h), where A is the first incoming LLR, B is the second incoming LLR, f is a first real function of one argument, and h is a second real function of one argument, wherein the codeword comprises a LDPC encoded codeword, and wherein the first real function of one argument comprises: f(x) = ln(1 + e -x), and the second real function of one argument comprises: h(x) = ln(coth(x)) or -ln(1-e -2x) or some value in between, where x is any non-negative real value; and determining the approximated processing node function by subtracting the correction term from M; and decoding the codeword based, at least in part, on the output of the processing node function. receiving a codeword over a wireless channel; receiving, at a processing node of a decoder used to decode the codeword, a first incoming log likelihood ratio, LLR, and a second incoming LLR associated with the codeword; approximating a processing node function and computing an output of the processing node function based, at least in part, on a magnitude of the first incoming LLR and a magnitude of the second incoming LLR, wherein approximating the processing node function comprises: determining a minimum, M, of the magnitude of the first incoming LLR and the magnitude of the second incoming LLR; computing a correction term according to: f(|A-B| + h), where A is the first incoming LLR, B is the second incoming LLR, f is a first real function of one argument, and h is a second real function of one argument, wherein the codeword comprises a LDPC encoded codeword, and wherein the first real function of one argument comprises: f(x) = ln(1 + e -x), and the second real function of one argument comprises: h(x) = ln(coth(x)) or -ln(1-e -2x) or some value in between, where x is any non-negative real value; and determining the approximated processing node function by subtracting the correction term from M; and determining a minimum, M, of the magnitude of the first incoming LLR and the magnitude of the second incoming LLR; computing a correction term according to: f(|A-B| + h), where A is the first incoming LLR, B is the second incoming LLR, f is a first real function of one argument, and h is a second real function of one argument, wherein the codeword comprises a LDPC encoded codeword, and wherein the first real function of one argument comprises: f(x) = ln(1 + e -x), and the second real function of one argument comprises: h(x) = ln(coth(x)) or -ln(1-e -2x) or some value in between, where x is any non-negative real value; and determining the approximated processing node function by subtracting the correction term from M; and decoding the codeword based, at least in part, on the output of the processing node function.