The Generalized Distributive Law
A Recursive Approach to Low Complexity Codes