def __init__(self, maxlen, **kwargs): # ARC has two caches: a recency cache and a frequency cache self._recency_cache_top = LinkedSet() # paper: T_1 self._recency_cache_bottom = LinkedSet() # paper: B_1 self._frequency_cache_top = LinkedSet() # paper: T_2 self._frequency_cache_bottom = LinkedSet() # paper: B_2 self._maxlen = int(maxlen) # paper: c if self._maxlen <= 0: raise ValueError('maxlen must be positive') # _p is the target number of elements for the recency cache top # which means that _maxlen - _p is the target number of elements for the frequency cache top # It is the target number since it will be a real number at some point and not a natural number. self._p = 0