'Evaluate the interpolant
Parameters
x : array_like
Points to evaluate the interpolant at.
Returns
y : array_like
Interpolated values. Shape is determined by replacing
the interpolation axis in the original array with the shape of x.'

def __call__(self, x):

    (x, x_shape) = self._prepare_x(x)
    y = self._evaluate(x)
    return self._finish_y(y, x_shape)
