§
    fŠtjÓ2  ã                   ó0  — d dl Zd dlmZ d dlmZ d dlZd dlmZ	 d dl
mZmZmZmZmZ d dlm Z d dlmZmZ d dlmZmZ d d	lmZ ej        j        Zdd„Z G d„ d¦  «        ZdZ ee¦  «         G d„ d¦  «        ¦   «         Z ee¦  «        d„ ¦   «         Z dS )é    N)Úproduct)Úraises)Úarray_api_extra)Úxp_assert_closeÚarray_namespaceÚ_xp_copy_to_numpyÚis_cupyÚmake_xp_test_case)Únumpy)ÚupfirdnÚfirwin)Ú_output_lenÚ_upfirdn_modes)Ú	_pad_testé   c                 óZ  — t          j        | ¦  «        } t          j        |¦  «        }t          j        t          | ¦  «        |z  | j        ¦  «        }| |dd|…<   t          j        ||¦  «        dd|…         dt          t          |¦  «        t          | ¦  «        ||¦  «        …         }|S )zpNaive upfirdn processing in Python.

    Note: arg order (x, h) differs to facilitate apply_along_axis use.
    N)ÚnpÚasarrayÚzerosÚlenÚdtypeÚconvolver   )ÚxÚhÚupÚdownÚouts        ú]/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/scipy/signal/tests/test_upfirdn.pyÚupfirdn_naiver   7   s�   € õ
 	Œ
�1‰Œ€AÝ
Œ
�1‰Œ€AÝ
Œ(•3�q‘6”6˜B‘; ¤Ñ
(Ô
(€CØ€Cˆˆˆ"ˆ�IÝ
Œ+�a˜Ñ
Ô
˜f˜f ˜fÔ
%Ð&L¥{µ3°q±6´6½3¸q¹6¼6À2ÀtÑ'LÔ'LÐ&LÔ
M€CØ€Jó    c                   ó,   — e Zd ZdZddœd„Zd„ Zdd„ZdS )	ÚUpFIRDnCasezTest _UpFIRDn objectN©Úxpc                óÊ   — |€t           }|| _        || _        t          j        |¦  «        | _        || _        t          j                             d¦  «        | _	        || _
        d S )Né   )Ú	np_compatr   r   r   Ú
atleast_1dr   Úx_dtypeÚrandomÚRandomStateÚrngr$   )Úselfr   r   r   r)   r$   s         r   Ú__init__zUpFIRDnCase.__init__F   sT   € Øˆ:ÝˆBØˆŒØˆŒ	Ý”˜qÑ!Ô!ˆŒØˆŒÝ”9×(Ò(¨Ñ,Ô,ˆŒØˆŒˆˆr    c                 ó2  — |                       t          j        d| j        ¦  «        ¦  «         |                       t          j        d| j        ¦  «        ¦  «         | j                             d¦  «                             | j        ¦  «        }| j        t          j        t          j        fv r |d| j                             d¦  «        z  z  }|                       |¦  «         |                       t          j	        d¦  «                             | j        ¦  «        ¦  «         t          | j        ¦  «        rd S d} | j        j        |Ž                      | j        ¦  «        }| j        t          j        t          j        fv r|d | j        j        |Ž z  z  }t          t          |¦  «        ¦  «        D ]}|                       ||¬¦  «         Œ|d d …d d d…dd d…f         j        }t          t          |¦  «        ¦  «        D ]}|                       ||¬¦  «         Œd S )Nr   é
   ù              ð?)é   é   é   ©Úaxisr2   r3   )Úscrubr   Úonesr)   r,   ÚrandnÚastypeÚ	complex64Ú
complex128Úaranger	   r$   Úranger   ÚT)r-   r   Úsizer6   s       r   Ú__call__zUpFIRDnCase.__call__P   sÕ  € à�
Š
•2”7˜1˜dœlÑ+Ô+Ñ,Ô,Ð,à�
Š
•2”7˜2˜tœ|Ñ,Ô,Ñ-Ô-Ð-àŒH�NŠN˜2ÑÔ×%Ò% d¤lÑ3Ô3ˆØŒ<�BœL­"¬-Ð8Ð8Ð8Ø��d”h—n’n RÑ(Ô(Ñ(Ñ(ˆAØ�
Š
�1‰Œˆà�
Š
•2”9˜R‘=”=×'Ò'¨¬Ñ5Ô5Ñ6Ô6Ð6å�4”7ÑÔð 	àˆFØˆØˆDŒHŒN˜DÐ!×(Ò(¨¬Ñ6Ô6ˆØŒ<�BœL­"¬-Ð8Ð8Ð8Ø��n�d”h”n dÐ+Ñ+Ñ+ˆAÝ�#˜d™)œ)Ñ$Ô$ð 	%ð 	%ˆDØ�JŠJ�q˜tˆJÑ$Ô$Ð$Ð$Øˆaˆaˆa���1��a�d˜�dˆlŒOÔˆÝ�#˜d™)œ)Ñ$Ô$ð 	%ð 	%ˆDØ�JŠJ�q˜tˆJÑ$Ô$Ð$Ð$ð	%ð 	%r    éÿÿÿÿc                 óð  — | j         }t          j        t          ||| j        | j        | j        ¦  «        }t          t          | j        ¦  «        |j	        |         | j        | j        ¦  «        }|j	        |         |k    sJ ‚t          |                     | j        ¦  «        |                     |¦  «        | j        | j        |¬¦  «        }|j	        |         |k    sJ ‚|j	        |j	        k    sJ ‚| j        j        |j        f}t          d„ |D ¦   «         ¦  «        r|j        |j        k    sJ ‚nœt          j        |v r!t          j        |v r|j        |j        k    sJ ‚nmt          d„ |D ¦   «         ¦  «        r|j        |j        k    sJ ‚nAt          j        |v st          j        |v r|j        |j        k    sJ ‚n|j        |j        k    sJ ‚|                     ||j        ¬¦  «        }t%          ||¦  «         d S )Nr5   c              3   ó6   K  — | ]}|t           j        k    V — Œd S ©N)r   r;   ©Ú.0Úds     r   ú	<genexpr>z$UpFIRDnCase.scrub.<locals>.<genexpr>u   s)   è è € Ð1Ð1 Qˆq•B”LÒ Ð1Ð1Ð1Ð1Ð1Ð1r    c              3   ó6   K  — | ]}|t           j        k    V — Œd S rE   )r   Úfloat32rF   s     r   rI   z$UpFIRDnCase.scrub.<locals>.<genexpr>y   s(   è è € Ð1Ð1 Q�•b”j’Ð1Ð1Ð1Ð1Ð1Ð1r    ©r   )r$   r   Úapply_along_axisr   r   r   r   r   r   Úshaper   r   r   Úallr;   rK   r<   Úfloat64r   )r-   r   r6   r$   ÚyrÚwant_lenÚyÚdtypess           r   r7   zUpFIRDnCase.scrubj   só  € ØŒWˆÝÔ ¥°°aØ!%¤¨¬°$´)ñ=ô =ˆå�s 4¤6™{œ{¨A¬G°D¬M¸4¼7ÀDÄIÑNÔNˆØŒx˜Œ~ Ò)Ð)Ð)Ð)Ý�B—J’J˜tœvÑ&Ô&¨¯
ª
°1©¬°t´wÀÄ	Øðñ ô ˆàŒw�tŒ} Ò(Ð(Ð(Ð(ØŒw˜"œ(Ò"Ð"Ð"Ð"Ø”&”, ¤Ð(ˆÝÐ1Ð1¨&Ð1Ñ1Ô1Ñ1Ô1ð 		)Ø”7˜bœlÒ*Ð*Ð*Ð*Ð*ÝŒ\˜VÐ#Ð#­¬
°fÐ(<Ð(<Ø”7˜bœlÒ*Ð*Ð*Ð*Ð*ÝÐ1Ð1¨&Ð1Ñ1Ô1Ñ1Ô1ð 	)Ø”7˜bœjÒ(Ð(Ð(Ð(Ð(ÝŒ]˜fÐ$Ð$­¬¸Ð(>Ð(>Ø”7˜bœmÒ+Ð+Ð+Ð+Ð+à”7˜bœjÒ(Ð(Ð(Ð(Ø�ZŠZ˜ !¤'ˆZÑ*Ô*ˆÝ˜˜AÑÔÐÐÐr    )rB   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r.   rA   r7   © r    r   r"   r"   D   sY   € € € € € ØÐØ37ð ð ð ð ð ð%ð %ð %ð4ð ð ð ð ð r    r"   ©Úint64rK   r;   rP   r<   c                   óv  — e Zd Z edd¬¦  «        d„ ¦   «         Zej                             dg d¢¦  «        ej                             dg d¢¦  «        d„ ¦   «         ¦   «         Zd	„ Z	ej                             d
ddddg d¢fddddg d¢fddddg d¢fddddg d¢fddddg d¢fg¦  «        d„ ¦   «         Z
ej                             dg d¢¦  «        ej                             dg d¢¦  «        d„ ¦   «         ¦   «         Zej                             de¦  «        ej                             dd¦  «        ej                             dg d ¢¦  «        d!„ ¦   «         ¦   «         ¦   «         Zej                             de¦  «        ej                             d"e¦  «        ej                             d# e ed$d$¦  «        ¦  «        ¦  «        d%„ ¦   «         ¦   «         ¦   «         Zd&„ Zej                             d'e¦  «        d(„ ¦   «         Zej                             d) ed*gg d+¢eg d,¢¦  «        ¦  «        d-„ ¦   «         Zd.S )/ÚTestUpfirdnTzenough to only test on numpy)Únp_onlyÚreasonc                 óÆ   — t          t          t          dgdgdd¦  «         t          t          t          g dgdd¦  «         t          t          t          dggdgdd¦  «         d S )Nr   r   )Úassert_raisesÚ
ValueErrorr   )r-   r$   s     r   Útest_valid_inputzTestUpfirdn.test_valid_input‰   s\   € å•j¥'¨A¨3°°°Q¸Ñ:Ô:Ð:Ý•j¥'¨2°¨s°A°qÑ9Ô9Ð9Ý•j¥'¨Q¨C¨5°1°#°q¸!Ñ<Ô<Ð<Ð<Ð<r    Úlen_h)r   r2   r3   é   r4   Úlen_xc                 óD  — |                      |¦  «        }t          j        |¦  «        |dz                                d¦  «        }|                     |¦  «        }t          ||dd¦  «        }t          j        ||dz  |dz
  dz  fd|¬¦  «        }t          ||¦  «         d S )Nr2   ç      ð?r   Úconstantr#   )r   ÚxpxÚatÚsetr8   r   Úpadr   )r-   rd   rf   r$   r   r   rS   Úwants           r   Útest_singletonzTestUpfirdn.test_singleton�   s™   € ð �HŠH�U‰OŒOˆÝŒF�1‰IŒI�e˜q‘jÔ!×%Ò% bÑ)Ô)ˆØ�GŠG�E‰NŒNˆÝ�A�q˜!˜QÑÔˆÝŒw�q˜5 A™:¨°©	°aÑ'7Ð8¸*ÈÐLÑLÔLˆÝ˜˜4Ñ Ô Ð Ð Ð r    c                 ó¤  — t          |                     ddg¦  «        |                     dg¦  «        dd¦  «        }t          ||                     ddg|j        ¬¦  «        ¦  «         t          |                     ddg¦  «        |                     ddg¦  «        dd¦  «        }t          ||                     g d¢|j        ¬¦  «        ¦  «         d S )Nr   rh   rL   ç        )rq   rh   rh   )r   r   r   rP   )r-   r$   rS   s      r   Útest_shift_xzTestUpfirdn.test_shift_xš   sÁ   € å�B—J’J  1˜vÑ&Ô&¨¯
ª
°B°4Ñ(8Ô(8¸!¸QÑ?Ô?ˆÝØˆr�zŠz˜3 ˜*¨B¬JˆzÑ7Ô7ñ	
ô 	
ð 	
õ �B—J’J  1˜vÑ&Ô&¨¯
ª
°B¸°8Ñ(<Ô(<¸aÀÑCÔCˆÝ˜˜2Ÿ:š: o o o¸R¼Z˜:ÑHÔHÑIÔIÐIÐIÐIr    z len_h, len_x, up, down, expectedr2   r4   )r   r   r   r   r3   é   )r   r   r   r   r   re   )r   r   r   r   r   )r   r   r   r   r   é   )r   r   r   r   r   r   r   c                 ó>  — |                      |¦  «        }t          j        |¦  «        d                              d¦  «        }|                     ||j        ¬¦  «        }t          ||||¦  «        }	|                     ||j        ¬¦  «        }t          |	|¦  «         d S )Nr   rh   rL   )	r   rj   rk   rl   r8   rP   r   r   r   )
r-   rd   rf   r   r   Úexpectedr$   r   r   rS   s
             r   Útest_length_factorszTestUpfirdn.test_length_factors¦   s‰   € ð �HŠH�U‰OŒOˆÝŒF�1‰IŒI�aŒL×Ò˜RÑ Ô ˆØ�GŠG�E ¤ˆGÑ,Ô,ˆÝ�A�q˜"˜dÑ#Ô#ˆØ—:’:˜h¨b¬j�:Ñ9Ô9ˆÝ˜˜8Ñ$Ô$Ð$Ð$Ð$r    r   rZ   zdown, want_len))r2   i—  )rt   i�  )éO   é   c                 óì  — t           j                             d¦  «        }d}t          t           |¦  «        }|                     |¦  «                             |¦  «        }|t           j        t           j        fv r|d|                     |¦  «        z  z  }t          ||¦  «        }|                     ||¬¦  «        }|                     t          dd|z  d¬¦  «        ¦  «        }	|                     t          t          |¦  «        t          |	¦  «        d	|¦  «        ¦  «        }
t          |	|d	|¬
¦  «        }|j        |fk    sJ ‚|
j        d         |j        d         k    sJ ‚t          |
|dd¬¦  «         d S )Nr&   i'  r1   rL   é   rh   Úhamming)Úwindowr   )r   r   r   gH¯¼šò×z>©ÚatolÚrtol)r   r*   r+   Úgetattrr9   r:   r;   r<   r   r   r   r   r   rN   r   )r-   r   rR   r   r$   Úrandom_stater@   Únp_dtyper   r   ÚylrS   s               r   Útest_vs_convolvezTestUpfirdn.test_vs_convolve¶   sd  € õ ”y×,Ò,¨RÑ0Ô0ˆØˆå�2˜uÑ%Ô%ˆØ×Ò˜tÑ$Ô$×+Ò+¨HÑ5Ô5ˆØ�œ¥b¤mÐ4Ð4Ð4Ø��l×(Ò(¨Ñ.Ô.Ñ.Ñ.ˆAå˜˜EÑ"Ô"ˆØ�JŠJ�q ˆJÑ&Ô&ˆà�JŠJ•v˜b " t¡)°IÐ>Ñ>Ô>Ñ?Ô?ˆØ�ZŠZÝÕ+¨AÑ.Ô.Õ0AÀ!Ñ0DÔ0DÀaÈÑNÔNñ
ô 
ˆõ �A�q˜Q TÐ*Ñ*Ô*ˆØŒw˜8˜+Ò%Ð%Ð%Ð%ØŒx˜Œ{˜aœg aœjÒ(Ð(Ð(Ð(Ý˜˜A D¨tÐ4Ñ4Ô4Ð4Ð4Ð4r    r)   r   )rh   r1   zup, down)©r   r   )r2   r2   )r3   r2   )r2   r3   c                 ó>   —  t          |||||¬¦  «        ¦   «          d S ©Nr#   )r"   )r-   r)   r   r   r   r$   s         r   Útest_vs_naive_deltazTestUpfirdn.test_vs_naive_deltaÔ   s+   € ð 	1��B˜˜a ¨RÐ0Ñ0Ô0Ñ2Ô2Ð2Ð2Ð2r    Úh_dtypezp_max, q_max)r0   éd   c                 óX   — |                       |||||¬¦  «        }|D ]} |¦   «          Œd S rˆ   )Ú_random_factors)r-   r)   rŠ   Úp_maxÚq_maxr$   ÚtestsÚtests           r   Útest_vs_naivezTestUpfirdn.test_vs_naiveÚ   sH   € ð
 ×$Ò$ U¨E°7¸GÈÐ$ÑKÔKˆØð 	ð 	ˆDØˆD‰FŒFˆFˆFð	ð 	r    c          
      ó:  — d}d}t           j                             d¦  «        }g }	t          |¦  «        D ]å}
||k    r|nd}||k    r|nd}|                     |¦  «        |z   }|                     |¦  «        |z   }|                     |¦  «        dz   }t          j        |                     |¦  «        ¦  «        }|                     |¦  «        }|t          u r|d|                     |¦  «        z  z  }|	                     t          |||||¬¦  «        ¦  «         Œæ|	S )Nr3   é   r&   r   r1   r#   )
r   r*   r+   r>   Úrandintr(   r:   ÚcomplexÚappendr"   )r-   rŽ   r�   rŠ   r)   r$   Ún_repÚ	longest_hr‚   r�   Ú_Úp_addÚq_addÚpÚqrd   r   s                    r   r�   zTestUpfirdn._random_factorsã   s*  € ØˆØˆ	Ý”y×,Ò,¨RÑ0Ô0ˆØˆå�u‘”ð 	?ð 	?ˆAà" Uš]˜]�E�E°ˆEØ" Uš]˜]�E�E°ˆEØ×$Ò$ UÑ+Ô+¨eÑ3ˆAØ×$Ò$ UÑ+Ô+¨eÑ3ˆAð !×(Ò(¨Ñ3Ô3°aÑ7ˆEÝ”˜l×2Ò2°5Ñ9Ô9Ñ:Ô:ˆAØ—’˜Ñ!Ô!ˆAØ�'Ð!Ð!Ø�R˜,×.Ò.¨uÑ5Ô5Ñ5Ñ5�à�LŠL� Q¨¨1¨g¸"Ð=Ñ=Ô=Ñ>Ô>Ð>Ð>àˆr    Úmodec                 ó–  — t          j        g d¢t           j        ¬¦  «        }d\  }}t          ||||¬¦  «        }|                     |¦  «        }|                     |¦  «        }|dk    r|                     g d¢¦  «        }�n|dk    r|                     g d¢¦  «        }nû|d	k    r|                     g d
¢¦  «        }nÝ|dk    rœ|d         |d         z
  |j        d         dz
  z  }|d         |                     | dd|j        ¬¦  «        |z  z   }	|d         |                     d|dz   |j        ¬¦  «        |z  z   }
t          |	¦  «        j        } ||	||
f¦  «        }n;t          j        t          |¦  «        ||f|¬¦  «        }|                     |¦  «        }|                     ||j        ¬¦  «        }t          ||¦  «         dS )z@Test vs. manually computed results for modes not in numpy's pad.)r   r2   r3   r   rL   )rs   rs   ©ÚnpreÚnpostrŸ   Úantisymmetric)g      @r   rB   éýÿÿÿéþÿÿÿrB   r   r2   r3   r   rB   r¥   r¦   rB   r   r2   Úantireflect)rh   r2   r3   r   rB   r   r   r2   r3   r   rB   r   r   r2   r3   r   Úsmooth)g      Àéüÿÿÿr¥   r¦   rB   r   r   r2   r3   r   rB   r¥   éûÿÿÿiùÿÿÿi÷ÿÿÿiõÿÿÿÚlinerB   r   r   ©rŸ   N)r   r   rP   r   rN   r=   r   Úconcatrm   r   r   )r-   rŸ   r$   r   r¢   r£   rS   Ú
y_expectedÚ	lin_slopeÚleftÚrightr­   s               r   Útest_extensionszTestUpfirdn.test_extensionsû   sä  € õ ŒJ�|�|�|­2¬:Ð6Ñ6Ô6ˆØ‰ˆˆeÝ�a˜d¨%°dÐ;Ñ;Ô;ˆà�JŠJ�q‰MŒMˆØ�JŠJ�q‰MŒMˆØ�?Ò"Ð"ØŸšØJÐJÐJñLô LˆJ‰Jà�]Ò"Ð"ØŸšØDÐDÐDñFô FˆJˆJà�XÒÐØŸšØNÐNÐNñPô PˆJˆJà�VŠ^ˆ^Ø˜2œ  1¤™¨!¬'°!¬*°q©.Ñ9ˆIØ�Q”4˜"Ÿ)š) T E¨1¨a°r´z˜)ÑBÔBÀYÑNÑNˆDØ�b”E˜BŸIšI a¨°©¸"¼*˜IÑEÔEÈ	ÑQÑQˆEÝ$ TÑ*Ô*Ô1ˆFØ˜  q¨%Ð 0Ñ1Ô1ˆJˆJåœÕ 1°!Ñ 4Ô 4°t¸U°mÈ$ÐOÑOÔOˆJØŸš JÑ/Ô/ˆJà—Z’Z 
°"´*�ZÑ=Ô=ˆ
Ý˜˜:Ñ&Ô&Ð&Ð&Ð&r    zsize, h_len, mode, dtypeé   )re   r4   é   )rK   rP   r;   r<   c                 ó   — t          |¦  «        r|dk    rt          j        d¬¦  «         t          t          |¦  «        }t          ||¦  «        }t          j                             d¦  «        }|                     |¦  «                             |¦  «        }	|dv r|	d|                     |¦  «        z  z  }	t	          j	        dd|z   |	j
        j        ¬¦  «        }
|                     |	|¬¦  «        }	|                     |
¦  «        }
t          |
|	dd|¬	¦  «        }|dz
  }|d
v r!t          t          |	¦  «        |||¬¦  «        }n$t	          j        t          |	¦  «        ||¬¦  «        }|                     |¦  «        }t          |
|ddd¬	¦  «        }||| …         }|                     |¦  «        j        dz  x}}t'          ||||¬¦  «         d S )Nri   z&only mode='constant' supported by CuPy)r_   r4   )r;   r<   r1   r   rL   )r   r   rŸ   )r¤   r§   r¨   r«   r¡   r¬   g      Y@r~   )r	   ÚpytestÚskipr�   r   r*   r+   r9   r:   r=   Úrealr   r   r   r   r   rm   ÚfinfoÚepsr   )r-   r@   Úh_lenrŸ   r   r$   Údtype_npÚdtype_xpr‚   r   r   rS   ÚnpadÚxpadÚypadr®   r   r€   s                     r   Ú
test_modeszTestUpfirdn.test_modes  sÑ  € õ �2‰;Œ;ð 	I˜4 :Ò-Ð-ÝŒKÐGÐHÑHÔHÐHÝ�2˜uÑ%Ô%ˆÝ˜2˜uÑ%Ô%ˆå”y×,Ò,¨QÑ/Ô/ˆØ×Ò˜tÑ$Ô$×+Ò+¨HÑ5Ô5ˆØÐ/Ð/Ð/Ø��l×(Ò(¨Ñ.Ô.Ñ.Ñ.ˆAÝŒI�a˜˜U™¨!¬&¬,Ð7Ñ7Ô7ˆà�JŠJ�q ˆJÑ)Ô)ˆØ�JŠJ�q‰MŒMˆå�A�q˜Q Q¨TÐ2Ñ2Ô2ˆà�q‰yˆØÐEÐEÐEåÕ.¨qÑ1Ô1¸ÀDÈtÐTÑTÔTˆDˆDå”6Õ+¨AÑ.Ô.°¸4Ð@Ñ@Ô@ˆDà�zŠz˜$ÑÔˆÝ�q˜$ 1¨1°:Ð>Ñ>Ô>ˆØ˜$ ˜u˜*Ô%ˆ
à—h’h˜xÑ(Ô(Ô,¨sÑ2Ð2ˆˆtÝ˜˜:¨D°tÐ<Ñ<Ô<Ð<Ð<Ð<r    N)rU   rV   rW   Úskip_xp_backendsrc   r¶   ÚmarkÚparametrizero   rr   rw   r…   Ú_UPFIRDN_TYPESr‰   Úlistr   r’   r�   r   r²   rÁ   rY   r    r   r]   r]   †   s<  € € € € € ð Ð˜dÐ+IÐJÑJÔJð=ð =ñ KÔJð=ð
 „[×Ò˜W o o oÑ6Ô6Ø„[×Ò˜W o o oÑ6Ô6ð!ð !ñ 7Ô6ñ 7Ô6ð!ðJð Jð Jð „[×ÒÐ?Ø	
ˆAˆq�!�\�\�\Ð"Ø	
ˆAˆq�!�_�_�_Ð%Ø	
ˆAˆq�!�_�_�_Ð%Ø	
ˆAˆq�!�_�_�_Ð%Ø	
ˆB��1Ð+Ð+Ð+Ð,ðBñ ô ð%ð %ñô ð%ð „[×ÒØÐKÐKÐKñô ð „[×ÒÐ-ð 0ð 0ð 0ñ ô ð
5ð 5ñô ñô ð5ð, „[×Ò˜Y¨Ñ7Ô7Ø„[×Ò˜S (Ñ+Ô+Ø„[×Ò˜ZÐ)IÐ)IÐ)IÑJÔJð3ð 3ñ KÔJñ ,Ô+ñ 8Ô7ð3ð „[×Ò˜Y¨Ñ7Ô7Ø„[×Ò˜Y¨Ñ7Ô7Ø„[×Ò˜^Ø!˜T ' '¨)°YÑ"?Ô"?Ñ@Ô@ñBô Bðð ñBô Bñ 8Ô7ñ 8Ô7ðð
ð ð ð0 „[×Ò˜V ^Ñ4Ô4ð'ð 'ñ 5Ô4ð'ð< „[×ÒØ"ØˆØˆCØˆJˆJØØ=Ð=Ð=ñ		
ô 	
ñô ð=ð =ñô ð=ð =ð =r    r]   c                 óJ   — d}d}d}d}t          ||||¦  «        }|dk    sJ ‚d S )Nié  i áõi@  i¹  i¸6S)r   )r$   rd   Úin_lenr   r   Úout_lens         r   Útest_output_len_long_inputrÊ   C  sD   € ð
 €EØ€FØ	€BØ€DÝ˜% ¨¨TÑ2Ô2€Gð �hÒÐÐÐÐÐr    r†   )!r   r   Ú	itertoolsr   r¶   r   ra   Ú
scipy._libr   rj   Úscipy._lib._array_apir   r   r   r	   r
   Úscipy._lib.array_api_compatr'   Úscipy.signalr   r   Úscipy.signal._upfirdnr   r   Úscipy.signal._upfirdn_applyr   rÃ   rÂ   r   r"   rÅ   r]   rÊ   rY   r    r   ú<module>rÒ      s¹  ððF Ð Ð Ð Ø Ð Ð Ð Ð Ð à *Ð *Ð *Ð *Ð *Ð *Ø €€€à -Ð -Ð -Ð -Ð -Ð -ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ;Ð :Ð :Ð :Ð :Ð :Ø (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ø =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1à”;Ô/Ð ð
ð 
ð 
ð 
ð<ð <ð <ð <ð <ñ <ô <ð <ð~ L€ð Ð�7ÑÔðy=ð y=ð y=ð y=ð y=ñ y=ô y=ñ Ôðy=ðx Ð�7ÑÔðð ñ Ôðð ð r    