A method for data detection, the method comprising: receiving a series of data samples at a detector circuit; multiplying a portion of the series of data samples by a first correlator value corresponding to a first binary transition to yield a first value; multiplying the portion of the series of data samples by a second correlator value corresponding to a second binary transition to yield a second value; adding the first value to a prior state value to yield a first interim value; adding the second value to the prior state value to yield a second interim value; selecting the larger of the first interim value and the second interim value to yield a first surviving interim value; multiplying the portion of the series of data samples by a third correlator value corresponding to a third binary transition to yield a third value; multiplying the portion of the series of data samples by a fourth correlator value corresponding to a fourth binary transition to yield a fourth value; adding the third value to a second prior state value to yield a third interim value; adding the fourth value to the second prior state value to yield a fourth interim value; selecting the larger of the third interim value and the fourth interim value to yield a second surviving interim value; selecting the larger of the first surviving interim value and the second surviving interim value to yield a surviving state value, wherein the surviving state value is associated with a surviving state; and selecting the surviving state as the most recent bit in a bit sequence of a sequence output corresponding to the series of data samples. receiving a series of data samples at a detector circuit; multiplying a portion of the series of data samples by a first correlator value corresponding to a first binary transition to yield a first value; multiplying the portion of the series of data samples by a second correlator value corresponding to a second binary transition to yield a second value; adding the first value to a prior state value to yield a first interim value; adding the second value to the prior state value to yield a second interim value; selecting the larger of the first interim value and the second interim value to yield a first surviving interim value; multiplying the portion of the series of data samples by a third correlator value corresponding to a third binary transition to yield a third value; multiplying the portion of the series of data samples by a fourth correlator value corresponding to a fourth binary transition to yield a fourth value; adding the third value to a second prior state value to yield a third interim value; adding the fourth value to the second prior state value to yield a fourth interim value; selecting the larger of the third interim value and the fourth interim value to yield a second surviving interim value; selecting the larger of the first surviving interim value and the second surviving interim value to yield a surviving state value, wherein the surviving state value is associated with a surviving state; and selecting the surviving state as the most recent bit in a bit sequence of a sequence output corresponding to the series of data samples.