§
    fŠtjà   ã                   óÊ   — d Z ddlZddlmc mZ ddlmZmZm	Z	m
Z
mZ 	 ddlmZ n# e$ r	 ddlmZ Y nw xY wd„ Zd„ Zdd„Zdd	„Zd
„ Zd„ Zd„ Zd„ Zddœd„Zddœd„Zddœd„ZdS )a0  Partial replacements for numpy polynomial routines, with Array API compatibility.

This module contains both "old-style", np.poly1d, routines from the main numpy
namespace, and "new-style", np.polynomial.polynomial, routines.

To distinguish the two sets, the "new-style" routine names start with `npp_`
é    N)Ú
xp_promoteÚxp_default_dtypeÚxp_sizeÚ	xp_deviceÚis_numpy)ÚRankWarningc                 ó  — |                      | ¦  «        } |                     | j        d¦  «        r?t          | ¦  «        |                     | ¦  «        z   |                     | ¦  «        dz  z   }n| }|                     |¦  «        }| |         S )Núcomplex floatingé   )ÚasarrayÚisdtypeÚdtypeÚabsÚrealÚimagÚargsort)ÚarrÚxpÚsorterÚidxss       úU/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/scipy/signal/_polyutils.pyÚ_sort_cmplxr      s{   € ð �*Š*�S‰/Œ/€CØ	‡z‚z�#”)Ð/Ñ0Ô0ð Ý�S‘”˜BŸGšG C™LœLÑ(¨2¯7ª7°3©<¬<¸©?Ñ:ˆˆàˆà�:Š:�fÑÔ€DØˆtŒ9Ðó    c                ó<  — | j         d         dk     r|                     g | j        ¬¦  «        S t          |dd¦  «        }|r || ¦  «        S | j         d         }|                     |dz
  |dz
  d| j        ¬¦  «        }|                     | dd…         ¦  «         | d         z  |dd…df<   t          |j        d	¦  «        r|j                             |¦  «        S ddl	}|                     |j                             |                     |¦  «        ¦  «        ¦  «        S )
z(numpy.roots, best-effor replacement
    r   é   ©r   ÚrootsNé   éÿÿÿÿ)Úkr   Úeigvals)
Úshaper   r   ÚgetattrÚeyeÚflipÚhasattrÚlinalgr!   Únumpy)Úcoefr   Ú	root_funcÚnÚaÚnps         r   Ú	polyrootsr.   "   s  € ð „z�!„}�qÒÐØ�zŠz˜" D¤JˆzÑ/Ô/Ð/å˜˜G TÑ*Ô*€IØð ð ˆy˜‰ŒÐð 	Œ
�1Œ€AØ
�Šˆq�1‰u�a˜!‘e˜r¨¬ˆÑ4Ô4€AØ—’˜˜Q˜R˜RœÑ!Ô!Ð! D¨¤GÑ+€A€a€a€aˆ€e�Hõ ˆrŒy˜)Ñ$Ô$ð <ØŒy× Ò  Ñ#Ô#Ð#àÐÐÐØ�zŠz˜"œ)×+Ò+¨B¯JªJ°q©M¬MÑ:Ô:Ñ;Ô;Ð;r   Úfbc                 óÆ   — d}|                      ¦   «         }d|v r| D ]}|dk    r n|dz   }Œ| j        d         }d|v r| d d d…         D ]}|dk    r n|dz
  }Œ| ||…         S )Nr   ÚFç        r   ÚBr   )Úupperr"   )ÚfiltÚtrimÚfirstÚiÚlasts        r   Ú_trim_zerosr:   <   sš   € Ø€EØ�:Š:‰<Œ<€DØ
ˆd€{€{Øð 	"ð 	"ˆAØ�BŠwˆwØ�à ™	��ØŒ:�aŒ=€DØ
ˆd€{€{Ø�d�d˜�d”ð 	 ð 	 ˆAØ�BŠwˆwØ�à˜a‘x��Ø��d�
ÔÐr   c                 ó   — t          | |d|¬¦  «        \  } }|€F|                     | j        ¦  «        j        t	          | j        d         | j        d         ¦  «        z  }t          |¦  «        rddlm}  || ||¬¦  «        S t          |j
        dd ¦  «        x}r || ||¬	¦  «        S |j
                             | d
¬¦  «        \  }}}||k    }	t          j        |	|fd„ d¬¦  «        }|                     |j        d         ¦  «        |z  }
|j        |
z  |j        z  |z  }|                     |	¦  «        }|                     g ¦  «        }||||fS )NT©Úforce_floatingr   r   éþÿÿÿr   )Úlstsq)Úcondr?   ©ÚrcondF)Úfull_matricesc                 ó   — d| z  S )Nç      ð?© )Úxs    r   ú<lambda>z_lstsq.<locals>.<lambda>d   s
   € ¸2À¹6€ r   r2   )Ú
fill_value)r   Úfinfor   ÚepsÚmaxr"   r   Úscipy.linalgr?   r#   r'   ÚsvdÚxpxÚapply_wherer$   ÚTÚcount_nonzeror   )r,   Úbr   rB   Ús_lstsqÚ
lstsq_funcÚuÚsÚvtÚsing_val_maskÚsigmarG   ÚrankÚ	residualss                 r   Ú_lstsqr]   S   sg  € Ý�a˜¨4°BÐ7Ñ7Ô7�D€A€qà€}Ø—’˜œÑ!Ô!Ô%­¨A¬G°B¬K¸¼À¼Ñ(EÔ(EÑEˆå��|„|ð %Ø1Ð1Ð1Ð1Ð1Ð1Øˆw�q˜! %Ð(Ñ(Ô(Ð(Ý˜rœy¨'°4Ñ8Ô8Ð	8ˆð %àˆz˜!˜Q eÐ,Ñ,Ô,Ð,ð ”9—=’= °%�=Ñ8Ô8‰ˆˆ1ˆbà˜Eš	ˆÝŒO˜M¨A¨4Ð1AÐ1AÈbÐQÑQÔQˆà—’�q”w˜q”zÑ"Ô" QÑ&ˆØŒD�5‰L˜1œ3Ñ Ñ"ˆà×Ò Ñ.Ô.ˆð —J’J˜r‘N”Nˆ	Ø�)˜T 1Ð$Ð$r   c                óæ   — t          j        | d|¬¦  «        } | j        dk    rt          d¦  «        ‚t	          | d¬¦  «        } | j        d         dk    r|                     dg| j        ¬¦  «        } | S )zM Constructor of np.poly1d object from an array of coefficients (r=False)
    r   ©Úndimr   zPolynomial must be 1d only.Úf)r6   r   r   )rO   Ú
atleast_ndr`   Ú
ValueErrorr:   r"   r   r   )Úc_or_rr   s     r   Ú_poly1dre   t   su   € õ Œ^˜F¨¨rÐ2Ñ2Ô2€FØ„{�Q‚€ÝÐ6Ñ7Ô7Ð7Ý˜ cÐ*Ñ*Ô*€FØ„|�A„˜!ÒÐØ—’˜Q˜C v¤|�Ñ4Ô4ˆØ€Mr   c                óÞ   — |                      | ¦  «        } |                      |¦  «        }|                     |¦  «        }t          | j        d         ¦  «        D ]}||z  | |df         z   }Œ|S )z( Old-style polynomial, `np.polyval`
    r   .)r   Ú
zeros_likeÚranger"   )ÚprG   r   ÚyÚjs        r   Úpolyvalrl   �   so   € ð 	�
Š
�1‰Œ€AØ
�
Š
�1‰Œ€AØ
�Š�aÑÔ€Aõ �1”7˜1”:ÑÔð ð ˆØ�‰E�A�a˜�f”IÑˆˆØ€Hr   c          
      ó†  — |                      | ¦  «        } t          j        | d|¬¦  «        } | j        d         dk    r/|                      d|                     | ¦  «        j        ¬¦  «        S t          |dd ¦  «        }|€ddlm} | j        }| 	                    d|¬¦  «        }| 
                    | d         ¦  «        }| D ]&} |||                     || f¦  «        d	¬
¦  «        }Œ'|                     |j        d¦  «        r¾|                      | |j        ¬¦  «        }|                     |                     |                     |¦  «        ¦  «        |                     |                     |                     |¦  «        ¦  «        ¦  «        k    ¦  «        r*|                      |                     |¦  «        d¬¦  «        }|S )Nr   r_   r   rE   r   Úconvolve©rn   ©r   Úfull)Úmoder
   T)Úcopy)r   rO   rb   r"   r   r   r#   Úscipy.signalrn   ÚonesÚ	ones_likeÚstackr   Ú
complex128ÚallÚsortr   Úconj)Úseq_of_zerosr   Úconvolve_funcÚdtr,   ÚoneÚzeror   s           r   Úpolyr�   �   sž  € à—:’:˜lÑ+Ô+€LÝ”> ,°Q¸2Ð>Ñ>Ô>€LàÔ˜!Ô Ò!Ð!Ø�zŠz˜# R§W¢W¨\Ñ%:Ô%:Ô%@ˆzÑAÔAÐAõ ˜B 
¨DÑ1Ô1€MØÐØ:Ð:Ð:Ð:Ð:Ð:à	Ô	€BØ
�Š�˜BˆÑÔ€AØ
�,Š,�| A”Ñ
'Ô
'€CØð Bð BˆØˆM˜!˜RŸXšX s¨T¨E lÑ3Ô3¸&ÐAÑAÔAˆˆà	‡z‚z�!”'Ð-Ñ.Ô.ð 2à—
’
˜<¨r¬}�
Ñ=Ô=ˆØ�6Š6�"—'’'˜"Ÿ'š' %™.œ.Ñ)Ô)¨R¯WªW°R·W²W¸R¿WºWÀU¹^¼^Ñ5LÔ5LÑ-MÔ-MÒMÑNÔNð 	2Ø—
’
˜2Ÿ7š7 1™:œ:¨D�
Ñ1Ô1ˆAà€Hr   c                ó”   — t          | |¬¦  «        t          ||¬¦  «        }} t          |dd ¦  «        }|€ddlm}  || |¦  «        }|S )N)r   rn   r   ro   )re   r#   rt   rn   )Úa1Úa2r   r}   Úvals        r   Úpolymulr†   ­   sf   € Ý�R˜BÐÑÔ¥¨°Ð!3Ñ!3Ô!3ˆ€Bõ ˜B 
¨DÑ1Ô1€MØÐØ:Ð:Ð:Ð:Ð:Ð:à
ˆ-˜˜BÑ
Ô
€CØ€Jr   rA   c          	      óð  — t          |¦  «        dz   }|                     | ¦  «        } |                     |¦  «        }t          | |d|¬¦  «        \  } }|dk     rt          d¦  «        ‚| j        dk    rt          d¦  «        ‚t          | ¦  «        dk    rt          d¦  «        ‚|j        dk     s|j        dk    rt          d	¦  «        ‚| j        d         |j        d         k    rt          d
¦  «        ‚|€-| j        d         |                     | j	        ¦  «        j
        z  }|                     |                     || j	        t          | ¦  «        ¬¦  «        ¦  «        }| d d …d f         |d d d …f         z  }|                     |                     ||z  d¬¦  «        ¦  «        }||z  }t!          ||||¬¦  «        \  }	}
}}
|	j        |z  j        }	||k    rd}t%          j        |t(          d¬¦  «         |	S )Nr   Tr<   r   zexpected deg >= 0zexpected 1D vector for xzexpected non-empty vector for xr   zexpected 1D or 2D array for yz$expected x and y to have same length)r   Údevice©Úaxis)rB   r   z!Polyfit may be poorly conditioned)Ú
stacklevel)Úintr   r   rc   r`   Ú	TypeErrorr   r"   rJ   r   rK   r%   Úaranger   ÚsqrtÚsumr]   rQ   ÚwarningsÚwarnr   )rG   rj   Údegr   rB   ÚorderÚpowersÚlhsÚscaleÚcÚ_r[   Úmsgs                r   Úpolyfitr›   º   sã  € å�‰HŒH�q‰L€EØ
�
Š
�1‰Œ€AØ
�
Š
�1‰Œ€AÝ�a˜¨4°BÐ7Ñ7Ô7�D€A€qð ˆQ‚w€wÝÐ,Ñ-Ô-Ð-Ø„v�‚{€{ÝÐ2Ñ3Ô3Ð3Ýˆq�z„z�Q‚€ÝÐ9Ñ:Ô:Ð:Ø„v�‚z€z�Q”V˜a’Z�ZÝÐ7Ñ8Ô8Ð8Ø„wˆq„z�Q”W˜Q”ZÒÐÝÐ>Ñ?Ô?Ð?ð €}Ø”˜”
˜RŸXšX a¤gÑ.Ô.Ô2Ñ2ˆð �WŠW�R—Y’Y˜u¨A¬G½IÀa¹L¼L�YÑIÔIÑJÔJ€FØ
ˆAˆAˆAˆtˆGŒ*˜˜t Q Q Q˜wœÑ
'€Cð �GŠG�B—F’F˜3 ™9¨1�FÑ-Ô-Ñ.Ô.€EØˆ5�L€Cå˜3 ¨°2Ð6Ñ6Ô6�M€A€qˆ$�Ø	
Œˆu‰Œ€Að ˆu‚}€}Ø1ˆÝŒ�c�;°1Ð5Ñ5Ô5Ð5à€Hr   T)Útensorc                ó   — |                      |j        d¦  «        r#|                     |t          |¦  «        ¦  «        }t	          j        |d|¬¦  «        }t          | t          t          z  ¦  «        r| 	                    | ¦  «        } |r&| 
                    ||j        d| j        z  z   ¦  «        }t          |d         | d|¬¦  «        \  }}t          d|j        d	         dz   ¦  «        D ]}|| d
f         || z  z   }Œ|S )NÚintegralr   r_   rp   )r   .T)Ú	broadcastr   r   r   .)r   r   Úastyper   rO   rb   Ú
isinstanceÚtupleÚlistr   Úreshaper"   r`   r   rh   )rG   r˜   r   rœ   Úc0r™   r8   s          r   Únpp_polyvalr¦   è   sù   € Ø	‡z‚z�!”'˜:Ñ&Ô&ð /Ø�IŠI�aÕ)¨"Ñ-Ô-Ñ.Ô.ˆåŒ�q˜q RÐ(Ñ(Ô(€AÝ�!•U�T‘\Ñ"Ô"ð Ø�JŠJ�q‰MŒMˆØð 3Ø�JŠJ�q˜1œ7 T¨!¬&¡[Ñ0Ñ2Ô2ˆå�q˜”z 1°¸Ð<Ñ<Ô<�E€BˆÝ�1�a”g˜a”j 1‘nÑ%Ô%ð ð ˆØ�ˆr�3ˆwŒZ˜"˜Q™$ÑˆˆØ€Ir   c                óX  — t          j        |d|¬¦  «        }t          | t          t          z  ¦  «        r|                     | ¦  «        } |r'|                     ||j        d| j        z  z   ¦  «        }n| j        |j        k    rt          d¦  «        ‚| 
                    | |z
  d¬¦  «        S )Nr   r_   rp   z,x.ndim must be < r.ndim when tensor == Falser   r‰   )rO   rb   r¡   r¢   r£   r   r¤   r"   r`   rc   Úprod)rG   Úrr   rœ   s       r   Únpp_polyvalfromrootsrª   ù   s¢   € ÝŒ�q˜q RÐ(Ñ(Ô(€Aõ �!•U�T‘\Ñ"Ô"ð Ø�JŠJ�q‰MŒMˆàð IØ�JŠJ�q˜!œ' D¨1¬6¡MÑ1Ñ2Ô2ˆˆØ	
Œ�1”6Ò	Ð	ÝÐGÑHÔHÐHØ�7Š7�1�q‘5˜qˆ7Ñ!Ô!Ð!r   )r/   )NN)Ú__doc__r‘   Úscipy._lib.array_api_extraÚ_libÚarray_api_extrarO   Úscipy._lib._array_apir   r   r   r   r   Únumpy.exceptionsr   ÚImportErrorr(   r   r.   r:   r]   re   rl   r�   r†   r›   r¦   rª   rF   r   r   ú<module>r²      s°  ððð ð €€€Ø (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ð (ðð ð ð ð ð ð ð ð ð ð ð ð ð ð"Ø,Ð,Ð,Ð,Ð,Ð,Ð,øØð "ð "ð "à!Ð!Ð!Ð!Ð!Ð!Ð!Ð!ð"øøøð

ð 
ð 
ð<ð <ð <ð4ð ð ð ð.%ð %ð %ð %ðB	ð 	ð 	ðð ð ðð ð ð:	ð 	ð 	ð %)ð 'ð 'ð 'ð 'ð 'ð\ %)ð ð ð ð ð ð" .2ð "ð "ð "ð "ð "ð "ð "s   Ÿ& ¦4³4