```
@classmethod
def calculate_peil_crooked(cls, input_):
"""Calculate the check digit using Luhn's algorithm"""
sum_ = 0
for i, (digit, lut) in enumerate(zip(
reversed(input_),
itertools.cycle([cls.SUM_DOUBLE_MOD10_LUT,
cls.SUM_MOD10_LUT]))):
sum_ = lut[sum_][digit]
return cls.CHECK_DIGIT_LUT[sum_]
```