'Compute 1D antiderivative along a selected dimension
May result to non-contiguous c array.'

def _antiderivative_inplace(self, nu, axis):

    if (nu <= 0):
        return self._derivative_inplace((- nu), axis)
    ndim = len(self.x)
    axis = (axis % ndim)
    perm = list(range(ndim))
    (perm[0], perm[axis]) = (perm[axis], perm[0])
    perm = (perm + list(range(ndim, self.c.ndim)))
    c = self.c.transpose(perm)
    c2 = np.zeros((((c.shape[0] + nu),) + c.shape[1:]), dtype=c.dtype)
    c2[:(- nu)] = c
    factor = spec.poch(np.arange(c.shape[0], 0, (-1)), nu)
    c2[:(- nu)] /= factor[((slice(None),) + ((None,) * (c.ndim - 1)))]
    perm2 = list(range(c2.ndim))
    (perm2[1], perm2[(ndim + axis)]) = (perm2[(ndim + axis)], perm2[1])
    c2 = c2.transpose(perm2)
    c2 = c2.copy()
    _ppoly.fix_continuity(c2.reshape(c2.shape[0], c2.shape[1], (-1)), self.x[axis], (nu - 1))
    c2 = c2.transpose(perm2)
    c2 = c2.transpose(perm)
    self.c = c2
