def _solve_implicit_banded(current, banded_matrix):
<EOL>J = banded_matrix.shape[<NUM_LIT:0>]<EOL>diag = np.zeros((<NUM_LIT:3>, J))<EOL>diag[<NUM_LIT:1>, :] = np.diag(banded_matrix, k=<NUM_LIT:0>)<EOL>diag[<NUM_LIT:0>, <NUM_LIT:1>:] = np.diag(banded_matrix, k=<NUM_LIT:1>)<EOL>diag[<NUM_LIT:2>, :-<NUM_LIT:1>] = np.diag(banded_matrix, k=-<NUM_LIT:1>)<EOL>return solve_banded((<NUM_LIT:1>, <NUM_LIT:1>), diag, current)<EOL>
Uses a banded solver for matrix inversion of a tridiagonal matrix.

    Converts the complete listed tridiagonal matrix *(nxn)* into a three row
    matrix *(3xn)* and calls :py:func:`scipy.linalg.solve_banded()`.

    :param array current:           the current state of the variable for which
                                    matrix inversion should be computed
    :param array banded_matrix:     complete diffusion matrix (*dimension: nxn*)
    :returns:                       output of :py:func:`scipy.linalg.solve_banded()`
    :rtype:                         array