'Efficiently compute Taylor shift ``f(x + a)``.
Examples
>>> from sympy import Poly
>>> from sympy.abc import x
>>> Poly(x**2 - 2*x + 1, x).shift(2)
Poly(x**2 + 2*x + 1, x, domain=\'ZZ\')'

def shift(f, a):

    if hasattr(f.rep, 'shift'):
        result = f.rep.shift(a)
    else:
        raise OperationNotSupported(f, 'shift')
    return f.per(result)
