A data processing system, the data processing system comprising: a data decoding system operable to: modify a decoder input using a first modification algorithm to yield a first modified output; modify the decoder input using a second modification algorithm to yield a second modified output; apply a data decode algorithm by a data decoder circuit to the first modified output to yield a first decoded output; apply the data decode algorithm by the data decoder circuit to the second modified output to yield a second decoded output; and select one of the first decoded output and the second decoded output as a selected decoding result based at least in part on a first characteristic of the first decoded output and a second characteristic of the second decoded output, wherein the first characteristic is a first number of unsatisfied checks corresponding to the first decoded output, wherein the second characteristic is a second number of unsatisfied checks corresponding to the second decoded output, wherein the first modification algorithm is a pass through algorithm such that the first modified output is the same as the decoder input; and the second modification algorithm is a rotation algorithm such that the second modified output is a rotated version of the decoder input, wherein the rotated version is the same decoder input, only grouped differently, wherein the decoder input includes a number of non-binary symbols. a data decoding system operable to: modify a decoder input using a first modification algorithm to yield a first modified output; modify the decoder input using a second modification algorithm to yield a second modified output; apply a data decode algorithm by a data decoder circuit to the first modified output to yield a first decoded output; apply the data decode algorithm by the data decoder circuit to the second modified output to yield a second decoded output; and select one of the first decoded output and the second decoded output as a selected decoding result based at least in part on a first characteristic of the first decoded output and a second characteristic of the second decoded output, wherein the first characteristic is a first number of unsatisfied checks corresponding to the first decoded output, wherein the second characteristic is a second number of unsatisfied checks corresponding to the second decoded output, wherein the first modification algorithm is a pass through algorithm such that the first modified output is the same as the decoder input; and the second modification algorithm is a rotation algorithm such that the second modified output is a rotated version of the decoder input, wherein the rotated version is the same decoder input, only grouped differently, wherein the decoder input includes a number of non-binary symbols. modify a decoder input using a first modification algorithm to yield a first modified output; modify the decoder input using a second modification algorithm to yield a second modified output; apply a data decode algorithm by a data decoder circuit to the first modified output to yield a first decoded output; apply the data decode algorithm by the data decoder circuit to the second modified output to yield a second decoded output; and select one of the first decoded output and the second decoded output as a selected decoding result based at least in part on a first characteristic of the first decoded output and a second characteristic of the second decoded output, wherein the first characteristic is a first number of unsatisfied checks corresponding to the first decoded output, wherein the second characteristic is a second number of unsatisfied checks corresponding to the second decoded output, wherein the first modification algorithm is a pass through algorithm such that the first modified output is the same as the decoder input; and the second modification algorithm is a rotation algorithm such that the second modified output is a rotated version of the decoder input, wherein the rotated version is the same decoder input, only grouped differently, wherein the decoder input includes a number of non-binary symbols.