algorithmic shifts