How does the tick_values algorithm work?

I want to understand how tick_values. But the detail is not clearly explained in its source.

>>> import matplotlib.ticker
>>> l = matplotlib.ticker.AutoLocator()
>>> l.tick_values(-10, 15.5)
array([-10.,  -5.,   0.,   5.,  10.,  15.,  20.])

Would anybody explain how it is implemented?