'returns ``fun(rotation(x), *args)``, ie. `fun` applied to a rotated argument'

def rot(self, x, fun, rot=1, args=()):

    if (len(np.shape(array(x))) > 1):
        res = []
        for x in x:
            res.append(self.rot(x, fun, rot, args))
        return res
    if rot:
        return fun(rotate(x, *args))
    else:
        return fun(x)
