
    _Mh#                     @    d dl mZmZmZmZmZmZ d dlmZ dgZ	ddZ
dS )    )zerosasarrayeyepoly1dhstackr_)linalgpadeNc                 J   t          |           } |*t          |           dz
  |z
  }|dk     rt          d          |dk     rt          d          ||z   }|t          |           dz
  k    rt          d          | d|dz            } t          |dz   |dz   | j                  }t          |dz   |f| j                  }t          d|dz             D ]}| d|         ddd          ||d|f<   t          |dz   |dz             D ] }| ||z
  |         ddd          ||ddf<   !t          ||f          }t          j	        ||           }|d|dz            }	t          d	||dz   d         f         }
t          |	ddd                   t          |
ddd                   fS )
a  
    Return Pade approximation to a polynomial as the ratio of two polynomials.

    Parameters
    ----------
    an : (N,) array_like
        Taylor series coefficients.
    m : int
        The order of the returned approximating polynomial `q`.
    n : int, optional
        The order of the returned approximating polynomial `p`. By default,
        the order is ``len(an)-1-m``.

    Returns
    -------
    p, q : Polynomial class
        The Pade approximation of the polynomial defined by `an` is
        ``p(x)/q(x)``.

    Examples
    --------
    >>> import numpy as np
    >>> from scipy.interpolate import pade
    >>> e_exp = [1.0, 1.0, 1.0/2.0, 1.0/6.0, 1.0/24.0, 1.0/120.0]
    >>> p, q = pade(e_exp, 2)

    >>> e_exp.reverse()
    >>> e_poly = np.poly1d(e_exp)

    Compare ``e_poly(x)`` and the Pade approximation ``p(x)/q(x)``

    >>> e_poly(1)
    2.7166666666666668

    >>> p(1)/q(1)
    2.7179487179487181

    N   r   z.Order of q <m> must be smaller than len(an)-1.z&Order of p <n> must be greater than 0.z0Order of q+p <m+n> must be smaller than len(an).)dtypeg      ?)r   len
ValueErrorr   r   r   ranger   r	   solver   r   )anmnNAkjBkjrowCpqpqs              W/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/scipy/interpolate/_pade.pyr
   r
      s   N 
ByGGaK!Oq55MNNN1uuABBB	AA3r7719}}KLLL	DQqSDB
ac1Q3bh
'
'
'C
1a
)
)
)CQ!}} * *TcT(DDbD))CHQqS!A# , ,#a%)}ddd++CE

SzA	a		B
4AaC4A
31Q344=A!DDbD'??F1TTrT7OO++    )N)numpyr   r   r   r   r   r   scipyr	   __all__r
    r   r   <module>r$      sl    9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9      (<, <, <, <, <, <,r   