1. A method for decoding a data symbol sequence previously encoded using one or more unique code word polynomials, wherein the encoding process uses at least one unique code word polynomial more than once, the method comprising the steps of: computing a set of unique branch metrics based on the data symbol sequence using the unique code word polynomials, wherein the number of branch metrics computed is 2 d-1 , where d is the number of unique code word polynomials; storing the computed set of unique branch metrics; calculating path metrics and decision bits based on the stored set of unique branch metrics and path metrics of previous feeding state; and generating a decoded data symbol sequence based on the computed decision bits.