U
    !?h                     @   s   d d Z dS )c                    s    |   }d|   fdd}|S )a  
    Compute the Jacobi preconditioner function for the matrix A.

    Parameters
    ----------
    A: np.array
        Input matrix to compute the Jacobi preconditioner for.

    Returns
    -------
    precondition_matvec: function
        Function which applies the Jacobi preconditioner to a vector

    Example
    -------
    >>> from pymatting import *
    >>> import numpy as np
    >>> A = np.array([[2, 3], [3, 5]])
    >>> preconditioner = jacobi(A)
    >>> preconditioner(np.array([1, 2]))
    array([0.5, 0.4])
    g      ?c                    s   |   S )N )xZinverse_diagonalr   Q/var/www/html/venv/lib/python3.8/site-packages/pymatting/preconditioner/jacobi.pyprecondition_matvec   s    z#jacobi.<locals>.precondition_matvec)diagonal)Ar   r   r   r   r   jacobi   s    r   N)r   r   r   r   r   <module>       