o
    `^hw                     @   sP   zd dl ZW n	 ey   Y nw zd dlmZ W n	 ey!   Y nw dd ZdS )    Nxc                    s   t  }t fddt|D }t| td| }|d g}t|D ]}||d |   q%t	dg}td|D ]}||| 
t|d |  q>dd |D }|S )a  Given a series

    f(x) = a[1]*x + a[2]*x**2 + ... + a[n-1]*x**(n - 1),

    use the Lagrange inversion formula to compute a series

    g(x) = b[1]*x + b[2]*x**2 + ... + b[n-1]*x**(n - 1)

    so that f(g(x)) = g(f(x)) = x mod x**n. We must have a[0] = 0, so
    necessarily b[0] = 0 too.

    The algorithm is naive and could be improved, but speed isn't an
    issue here and it's easy to read.

    c                 3   s     | ]} | t |  V  qd S )Nr   ).0ia ]/home/air/shanriGPT/back/venv/lib/python3.10/site-packages/scipy/special/_precompute/utils.py	<genexpr>   s    z%lagrange_inversion.<locals>.<genexpr>r      c                 S   s   g | ]}t |qS r   )mpmpf)r   r   r   r   r	   
<listcomp>%   s    z&lagrange_inversion.<locals>.<listcomp>)lensumranger   seriesremoveOappendexpandr   r   coeff)r   nfhhpowerkbr   r   r	   lagrange_inversion   s   
 r   )mpmathr   ImportError	sympy.abcr   r   r   r   r   r	   <module>   s    