private IgnoreCaseRelation EnsureDefault()
        {
            // Deserialize the table for the default culture.
            if (_relationDefault is null)
            {
                BDD instance       = BDD.Deserialize(Unicode.IgnoreCaseRelation.IgnoreCaseEnUsSerializedBDD, _solver);
                BDD instanceDomain = _solver.ShiftRight(instance, 16); // represents the set of all case-sensitive characters in the default culture.
                _relationDefault = new IgnoreCaseRelation(instance, instanceDomain);
            }

            return(_relationDefault);
        }
 /// <summary>Gets a <see cref="BDD"/> that represents the specified <see cref="UnicodeCategory"/>.</summary>
 public static BDD GetCategory(UnicodeCategory category) =>
 Volatile.Read(ref s_categories[(int)category]) ??
 Interlocked.CompareExchange(ref s_categories[(int)category], BDD.Deserialize(UnicodeCategoryRanges.AllCategoriesSerializedBDD[(int)category], CharSetSolver.Instance), null) ??
 s_categories[(int)category] !;