  Non-binary (NB) low-density parity-check (LDPC) codes are graph-based codes
that are increasingly being considered as a powerful error correction tool for
modern dense storage devices. The increasing levels of asymmetry incorporated
by the channels underlying modern dense storage systems exacerbates the error
floor problem. In a recent research, the weight consistency matrix (WCM)
framework was introduced as an effective NB-LDPC code optimization methodology
that is suitable for modern Flash memory and magnetic recording (MR) systems.
In this paper, we provide the in-depth theoretical analysis needed to
understand and properly apply the WCM framework. We focus on general absorbing
sets of type two (GASTs). In particular, we introduce a novel tree
representation of a GAST called the unlabeled GAST tree, using which we prove
that the WCM framework is optimal. Then, we enumerate the WCMs. We demonstrate
the significance of the savings achieved by the WCM framework in the number of
matrices processed to remove a GAST. Moreover, we provide a linear-algebraic
analysis of the null spaces of WCMs associated with a GAST. We derive the
minimum number of edge weight changes needed to remove a GAST via its WCMs,
along with how to choose these changes. Additionally, we propose a new set of
problematic objects, namely the oscillating sets of type two (OSTs), which
contribute to the error floor of NB-LDPC codes with even column weights on
asymmetric channels, and we show how to customize the WCM framework to remove
OSTs. We also extend the domain of the WCM framework applications by
demonstrating its benefits in optimizing column weight 5 codes, codes used over
Flash channels with soft information, and spatially-coupled codes. The
performance gains achieved via the WCM framework range between 1 and nearly 2.5
orders of magnitude in the error floor region over interesting channels.
