A method, apparatus, and computer implemented instructions for tracking relationships between programs and data in a data processing system. A pole layer has a structure in which a main pole layer disposed on a leading side and an auxiliary pole layer disposed on a trailing side are laminated. Next, we fill the inverted keyhole trench with a material that insulates andor creates stress on the sidewalls of the inverted keyhole trench. The method further comprises decoding the signal by processing runs of recursions using runs of forward recursions, whereby a later state metric in the sequence is updated based on a preceding state metric, and runs of recursions using runs of reverse recursions, whereby a preceding state metric in the sequence is updated based on a later state metric.