ó
    Eñi#  ã                   ó@   • S SK JrJrJrJrJrJr  S SKJr  S/r	SS jr
g)é    )ÚzerosÚasarrayÚeyeÚpoly1dÚhstackÚr_)ÚlinalgÚpadeNc                 ó   • [        U 5      n Uc"  [        U 5      S-
  U-
  nUS:  a  [        S5      eUS:  a  [        S5      eX-   nU[        U 5      S-
  :”  a  [        S5      eU SUS-    n [        US-   US-   U R                  S9n[        US-   U4U R                  S9n[        SUS-   5       H  nU SU SSS2   * XVSU24'   M     [        US-   US-   5       H  nXU-
  U SSS2   * XVSS24'   M     [        XE45      n[        R                  " Xp5      nUSUS-    n	[        S	X‚S-   S 4   n
[        U	SSS2   5      [        U
SSS2   5      4$ )
a5  
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).)Údtypeéÿÿÿÿg      ð?)r   ÚlenÚ
ValueErrorr   r   r   Úranger   r	   Úsolver   r   )ÚanÚmÚnÚNÚAkjÚBkjÚrowÚCÚpqÚpÚqs              ÚT/home/mande/repo/quber/.venv/lib/python3.13/site-packages/scipy/interpolate/_pade.pyr
   r
      s{  € ôN 
�‹€BØ�yÜ�‹G�a‰K˜!‰OˆØˆq‹5ÜÐMÓNÐNØˆ1ƒuÜÐAÓBÐBØ	‰€AØŒ3ˆr‹7�1‰9ƒ}ÜÐKÓLÐLØ	ˆDˆQˆq‰Sˆ€BÜ
ˆa�‰c�1�Q‘3˜bŸh™hÑ
'€CÜ
��1‘�a� §¡Ñ
)€CÜ�Q˜˜!™Ž}ˆØ˜T˜c˜(¡D b DÑ)Ð)ˆ���ˆH‹ñ ä�Q�q‘S˜!˜A™#ŽˆØ˜a™% �}¡d¨ dÑ+Ð+ˆ’ˆE‹
ñ ä�ˆzÓ€AÜ	�Š�aÓ	€BØ
ˆ4ˆAˆa‰Cˆ€AÜ
ˆ3��Q‘3�4�ˆ=Ñ€AÜ�!‘D�b�D‘'‹?œF 1¡T r T¡7›OÐ+Ð+ó    )N)Únumpyr   r   r   r   r   r   Úscipyr	   Ú__all__r
   © r   r   Ú<module>r$      s   ðß 9× 9Ý àˆ(€õ<,r   