def __maiseli_step(queue, I, Ix, Iy, Iz, c, dIdt, nx, ny, nz, prg, ht, beta,
    lamb):
    """Performs a single time step of the Maiseli filter for a single working
    package.

    Parameters
    ----------
    I : ndarray
        Image to become smoothed
    Ix : ndarray
        Partial derivative in x direction
    Iy : ndarray
        Partial derivative in y direction
    Iz : ndarray
        Partial derivative in z direction
    c : ndarray
        Conductivity factor (depending on gradient, to preserve edges)
    dIdt : ndarray
        Time derivative of the image
    nx : int
        Size of the package in x direction
    ny : int
        Size of the package in y direction
    nz : int
        Size of the package in z direction
    prg : cl-Program
        OpenCL program to become executed
    ht : float
        Time step
    beta : float
        Beta factor
    lamb : float
        Lambda regularization factor
    """
    prg.grad(queue, (nx + 2, ny + 2, nz + 2), None, I, Ix, Iy, Iz, nx, ny, nz)
    prg.c(queue, (nx + 2, ny + 2, nz + 2), None, Ix, Iy, Iz, c, nx, ny, nz,
        beta)
    shape = int(nx), int(ny), int(nz)
    prg.dIdt_stage1(queue, shape, None, Ix, Iy, Iz, c, dIdt, nx, ny, nz)
    prg.dIdt_stage2(queue, shape, None, Ix, Iy, Iz, c, dIdt, nx, ny, nz)
    prg.time_step(queue, shape, None, dIdt, I, nx, ny, nz, ht)
