§
    ¢éUg²$ ã                   óÆ  — d dl Z d dlmZmZ d dlm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mZmZmZ d dlmZmZ d dlZd d	lmZ d d
lmZ d dlmZm Z  d dl!m"Z" d dl#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZA d dlBmCZC d dlDmEZEmFZFmGZG d dlHmIZI d dlJmKZK d dlLmMZMmNZNmOZO  G d„ d¦  «        ZP G d„ deP¦  «        ZQ G d„ d¦  «        ZR G d„ deR¦  «        ZS G d„ d¦  «        ZTd„ ZUd„ ZVd„ ZWd „ ZX G d!„ d"¦  «        ZY G d#„ d$¦  «        ZZ G d%„ d&¦  «        Z[ G d'„ d(¦  «        Z\g d)¢Z]e]eIz  Z] G d*„ d+¦  «        Z^ G d,„ d-¦  «        Z_ G d.„ d/¦  «        Z` G d0„ d1¦  «        Za G d2„ d3ea¦  «        Zb G d4„ d5ea¦  «        Zc G d6„ d7ea¦  «        Zd G d8„ d9ea¦  «        Ze G d:„ d;ea¦  «        Zf G d<„ d=ea¦  «        Zg G d>„ d?ea¦  «        Zh G d@„ dAea¦  «        ZidB„ ZjdC„ Zke
jl         m                    dDejn        ejo        ejp        ejq        eOeNejr        ejr        ejs        ejt        eju        eg¦  «         G dE„ dF¦  «        ¦   «         Zv G dG„ dH¦  «        Zwe
jl         m                    dIg dJ¢¦  «        e
jl         m                    dKdLdMg¦  «        e
jl         m                    dNg dO¢¦  «        dP„ ¦   «         ¦   «         ¦   «         Zxe
jl         m                    dDejy        ejz        ej{        g¦  «         G dQ„ dR¦  «        ¦   «         Z| G dS„ dT¦  «        Z} G dU„ dV¦  «        Z~ G dW„ dX¦  «        Z G dY„ dZe¦  «        Z€d[„ Z�dwd\„Z‚e
jl         ƒ                    d]¦  «        d^„ ¦   «         Z„e
jl         ƒ                    d]¦  «        d_„ ¦   «         Z… G d`„ da¦  «        Z† G db„ dc¦  «        Z‡ G dd„ de¦  «        Zˆ G df„ dg¦  «        Z‰ G dh„ di¦  «        ZŠdxdk„Z‹e
jl         m                    dle9e.f¦  «        dm„ ¦   «         ZŒe
jl         m                    dDdn¦  «         G do„ dp¦  «        ¦   «         Z� G dq„ dr¦  «        ZŽ G ds„ dt¦  «        Z� G du„ dv¦  «        Z�dS )yé    N)ÚThreadPoolExecutorÚas_completed)ÚDecimal©Úproduct)Úgcd)Úraises)Úassert_equalÚassert_almost_equalÚassert_array_equalÚassert_array_almost_equalÚassert_allcloseÚassert_Úassert_array_lessÚsuppress_warnings)ÚarrayÚarange)Úfft)Úcorrelate1d)ÚfminÚlinear_sum_assignment)Úsignal)Ú	correlateÚcorrelate2dÚcorrelation_lagsÚconvolveÚ
convolve2dÚfftconvolveÚ
oaconvolveÚchoose_conv_methodÚhilbertÚhilbert2ÚlfilterÚ
lfilter_ziÚfiltfiltÚbutterÚzpk2tfÚzpk2sosÚinvresÚinvreszÚvectorstrengthÚlfilticÚtf2sosÚsosfiltÚsosfiltfiltÚ
sosfilt_ziÚtf2zpkÚBadCoefficientsÚdetrendÚunique_rootsÚresidueÚresiduez)Úhann)Ú_filtfilt_gustÚ_compute_factorsÚ_group_poles)Ú_upfirdn_modes)Ú
_testutils)ÚComplexWarningÚnp_longÚnp_ulongc                   óJ   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ ZdS )Ú_TestConvolvec                 ót   — g d¢}g d¢}t          ||¦  «        }t          |t          g d¢¦  «        ¦  «         d S )N)é   é   é   é   rE   rD   ©é   é   rC   )rC   é
   é   é   é    rM   é   é   ©r   r   r   ©ÚselfÚaÚbÚcs       úb/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/scipy/signal/tests/test_signaltools.pyÚ
test_basicz_TestConvolve.test_basic'   sH   € ØÐÐˆØˆIˆIˆÝ�Q˜‰NŒNˆÝ˜1�eÐ$CÐ$CÐ$CÑDÔDÑEÔEÐEÐEÐEó    c                 óx   — g d¢}g d¢}t          ||d¬¦  «        }t          |t          g d¢¦  «        ¦  «         d S )N©rC   rD   rE   )rH   rI   rC   rD   Úsame©Úmode)rJ   rK   é"   rP   rQ   s       rV   Ú	test_samez_TestConvolve.test_same-   sJ   € ØˆIˆIˆØˆLˆLˆÝ�Q˜ Ð'Ñ'Ô'ˆÝ˜1�e L L LÑ1Ô1Ñ2Ô2Ð2Ð2Ð2rX   c                 óx   — g d¢}g d¢}t          ||d¬¦  «        }t          |t          g d¢¦  «        ¦  «         d S )NrZ   rG   r[   r\   )rJ   rK   rK   rP   rQ   s       rV   Útest_same_eqz_TestConvolve.test_same_eq3   sJ   € ØˆIˆIˆØˆIˆIˆÝ�Q˜ Ð'Ñ'Ô'ˆÝ˜1�e L L LÑ1Ô1Ñ2Ô2Ð2Ð2Ð2rX   c                 ó¨   — t          g d¢¦  «        }t          ddg¦  «        }t          ||¦  «        }t          |t          g d¢¦  «        ¦  «         d S )N)ù      ð?      ð?ù       @      ð?ù      @      ð?rc   rd   )ù               @y       @      @y      @       @y      @      @)r   r   r   )rR   ÚxÚyÚzs       rV   Útest_complexz_TestConvolve.test_complex9   sZ   € ÝÐ*Ð*Ð*Ñ+Ô+ˆÝ�6˜6Ð"Ñ#Ô#ˆÝ�Q˜‰NŒNˆÝ˜1�eÐ$@Ð$@Ð$@ÑAÔAÑBÔBÐBÐBÐBrX   c                 óT   — d}d}t          ||¦  «        }t          |||z  ¦  «         d S )Ni	  i×  )r   r
   rQ   s       rV   Útest_zero_rankz_TestConvolve.test_zero_rank?   s3   € ØˆØˆÝ�Q˜‰NŒNˆÝ�Q˜˜A™ÑÔÐÐÐrX   c                 ón  — t          j        d¦  «                             ddd¦  «        }t          j        d¦  «        }t          d¦  «        D ]g}dgdz  }d||<   t	          ||                     |¦  «        d¬¦  «        }t	          ||                     |¦  «        d¬¦  «        }t          ||¦  «         Œhd S )Né   rC   rH   Údirect©Úmethodr   )Únpr   ÚreshapeÚranger   r   )rR   rS   rT   ÚiÚb_shaperg   rh   s          rV   Útest_broadcastablez _TestConvolve.test_broadcastableE   s´   € ÝŒI�b‰MŒM×!Ò! ! Q¨Ñ*Ô*ˆÝŒI�a‰LŒLˆÝ�q‘”ð 	"ð 	"ˆAØ�c˜!‘eˆGØˆG�A‰JÝ˜˜AŸIšI gÑ.Ô.°xÐ@Ñ@Ô@ˆAÝ˜˜AŸIšI gÑ.Ô.°uÐ=Ñ=Ô=ˆAÝ˜A˜qÑ!Ô!Ð!Ð!ð	"ð 	"rX   c                 óŒ   — t          dg¦  «        }t          dg¦  «        }t          ||¦  «        }t          |||z  ¦  «         d S ©Nig  iP  )r   r   r
   rQ   s       rV   Útest_single_elementz!_TestConvolve.test_single_elementO   sC   € Ý�4�&‰MŒMˆÝ�4�&‰MŒMˆÝ�Q˜‰NŒNˆÝ�Q˜˜A™ÑÔÐÐÐrX   c                 ó–   — g d¢g d¢g}g d¢g d¢g}t          ||¦  «        }t          g d¢g d¢g d¢g¦  «        }t          ||¦  «         d S ©NrG   rZ   ©rI   rC   rD   ©rD   rE   rF   )rI   é   é   é   rO   )rJ   é   é>   é:   é&   )rO   é   r„   é1   r‚   ©r   r   r   ©rR   rS   rT   rU   Úds        rV   Útest_2d_arraysz_TestConvolve.test_2d_arraysU   sz   € ØˆYˆY˜	˜	˜	Ð"ˆØˆYˆY˜	˜	˜	Ð"ˆÝ�Q˜‰NŒNˆÝÐ%Ð%Ð%Ø'Ð'Ð'Ø'Ð'Ð'ð)ñ *ô *ˆõ 	˜1˜aÑ Ô Ð Ð Ð rX   c           
      ón  — t          d¦  «                             ddd¦  «        }dt          d¦  «                             ddd¦  «        z  }|t          d¦  «        d d d…                              ddd¦  «        z  }t          g d¢g d¢g d	¢g d
¢gg d¢g d¢g d¢g d¢gg d¢g d¢g d¢g d¢gg d¢g d¢g d¢g d¢gg¦  «        }t          t	          ||d¦  «        |¦  «         t          t	          ||d¦  «        |¦  «         t          t	          ||d¦  «        |dd…dd…dd…f         ¦  «         t          t	          ||d¦  «        |dd…dd…dd…f         ¦  «         t          t	          ||d¦  «        |dd…dd…dd…f         ¦  «         t          t	          ||d¦  «        |dd…dd…dd…f         ¦  «         d S )Né   rI   ù              ð?rn   rC   éÿÿÿÿ)ù                y      :@        y      9@      ð?y      8@       @)y      J@        y     àb@      @y      b@      &@y     @W@      &@)y      G@      @y      `@      7@y     À_@      =@y     @T@      7@)y      D@      (@y     €X@      @@y     @W@     €B@y      K@      8@)y      Z@        y     àn@      *@y      m@      7@y     à`@      5@)y      q@      >@y     Àƒ@      X@y     à‚@      _@y      t@     €U@)y     Àn@     €P@y      �@     €f@y     @€@      j@y      q@     À`@)y     Àa@     €P@y     0s@      d@y     r@     `f@y      c@     ÀZ@)y      Q@      B@y      c@     ÀY@y     `b@     @\@y     @T@     ÀR@)y     Àe@     @a@y     Àw@     Àu@y      v@     €w@y     @g@     Àl@)y     @a@     Àe@y     €r@      {@y     Àp@     À|@y     @a@     `q@)y     €Q@     @a@y      b@     0t@y     À_@     Pu@y     €O@      h@)y      @@      R@y      Q@     Àd@y     €M@     àe@y      >@      Y@)y      Q@      h@y     `a@     {@y     @]@     p|@y     €L@     ào@)y      C@     Àk@y     @R@     0@y     €I@     H€@y      5@     0r@)y      (@      b@y      4@     às@y      @     °t@y             Àf@Úfullr[   rH   r   Úvalid)r   rs   r   r   r   )rR   ÚsmallÚbigÚ	out_arrays       rV   Útest_input_swappingz!_TestConvolve.test_input_swapping^   sX  € Ý�q‘	”	×!Ò! ! Q¨Ñ*Ô*ˆØ•6˜"‘:”:×%Ò% a¨¨AÑ.Ô.Ñ.ˆØ�v�b‰zŒz˜$˜$˜B˜$Ô×'Ò'¨¨1¨aÑ0Ô0Ñ0ˆåØ1Ð1Ð1Ø6Ð6Ð6Ø7Ð7Ð7Ø6Ð6Ð6ð8ð
 :Ð9Ð9Ø;Ð;Ð;Ø=Ð=Ð=Ø=Ð=Ð=ð?ð
 ;Ð:Ð:Ø>Ð>Ð>Ø>Ð>Ð>Ø<Ð<Ð<ð>ð
 :Ð9Ð9Ø<Ð<Ð<Ø:Ð:Ð:Ø8Ð8Ð8ð:ð;ñ<ô <ˆ	õ* 	�8 E¨3°Ñ7Ô7¸ÑCÔCÐCÝ�8 C¨°Ñ7Ô7¸ÑCÔCÐCÝ�8 E¨3°Ñ7Ô7Ø$ Q q S¨!¨A¨#¨q°¨s ]Ô3ñ	5ô 	5ð 	5å�8 C¨°Ñ7Ô7Ø$ Q q S¨!¨A¨#¨q°¨s ]Ô3ñ	5ô 	5ð 	5å�8 E¨3°Ñ8Ô8Ø$ Q q S¨!¨A¨#¨q°¨s ]Ô3ñ	5ô 	5ð 	5å�8 C¨°Ñ8Ô8Ø$ Q q S¨!¨A¨#¨q°¨s ]Ô3ñ	5ô 	5ð 	5ð 	5ð 	5rX   c                 óJ  — g d¢}g d¢}t          t          t          ||d¬¦  «         t          t          t          ||dd¬¦  «         t          t          t          ||dd	¬¦  «         t          t          t          ||d
d¬¦  «         t          t          t          ||dd¬¦  «         d S ©NrZ   rG   Úspamr\   Úeggsr   ©r]   rq   Úhamro   r‘   Úbaconr[   ©Úassert_raisesÚ
ValueErrorr   ©rR   rS   rT   s      rV   Útest_invalid_paramsz!_TestConvolve.test_invalid_paramsƒ   sŸ   € ØˆIˆIˆØˆIˆIˆÝ•j¥(¨A¨q°vÐ>Ñ>Ô>Ð>Ý•j¥(¨A¨q°vÀeÐLÑLÔLÐLÝ•j¥(¨A¨q°uÀXÐNÑNÔNÐNÝ•j¥(¨A¨q°vÀgÐNÑNÔNÐNÝ•j¥(¨A¨q°vÀgÐNÑNÔNÐNÐNÐNrX   N)Ú__name__Ú
__module__Ú__qualname__rW   r_   ra   rj   rl   rw   rz   r‹   r–   r¢   © rX   rV   rA   rA   %   s¶   € € € € € ðFð Fð Fð3ð 3ð 3ð3ð 3ð 3ðCð Cð Cðð ð ð"ð "ð "ðð ð ð!ð !ð !ð#5ð #5ð #5ðJOð Oð Oð Oð OrX   rA   c                   ó4   — e Zd Zd„ Zd„ Zd„ Zd	d„Zd„ Zd„ ZdS )
ÚTestConvolvec                 ó>  — g d¢}g d¢}g d¢}t          ||d¦  «        }t          ||¦  «         t          ||d¦  «        }t          ||¦  «         g d¢}ddg}ddg}t          ||d¦  «        }t          ||¦  «         t          ||d¦  «        }t          ||¦  «         d S )	N)rH   rI   rC   rF   rE   rC   )	rI   rC   rD   rE   rC   rD   rI   rI   rH   )éF   éN   éI   éA   r’   )y      ð?      @ù       @      ð¿y      @        ù       @      Àù      ð?        y       @      $À)r   r   ©rR   rS   rT   ÚexpectedÚouts        rV   Útest_valid_mode2zTestConvolve.test_valid_mode2�   sÌ   € àÐÐˆØ'Ð'Ð'ˆØ#Ð#Ð#ˆå�q˜!˜WÑ%Ô%ˆÝ˜3 Ñ)Ô)Ð)å�q˜!˜WÑ%Ô%ˆÝ˜3 Ñ)Ô)Ð)à$Ð$Ð$ˆØ�VÐˆØ˜GÐ$ˆå�q˜!˜WÑ%Ô%ˆÝ˜3 Ñ)Ô)Ð)å�q˜!˜WÑ%Ô%ˆÝ˜3 Ñ)Ô)Ð)Ð)Ð)rX   c                 óz   — g d¢}g d¢}t          ||d¦  «        }t          g d¢¦  «        }t          ||¦  «         d S )N)rH   rI   rC   rC   rH   rI   )rH   rD   rC   rD   rE   rF   r   rD   rC   rI   rH   rH   rC   r[   )é9   é=   é?   r¶   é-   é$   rˆ   r‰   s        rV   Útest_same_modezTestConvolve.test_same_mode¥   sS   € ØÐÐˆØ3Ð3Ð3ˆÝ�Q˜˜6Ñ"Ô"ˆÝÐ*Ð*Ð*Ñ+Ô+ˆÝ˜1˜aÑ Ô Ð Ð Ð rX   c                 ó"  — t          j        dd¦  «                             d¦  «        }t          j        dd¦  «                             d¦  «        }t          t          t
          g||f¢R i ddi¤Ž t          t          t
          g||f¢R i ddi¤Ž d S ©	NrH   r   ©rI   rC   éúÿÿÿr   ©rC   rI   r]   r’   )rr   r   rs   rŸ   r    r   r¡   s      rV   Útest_invalid_shapesz TestConvolve.test_invalid_shapes¬   s˜   € õ ŒI�a˜‰OŒO×#Ò# FÑ+Ô+ˆÝŒI�b˜!ÑÔ×$Ò$ VÑ,Ô,ˆå•j¥(ÐI¨a°¨VÐIÐIÐI¸ÀÐ7HÐIÐIÐIÝ•j¥(ÐI¨a°¨VÐIÐIÐI¸ÀÐ7HÐIÐIÐIÐIÐIrX   éd   c                 ót  ‡‡	‡
‡— h d£Š	ˆ	fd„‰	D ¦   «         }t           j                             d¦  «         t           j                             ddg|¬¦  «        t           j                             |¦  «        dœ}|d         x|d	<   |d
<   |d         d|d         z  z   |d<   |D �]\  }}Š|t          j        |¦  «        j                                      |¦  «        Š
|t          j        |¦  «        j                                      |¦  «        Šˆˆ
ˆfd„dD ¦   «         }t          |d         j        |d         j        ¦  «         d|v r#d|v rt          t          ‰
‰¦  «        d¦  «         ŒÈt          d„ ||fD ¦   «         ¦  «        rdddœ}nd||fv rdddœ}ndddœ}t          |d         |d         fi |¤Ž �Œd S )N>   ÚboolÚint8Úint16Úint32Úint64Úuint8Úuint16Úuint32Úuint64Úfloat16Úfloat32Úfloat64Ú	complex64Ú
complex128c                 ó.   •— g | ]}‰D ]}d D ]}|||f‘ŒŒŒS ))r’   r‘   r[   r¦   )Ú.0Út1Út2r]   Útypess       €rV   ú
<listcomp>z5TestConvolve.test_convolve_method.<locals>.<listcomp>¿   sb   ø€ ð Fð Fð F 2¸ð Fð F°2Ø+DðFð FØ#'ð �R˜�ð Fð Fð Fð Fð FrX   é*   r   rH   ©Úsize)ru   Úfru   rT   ÚurÛ   ù              à?rU   c           	      ó8   •— i | ]}|t          ‰‰|‰¬ ¦  «        “ŒS ))rq   r]   )r   )rÓ   Úkeyr]   Úx1Úx2s     €€€rV   ú
<dictcomp>z5TestConvolve.test_convolve_method.<locals>.<dictcomp>Î   s<   ø€ ð 5ð 5ð 5Øð �H R¨°C¸dÐCÑCÔCð 5ð 5ð 5rX   )r   ro   r   ro   rÄ   c                 ó   — g | ]}|d v ‘ŒS )>   rÎ   rÐ   r¦   )rÓ   Úts     rV   r×   z5TestConvolve.test_convolve_method.<locals>.<listcomp>Ù   s   € ÐDÐDÐD°a�AÐ1Ð1ÐDÐDÐDrX   ç-Cëâ6?g�íµ ÷Æ°>©ÚrtolÚatolrÍ   çü©ñÒMbP?çñhãˆµøä>ç:Œ0âŽyE>)rr   ÚrandomÚseedÚchoiceÚrandnÚdtypeÚkindÚastyper
   r    Úanyr   )rR   ÚnÚargsÚarray_typesrÔ   rÕ   ÚresultsÚkwargsr]   rÖ   rà   rá   s           @@@@rV   Útest_convolve_methodz!TestConvolve.test_convolve_method¸   s;  øøøø€ ð4ð 4ð 4ˆðFð Fð Fð F¨ð Fñ Fô Fˆõ
 	Œ	�Š�rÑÔÐÝœI×,Ò,¨a°¨V¸!Ð,Ñ<Ô<ÝœIŸOšO¨AÑ.Ô.ð0ð 0ˆà.9¸#Ô.>Ð>ˆ�CÑ˜; sÑ+Ø& sÔ+¨d°;¸sÔ3CÑ.CÑCˆ�CÑà ð 	Iñ 	I‰LˆB��DØ�RœX b™\œ\Ô.Ô/×6Ò6°rÑ:Ô:ˆBØ�RœX b™\œ\Ô.Ô/×6Ò6°rÑ:Ô:ˆBð5ð 5ð 5ð 5ð 5ð 5Ø"3ð5ñ 5ô 5ˆGõ ˜ œÔ-¨w°xÔ/@Ô/FÑGÔGÐGà˜ˆ|ˆ| ¨"  ÝÕ/°°BÑ7Ô7¸ÑBÔBÐBØõ ÐDÐD¸BÀ¸8ÐDÑDÔDÑEÔEð 6Ø"(°$Ð7Ð7��Ø˜r 2˜hÐ&Ð&à"&°Ð5Ð5��ð #'°Ð5Ð5�å˜G EœN¨G°HÔ,=ÐHÐHÀÐHÐHÐHÑHð1	Ið 	IrX   c                 ó$  — dD ]Œ}t          j        d|z  gt           j        ¬¦  «        }t          ||d¬¦  «        }t          ||d¬¦  «        }|dk     r<t	          ||¦  «         t	          |dd|z  z  ¦  «         t	          |dd|z  z  ¦  «         Œ�d S )N)	rJ   é   é2   é3   é4   é5   é6   é<   rƒ   rI   ©rð   r   rp   ro   rü   )rr   r   rÈ   r   r
   )rR   rô   ri   r   ro   s        rV   Ú test_convolve_method_large_inputz-TestConvolve.test_convolve_method_large_inputä   s­   € ð 6ð 
	/ð 
	/ˆAÝ”˜!˜Q™$˜¥r¤xÐ0Ñ0Ô0ˆAÝ˜1˜a¨Ð.Ñ.Ô.ˆCÝ˜a ¨8Ð4Ñ4Ô4ˆFð �2ŠvˆvÝ˜S &Ñ)Ô)Ð)Ý˜S ! a¨¡c¡(Ñ+Ô+Ð+Ý˜V Q¨¨1©¡XÑ.Ô.Ð.øð
	/ð 
	/rX   c                 óv  — t          t          t          dgdd¬¦  «         t          t          t          ddgd¬¦  «         t          t          t          dgdd¬¦  «         t          t          t          ddgd¬¦  «         t          t          t          dgdgg¦  «         t          t          t          dgd¦  «         d S ©NrH   rI   ro   rp   r   rC   rž   ©rR   s    rV   Útest_mismatched_dimsz!TestConvolve.test_mismatched_dimsó   s¤   € å•j¥(¨Q¨C°¸8ÐDÑDÔDÐDÝ•j¥(¨A°¨s¸8ÐDÑDÔDÐDÝ•j¥(¨Q¨C°¸5ÐAÑAÔAÐAÝ•j¥(¨A°¨s¸5ÐAÑAÔAÐAÝ•j¥(¨Q¨C°1°#°Ñ7Ô7Ð7Ý•j¥(¨Q¨C°Ñ3Ô3Ð3Ð3Ð3rX   N)rÂ   )	r£   r¤   r¥   r´   r»   rÁ   rù   r  r  r¦   rX   rV   r¨   r¨   �   s{   € € € € € ð*ð *ð *ð,!ð !ð !ð
Jð 
Jð 
Jð*Ið *Ið *Ið *IðX/ð /ð /ð4ð 4ð 4ð 4ð 4rX   r¨   c                   óö   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
ej                             d	eeg¦  «        ej                             d
dg d¢gfdg d¢gfg¦  «        d„ ¦   «         ¦   «         Zd„ Zd„ Zd„ ZdS )Ú_TestConvolve2dc                 ó–   — g d¢g d¢g}g d¢g d¢g}t          g d¢g d¢g d¢g¦  «        }t          ||¦  «        }t          ||¦  «         d S r|   ©r   r   r   )rR   rS   rT   rŠ   Úes        rV   r‹   z_TestConvolve2d.test_2d_arraysÿ   s|   € ØˆYˆY˜	˜	˜	Ð"ˆØˆYˆY˜	˜	˜	Ð"ˆÝÐ%Ð%Ð%Ø'Ð'Ð'Ø'Ð'Ð'ð)ñ *ô *ˆõ �q˜!ÑÔˆÝ˜1˜aÑ Ô Ð Ð Ð rX   c                 óÎ   — g d¢g d¢g}g d¢g d¢g}t          g d¢g¦  «        }t          ||d¦  «        }t          ||¦  «         t          ||d¦  «        }t          ||¦  «         d S )N©rI   rC   rD   rE   rF   r   r�   ©rD   rE   rF   r   r�   é	   rJ   rG   rZ   ©rƒ   éP   éb   ét   é†   r’   r  ©rR   r  rÛ   ÚhÚgs        rV   Útest_valid_modez_TestConvolve2d.test_valid_mode  sŒ   € Ø"Ð"Ð"Ð$:Ð$:Ð$:Ð;ˆØˆYˆY˜	˜	˜	Ð"ˆÝÐ)Ð)Ð)Ð*Ñ+Ô+ˆå�q˜!˜WÑ%Ô%ˆÝ˜1˜aÑ Ô Ð õ �q˜!˜WÑ%Ô%ˆÝ˜1˜aÑ Ô Ð Ð Ð rX   c                 ó  — g d¢g d¢g}t          j        g d¢g d¢gt          ¬¦  «        dz   }t          g d¢g¦  «        }t          ||d¦  «        }t	          ||¦  «         t          ||d¦  «        }t          ||¦  «         d S )	Nr  r  rG   rZ   r  rŽ   )y      O@      8@y      T@      >@y     €X@      B@y      ]@      E@y     À`@      H@r’   )rr   r   Úcomplexr   r   r   r  s        rV   Útest_valid_mode_complxz&_TestConvolve2d.test_valid_mode_complx  s    € Ø"Ð"Ð"Ð$:Ð$:Ð$:Ð;ˆÝŒH�i�i�i   Ð+µ7Ð;Ñ;Ô;¸bÑ@ˆÝÐGÐGÐGÐHÑIÔIˆå�q˜!˜WÑ%Ô%ˆÝ! ! QÑ'Ô'Ð'õ �q˜!˜WÑ%Ô%ˆÝ˜1˜aÑ Ô Ð Ð Ð rX   c                 ó    — g d¢g d¢g}g d¢g d¢g}d}t          ||dd|¦  «        }t          g d¢g d	¢g d
¢g¦  «        }t          ||¦  «         d S )NrG   rZ   r}   r~   rH   r‘   Úfill)é   é   r†   r^   rM   )rL   é(   rƒ   é@   rþ   )rM   é.   éC   rƒ   é0   ©r   r   r   )rR   rS   rT   ÚfillvalrU   rŠ   s         rV   Útest_fillvaluez_TestConvolve2d.test_fillvalue   s‡   € ØˆYˆY˜	˜	˜	Ð"ˆØˆYˆY˜	˜	˜	Ð"ˆØˆÝ�q˜!˜V V¨WÑ5Ô5ˆÝÐ'Ð'Ð'Ø'Ð'Ð'Ø'Ð'Ð'ð)ñ *ô *ˆõ 	˜1˜aÑ Ô Ð Ð Ð rX   c                 óÊ  — d}t           j                             ¦   «         5 }|                     t          d¦  «         t          t          |¬¦  «        5  t          dggddggd¬¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   d}t          t          |¬¦  «        5  t          dggddggddg¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )	Nz2could not cast `fillvalue` directly to the output zCasting complex values©ÚmatchrH   rI   rŽ   ©Ú	fillvaluez,`fillvalue` must be scalar or an array with )rr   Útestingr   Úfilterr=   rŸ   r    r   )rR   ÚmsgÚsups      rV   Útest_fillvalue_errorsz%_TestConvolve2d.test_fillvalue_errors*  sª  € ØBˆÝŒZ×)Ò)Ñ+Ô+ð 	:¨sØ�JŠJ•~Ð'?Ñ@Ô@Ð@Ý�z°Ð5Ñ5Ô5ð :ð :Ý˜Q˜C˜5 A q 6 (°bÐ9Ñ9Ô9Ð9ð:ð :ð :ñ :ô :ð :ð :ð :ð :ð :ð :øøøð :ð :ð :ð :ð	:ð 	:ð 	:ñ 	:ô 	:ð 	:ð 	:ð 	:ð 	:ð 	:ð 	:øøøð 	:ð 	:ð 	:ð 	:ð
 =ˆÝ�:¨SÐ1Ñ1Ô1ð 	:ð 	:Ý˜˜�u  1˜v˜h°1°a°&Ð9Ñ9Ô9Ð9ð	:ð 	:ð 	:ñ 	:ô 	:ð 	:ð 	:ð 	:ð 	:ð 	:ð 	:ð 	:øøøð 	:ð 	:ð 	:ð 	:ð 	:ð 	:sG   ¡2BÁA7Á+BÁ7A;	Á;BÁ>A;	Á?BÂBÂBÂ1CÃCÃCc                 óL   — t          t          t          dggddggg ¬¦  «         d S )NrH   rI   r,  ©rŸ   r    r   r  s    rV   Útest_fillvalue_emptyz$_TestConvolve2d.test_fillvalue_empty5  s8   € å•j¥*°¨s¨e°q¸!°f°XØ "ð	$ñ 	$ô 	$ð 	$ð 	$ð 	$rX   c                 óš   — g d¢g d¢g}g d¢g d¢g}t          ||dd¦  «        }t          g d¢g d¢g d¢g¦  «        }t          ||¦  «         d S )	NrG   rZ   r}   r~   r‘   Úwrap)r  r  éJ   r  r  )éD   r9  rƒ   r9  r9  r&  r‰   s        rV   Útest_wrap_boundaryz"_TestConvolve2d.test_wrap_boundary:  s€   € ØˆYˆY˜	˜	˜	Ð"ˆØˆYˆY˜	˜	˜	Ð"ˆÝ�q˜!˜V VÑ,Ô,ˆÝÐ'Ð'Ð'Ø'Ð'Ð'Ø'Ð'Ð'ð)ñ *ô *ˆõ 	˜1˜aÑ Ô Ð Ð Ð rX   c                 óš   — g d¢g d¢g}g d¢g d¢g}t          ||dd¦  «        }t          g d¢g d¢g d	¢g¦  «        }t          ||¦  «         d S )
NrG   rZ   r}   r~   r‘   Úsymm)r^   r‚   é,   rƒ   éB   )rþ   r%  rƒ   r  éT   )éR   r«   é\   én   ér   r&  r‰   s        rV   Útest_sym_boundaryz!_TestConvolve2d.test_sym_boundaryC  s€   € ØˆYˆY˜	˜	˜	Ð"ˆØˆYˆY˜	˜	˜	Ð"ˆÝ�q˜!˜V VÑ,Ô,ˆÝÐ'Ð'Ð'Ø'Ð'Ð'Ø)Ð)Ð)ð+ñ ,ô ,ˆõ 	˜1˜aÑ Ô Ð Ð Ð rX   Úfunczboundary, expectedr<  )g     €B@ç      E@ç      F@g     €F@r7  )ç     €E@rG  rF  ç     €C@c                 óš   — t          j        g d¢g¦  «        }t          j        d¦  «        } |||d|¬¦  «        }t          ||¦  «         d S )N)ç       @ç      ð¿ç      @ç      @)rH   é   r[   ©r]   Úboundary)rr   r   Úonesr   )rR   rE  rQ  r²   ÚimageÚkernelÚresults          rV   Útest_same_with_boundaryz'_TestConvolve2d.test_same_with_boundaryL  s\   € õ ”Ð/Ð/Ð/Ð0Ñ1Ô1ˆÝ”˜Ñ!Ô!ˆØ��e˜V¨&¸8ÐDÑDÔDˆõ 	˜6 8Ñ,Ô,Ð,Ð,Ð,rX   c           	      óF  — dd l m} t          j        ddt          ¬¦  «                             dd¦  «        }t          j        ddt          ¬¦  «                             dd¦  «        }t          ||dd	¬
¦  «        }t          ||                     ||d	d¬¦  «        ¦  «         d S )Nr   rH   r†   r  rJ   rC   ée   r[   r7  rP  )r�   r�   )r]   Úorigin)	Úscipy.ndimageÚndimagerr   r   Úfloatrs   r   r   r   )rR   ÚndirS   rT   rU   s        rV   Útest_boundary_extension_samez,_TestConvolve2d.test_boundary_extension_same]  s¢   € ð 	$Ð#Ð#Ð#Ð#Ð#ÝŒI�a˜¥uÐ-Ñ-Ô-×5Ò5°b¸!Ñ<Ô<ˆÝŒI�a˜­Ð.Ñ.Ô.×6Ò6°r¸2Ñ>Ô>ˆÝ�q˜! &°6Ð:Ñ:Ô:ˆÝ˜1˜cŸlšl¨1¨a°fÀX˜lÑNÔNÑOÔOÐOÐOÐOrX   c                 óˆ  — dd l m} t          j        ddt          ¬¦  «                             dd¦  «        }t          j        ddt          ¬¦  «                             dd¦  «        }t          ||dd	¬
¦  «        }t          j        |dd	¦  «        }t          || 	                    ||d	¬¦  «        d d…d d…f         ¦  «         d S )Nr   rH   rJ   r  rC   é%   rF   r‘   r7  rP  )©rC   rC   ra  r\   r�   )
rZ  r[  rr   r   r\  rs   r   Úpadr   r   )rR   r]  rS   rT   rU   Úapads         rV   Útest_boundary_extension_fullz,_TestConvolve2d.test_boundary_extension_fullg  sÅ   € ð 	$Ð#Ð#Ð#Ð#Ð#ÝŒI�a˜¥eÐ,Ñ,Ô,×4Ò4°Q¸Ñ:Ô:ˆÝŒI�a˜¥eÐ,Ñ,Ô,×4Ò4°Q¸Ñ:Ô:ˆÝ�q˜! &°6Ð:Ñ:Ô:ˆÝŒv�aÐ)¨6Ñ2Ô2ˆÝ˜1˜cŸlšl¨4°¸˜lÑ@Ô@ÀÀ"ÀÀcÀrÀcÀÔJÑKÔKÐKÐKÐKrX   c                 ó"  — t          j        dd¦  «                             d¦  «        }t          j        dd¦  «                             d¦  «        }t          t          t
          g||f¢R i ddi¤Ž t          t          t
          g||f¢R i ddi¤Ž d S r½   )rr   r   rs   rŸ   r    r   r¡   s      rV   rÁ   z#_TestConvolve2d.test_invalid_shapesr  s˜   € õ ŒI�a˜‰OŒO×#Ò# FÑ+Ô+ˆÝŒI�b˜!ÑÔ×$Ò$ VÑ,Ô,ˆå•j¥*ÐK°°1¨vÐKÐKÐK¸&À'Ð9JÐKÐKÐKÝ•j¥*ÐK°°1¨vÐKÐKÐK¸&À'Ð9JÐKÐKÐKÐKÐKrX   N)r£   r¤   r¥   r‹   r  r  r(  r2  r5  r:  rD  ÚpytestÚmarkÚparametrizer   r   rV  r^  rd  rÁ   r¦   rX   rV   r	  r	  ý   sH  € € € € € ð!ð !ð !ð
!ð 
!ð 
!ð
!ð 
!ð 
!ð!ð !ð !ð	:ð 	:ð 	:ð$ð $ð $ð
!ð !ð !ð!ð !ð !ð „[×Ò˜V j°+Ð%>Ñ?Ô?Ø„[×ÒÐ1Ø%Ð(@Ð(@Ð(@Ð'AÐBØ%Ð(@Ð(@Ð(@Ð'AÐBðDñEô Eð-ð -ñEô Eñ @Ô?ð-ðPð Pð Pð	Lð 	Lð 	Lð
Lð 
Lð 
Lð 
Lð 
LrX   r	  c                   ó�   — e Zd Zd„ Zd„ Zd„ Zd„ Zej        j	        ej         
                    d¦  «        d„ ¦   «         ¦   «         ZdS )ÚTestConvolve2dc                 ó’   — g d¢g d¢g}g d¢g d¢g}t          ||d¦  «        }t          g d¢g d¢g¦  «        }t          ||¦  «         d S )NrG   rZ   r  r  r[   )rK   rL   r^   )r  r  r  r&  )rR   r  rÛ   r  r  s        rV   r»   zTestConvolve2d.test_same_mode�  ss   € ØˆYˆY˜	˜	˜	Ð"ˆØ"Ð"Ð"Ð$:Ð$:Ð$:Ð;ˆÝ�q˜!˜VÑ$Ô$ˆÝ�<�<�<Ø �=�=ð"ñ #ô #ˆå˜1˜aÑ Ô Ð Ð Ð rX   c                 ób  — g d¢g d¢g}g d¢g d¢g}g d¢g}t          ||d¦  «        }t          ||¦  «         t          ||d¦  «        }t          ||¦  «         ddgd	d
gg}g d¢g d¢g}ddgg}t          ||d¦  «        }t          ||¦  «         t          ||d¦  «        }t          ||¦  «         d S )NrG   rZ   r  r  r  r’   rc   r¯   re   ù      @        )r®   ù      @       @rm  )rm  y      @      ð?y      @      Ày      ;@      ð¿y      G@       @)r   r   )rR   r  rÛ   r²   r³   s        rV   r´   zTestConvolve2d.test_valid_mode2‰  sý   € àˆYˆY˜	˜	˜	Ð"ˆØ"Ð"Ð"Ð$:Ð$:Ð$:Ð;ˆØ*Ð*Ð*Ð+ˆå˜˜A˜wÑ'Ô'ˆÝ˜3 Ñ)Ô)Ð)å˜˜A˜wÑ'Ô'ˆÝ˜3 Ñ)Ô)Ð)à�fÐ ¨Ð/Ð0ˆØ%Ð%Ð%Ð'?Ð'?Ð'?Ð@ˆØ˜hÐ'Ð(ˆå˜˜A˜wÑ'Ô'ˆÝ˜3 Ñ)Ô)Ð)õ ˜˜A˜wÑ'Ô'ˆÝ˜3 Ñ)Ô)Ð)Ð)Ð)rX   c           
      ót  — t          j        d¦  «        }t          j        g d¢¦  «        }dD ]Š}t          t          j        |||¬¦  «        t          j        |||¬¦  «        ¦  «         t          t          j        t          j        |g|g|¬¦  «        ¦  «        t          j        |||¬¦  «        ¦  «         Œ‹d S )NrE   ©gš™™™™™	@gffffffö?rC   ©r‘   r’   r[   r\   )rr   r   r   r   r   r   Úsqueezer   ©rR   rS   rT   r]   s       rV   Útest_consistency_convolve_funcsz.TestConvolve2d.test_consistency_convolve_funcs   sÉ   € åŒI�a‰LŒLˆÝŒH�]�]�]Ñ#Ô#ˆØ-ð 	2ð 	2ˆDÝ¥¤¨A¨q°tÐ <Ñ <Ô <Ý &¤°°1¸4Ð @Ñ @Ô @ñBô Bð Bå¥¤
ÝÔ! 1 #¨ s°Ð6Ñ6Ô6ñ!8ô !8å”  1¨4Ð0Ñ0Ô0ñ2ô 2ð 2ð 2ð	2ð 	2rX   c                 ó¾   — t          t          t          dd¦  «         t          t          t          dgdg¦  «         t          t          t          dgggdggg¦  «         d S )NrC   rD   r4  r  s    rV   Útest_invalid_dimsz TestConvolve2d.test_invalid_dims«  sT   € Ý•j¥*¨a°Ñ3Ô3Ð3Ý•j¥*¨q¨c°A°3Ñ7Ô7Ð7Ý•j¥*°°¨u¨g¸!¸¸°wÑ?Ô?Ð?Ð?Ð?rX   z!Can't create large array for testc                 óÜ  — ddt          j        ¦   «         j        z  z  }t          j        d|z  dz  t          j        ¦   «         j        z  dz  ¦  «         t          j        d|z  t           j        ¬¦  «        }d|d d d…<   t           j        j                             ||dfd¬	¦  «        }t          j
        |ddgg¦  «        }t          j        |dk    ¦  «        }|d
         j        d
k    sJ ‚d S )Nl        éè  rI   éé  g    €„.Ar  rH   )iH  r�   )ÚshapeÚstridesr   )rr   rÈ   Úitemsizer<   Úcheck_free_memoryÚzerosÚlibÚstride_tricksÚ
as_stridedr   r   ÚwhererÚ   )rR   rô   rS   ÚcountÚfailss        rV   Útest_large_arrayzTestConvolve2d.test_large_array°  sÞ   € ð �d�RœX™ZœZÔ0Ñ0Ñ1ˆÝÔ$ Q¨¡U¨T¡\µB´H±J´JÔ4GÑ%GÈ#Ñ%MÑNÔNÐNõ ŒH�T˜A‘X¥R¤XÐ.Ñ.Ô.ˆØˆˆ#ˆ#ˆAˆ#‰ÝŒFÔ ×+Ò+¨A°a¸°YÈ	Ð+ÑRÔRˆåÔ! ! q¨! f XÑ.Ô.ˆÝ”˜ šÑ#Ô#ˆØ�QŒxŒ} Ò!Ð!Ð!Ð!Ð!Ð!rX   N)r£   r¤   r¥   r»   r´   rt  rv  rf  rg  ÚslowÚxfail_on_32bitr…  r¦   rX   rV   rj  rj    s‘   € € € € € ð!ð !ð !ð*ð *ð *ð.	2ð 	2ð 	2ð@ð @ð @ð
 „[ÔØ„[×ÒÐ CÑDÔDð"ð "ñ EÔDñ Ôð"ð "ð "rX   rj  c                   óÐ  — e Zd Zej                             dddddgddgg¦  «        d„ ¦   «         Zej                             dddgddgg¦  «        d„ ¦   «         Zej                             dddddgddgg¦  «        d	„ ¦   «         Zej                             dddgddgg¦  «        d
„ ¦   «         Z	ej                             dddddgddgddgddgddgddgddgddgg
¦  «        d„ ¦   «         Z
ej                             dddgddgddgddgddgddgddgddgg¦  «        d„ ¦   «         Zej                             dddddgddgddgddgddgddgddgddgg
¦  «        d„ ¦   «         Zej                             dddgddgddgddgddgddgddgddgg¦  «        d„ ¦   «         Zej                             dddddgddgg¦  «        d„ ¦   «         Zej                             ddddgdgg¦  «        d„ ¦   «         Zej                             dddddgddgg¦  «        d„ ¦   «         Zej                             dddgg¦  «        d„ ¦   «         Zej                             dddddgddgg¦  «        d„ ¦   «         Zej                             dddgddgg¦  «        d„ ¦   «         Zd„ Zd„ Zd„ Zd„ Zej                             dddddgddgg¦  «        d„ ¦   «         Zej                             dddgddgg¦  «        d„ ¦   «         Zej                             dddgddgddgddgddgddgddgddgg¦  «        d„ ¦   «         Zej        j        ej                             d  e edd!¦  «        ¦  «         e ed"d#¦  «        ¦  «        z   ej                              d$¦  «         !                    d%d&d'¦  «         "                    ¦   «         z   ¦  «        d(„ ¦   «         ¦   «         Z#d)„ Z$dS )*ÚTestFFTConvolveÚaxesÚ Nr   r�   c                 ó¼   — t          g d¢¦  «        }t          g d¢¦  «        }|dk    rt          ||¦  «        }nt          |||¬¦  «        }t          ||¦  «         d S )NrG   ©rH   rD   rJ   rO   ç      "@r‹  ©rŠ  ©r   r   r   ©rR   rŠ  rS   r²   r³   s        rV   Ú	test_realzTestFFTConvolve.test_realÃ  sk   € å�)�)�)ÑÔˆÝÐ+Ð+Ð+Ñ,Ô,ˆà�2Š:ˆ:Ý˜a Ñ#Ô#ˆCˆCå˜a ¨Ð.Ñ.Ô.ˆCå! # xÑ0Ô0Ð0Ð0Ð0rX   rH   c                 óê   — t          g d¢¦  «        }t          g d¢¦  «        }t          j        |ddg¦  «        }t          j        |ddg¦  «        }t          |||¬¦  «        }t	          ||¦  «         d S )NrG   r�  rI   rH   r�  ©r   rr   Útiler   r   r‘  s        rV   Útest_real_axeszTestFFTConvolve.test_real_axesÏ  s{   € å�)�)�)ÑÔˆÝÐ+Ð+Ð+Ñ,Ô,ˆåŒG�A˜˜1�vÑÔˆÝ”7˜8 a¨ VÑ,Ô,ˆå˜!˜Q TÐ*Ñ*Ô*ˆÝ! # xÑ0Ô0Ð0Ð0Ð0rX   c                 ó¼   — t          g d¢¦  «        }t          g d¢¦  «        }|dk    rt          ||¦  «        }nt          |||¬¦  «        }t          ||¦  «         d S )N©rc   ù       @       @y      @      @©rf   y               @y              4@y              8@y              2@r‹  r�  r�  r‘  s        rV   rj   zTestFFTConvolve.test_complexÚ  sn   € åÐ*Ð*Ð*Ñ+Ô+ˆÝÐDÐDÐDÑEÔEˆà�2Š:ˆ:Ý˜a Ñ#Ô#ˆCˆCå˜a ¨Ð.Ñ.Ô.ˆCÝ! # xÑ0Ô0Ð0Ð0Ð0rX   c                 óê   — t          g d¢¦  «        }t          g d¢¦  «        }t          j        |ddg¦  «        }t          j        |ddg¦  «        }t          |||¬¦  «        }t	          ||¦  «         d S )Nr˜  rš  rI   rH   r�  r”  r‘  s        rV   Útest_complex_axesz!TestFFTConvolve.test_complex_axeså  s~   € åÐ*Ð*Ð*Ñ+Ô+ˆÝÐDÐDÐDÑEÔEˆåŒG�A˜˜1�vÑÔˆÝ”7˜8 a¨ VÑ,Ô,ˆå˜!˜Q TÐ*Ñ*Ô*ˆÝ! # xÑ0Ô0Ð0Ð0Ð0rX   éþÿÿÿc                 óÒ   — t          g d¢g d¢g¦  «        }t          g d¢g d¢g d¢g¦  «        }|dk    rt          ||¦  «        }nt          |||¬¦  «        }t          ||¦  «         d S )NrG   r~   ©rH   rD   rJ   rO   r  ©r�   r   é8   r   rº   ©r€   r!  r¬   r  rº   r‹  r�  r�  r‘  s        rV   Útest_2d_real_samez!TestFFTConvolve.test_2d_real_sameð  sš   € õ �9�9�9Ø�9�9ðñ ô ˆåÐ+Ð+Ð+Ø-Ð-Ð-Ø.Ð.Ð.ð0ñ 1ô 1ˆð �2Š:ˆ:Ý˜a Ñ#Ô#ˆCˆCå˜a ¨Ð.Ñ.Ô.ˆCÝ! # xÑ0Ô0Ð0Ð0Ð0rX   rI   c                 ó   — t          g d¢g d¢g¦  «        }t          g d¢g d¢g d¢g¦  «        }t          j        |g d¢¦  «        }t          j        |g d¢¦  «        }t          |||¬¦  «        }t	          ||¦  «         d S )NrG   r~   rŸ  r   r¢  ©rI   rH   rH   r�  r”  r‘  s        rV   Útest_2d_real_same_axesz&TestFFTConvolve.test_2d_real_same_axes  sª   € õ �9�9�9Ø�9�9ðñ ô ˆåÐ+Ð+Ð+Ø-Ð-Ð-Ø.Ð.Ð.ð0ñ 1ô 1ˆõ ŒG�A�y�y�yÑ!Ô!ˆÝ”7˜8 Y Y YÑ/Ô/ˆå˜!˜Q TÐ*Ñ*Ô*ˆÝ! # xÑ0Ô0Ð0Ð0Ð0rX   c                 óÒ   — t          g d¢g d¢g¦  «        }t          g d¢g d¢g d¢g¦  «        }|dk    rt          ||¦  «        }nt          |||¬¦  «        }t          ||¦  «         d S )N©ù      ð?       @ù      @      @y      @      @©rd   y      @      @y      @      @©y      À      @y      $À      4@y      5À      L@y      2À      S@y      &À      N@©y              $@y              F@y             €]@y             €c@y             €^@©rª  y      $@      4@y      5@      L@y      2@      S@y      &@      N@r‹  r�  r�  r‘  s        rV   Útest_2d_complex_samez$TestFFTConvolve.test_2d_complex_same  sŸ   € õ Ð+Ð+Ð+Ø+Ð+Ð+ð-ñ .ô .ˆåØAÐAÐAØ(Ð(Ð(Ø<Ð<Ð<ðñ ô ˆð �2Š:ˆ:Ý˜a Ñ#Ô#ˆCˆCå˜a ¨Ð.Ñ.Ô.ˆCå! # xÑ0Ô0Ð0Ð0Ð0rX   c                 ó   — t          g d¢g d¢g¦  «        }t          g d¢g d¢g d¢g¦  «        }t          j        |g d¢¦  «        }t          j        |g d¢¦  «        }t          |||¬¦  «        }t	          ||¦  «         d S )Nr¨  r«  r¬  r­  r®  r¥  r�  r”  r‘  s        rV   Útest_2d_complex_same_axesz)TestFFTConvolve.test_2d_complex_same_axes6  s¯   € õ Ð+Ð+Ð+Ø+Ð+Ð+ð-ñ .ô .ˆåØAÐAÐAØ(Ð(Ð(Ø<Ð<Ð<ðñ ô ˆõ ŒG�A�y�y�yÑ!Ô!ˆÝ”7˜8 Y Y YÑ/Ô/ˆå˜!˜Q TÐ*Ñ*Ô*ˆÝ! # xÑ0Ô0Ð0Ð0Ð0rX   c                 óz  — t          g d¢¦  «        }t          g d¢¦  «        }t          g d¢¦  «        }t          g d¢¦  «        }|dk    rt          ||d¦  «        }nt          ||d|¬¦  «        }t          ||¦  «         |dk    rt          ||d¦  «        }nt          ||d|¬¦  «        }t          ||¦  «         d S )NrG   ©	rC   rC   rE   rF   r�   r   r  r   rH   ©ç     €A@ç     €D@ç     €G@©	rŽ  g      4@ç      9@rµ  r¶  r·  rI  g      <@rK  r‹  r[   r�  r�  ©rR   rŠ  rS   rT   Ú
expected_1Ú
expected_2r³   s          rV   Útest_real_same_modez#TestFFTConvolve.test_real_same_modeM  sÖ   € å�)�)�)ÑÔˆÝÐ-Ð-Ð-Ñ.Ô.ˆÝ˜?˜?˜?Ñ+Ô+ˆ
ÝÐFÐFÐFÑGÔGˆ
à�2Š:ˆ:Ý˜a  FÑ+Ô+ˆCˆCå˜a  F°Ð6Ñ6Ô6ˆCÝ! # zÑ2Ô2Ð2à�2Š:ˆ:Ý˜a  FÑ+Ô+ˆCˆCå˜a  F°Ð6Ñ6Ô6ˆCÝ! # zÑ2Ô2Ð2Ð2Ð2rX   c                 óÒ  — t          g d¢¦  «        }t          g d¢¦  «        }t          g d¢¦  «        }t          g d¢¦  «        }t          j        |ddg¦  «        }t          j        |ddg¦  «        }t          j        |ddg¦  «        }t          j        |ddg¦  «        }t          ||d|¬¦  «        }t	          ||¦  «         t          ||d|¬¦  «        }t	          ||¦  «         d S )	NrG   r³  r´  r¸  rI   rH   r[   r�  r”  rº  s          rV   Útest_real_same_mode_axesz(TestFFTConvolve.test_real_same_mode_axes`  sò   € å�)�)�)ÑÔˆÝÐ-Ð-Ð-Ñ.Ô.ˆÝ˜?˜?˜?Ñ+Ô+ˆ
ÝÐFÐFÐFÑGÔGˆ
åŒG�A˜˜1�vÑÔˆÝŒG�A˜˜1�vÑÔˆÝ”W˜Z¨!¨Q¨Ñ0Ô0ˆ
Ý”W˜Z¨!¨Q¨Ñ0Ô0ˆ
å˜!˜Q ¨TÐ2Ñ2Ô2ˆÝ! # zÑ2Ô2Ð2å˜!˜Q ¨TÐ2Ñ2Ô2ˆÝ! # zÑ2Ô2Ð2Ð2Ð2rX   c                 óX  — t          g d¢¦  «        }t          g d¢¦  «        }t          g d¢¦  «        }|dk    rt          ||d¦  «        }nt          ||d|¬¦  «        }t          ||¦  «         |dk    rt          ||d¦  «        }nt          ||d|¬¦  «        }t          ||¦  «         d S )N©rC   rI   rH   r³  ©g      8@g      ?@r¶  rH  g     €H@r¹  ç      (@r‹  r’   r�  r�  ©rR   rŠ  rS   rT   r²   r³   s         rV   Útest_valid_mode_realz$TestFFTConvolve.test_valid_mode_realr  sÇ   € õ �)�)�)ÑÔˆÝÐ-Ð-Ð-Ñ.Ô.ˆÝÐ<Ð<Ð<Ñ=Ô=ˆà�2Š:ˆ:Ý˜a  GÑ,Ô,ˆCˆCå˜a  G°$Ð7Ñ7Ô7ˆCÝ! # xÑ0Ô0Ð0à�2Š:ˆ:Ý˜a  GÑ,Ô,ˆCˆCå˜a  G°$Ð7Ñ7Ô7ˆCÝ! # xÑ0Ô0Ð0Ð0Ð0rX   c                 ó<  — t          g d¢¦  «        }t          g d¢¦  «        }t          g d¢¦  «        }t          j        |ddg¦  «        }t          j        |ddg¦  «        }t          j        |ddg¦  «        }t          ||d|¬¦  «        }t	          ||¦  «         d S ©NrÁ  r³  rÂ  rI   rH   r’   r�  r”  rÄ  s         rV   Útest_valid_mode_real_axesz)TestFFTConvolve.test_valid_mode_real_axes…  s¨   € õ �)�)�)ÑÔˆÝÐ-Ð-Ð-Ñ.Ô.ˆÝÐ<Ð<Ð<Ñ=Ô=ˆåŒG�A˜˜1�vÑÔˆÝŒG�A˜˜1�vÑÔˆÝ”7˜8 a¨ VÑ,Ô,ˆå˜!˜Q ¨dÐ3Ñ3Ô3ˆÝ! # xÑ0Ô0Ð0Ð0Ð0rX   c                 óX  — t          g d¢¦  «        }t          g d¢¦  «        }t          g d¢¦  «        }|dk    rt          ||d¦  «        }nt          ||d|¬¦  «        }t          ||¦  «         |dk    rt          ||d¦  «        }nt          ||d|¬¦  «        }t          ||¦  «         d S )N©ù      @      ð¿y       @      @r°   ©rn  y      @      Ày      @        y      @      ð¿y       @        ©y     €F@      (@y      >@      7@y      H@      @@r‹  r’   r�  r�  rÄ  s         rV   Útest_valid_mode_complexz'TestFFTConvolve.test_valid_mode_complex“  sÈ   € åÐ*Ð*Ð*Ñ+Ô+ˆÝÐ:Ð:Ð:Ñ;Ô;ˆÝÐ<Ð<Ð<Ñ=Ô=ˆà�2Š:ˆ:Ý˜a  GÑ,Ô,ˆCˆCå˜a  G°$Ð7Ñ7Ô7ˆCÝ! # xÑ0Ô0Ð0à�2Š:ˆ:Ý˜a  GÑ,Ô,ˆCˆCå˜a  G°$Ð7Ñ7Ô7ˆCÝ! # xÑ0Ô0Ð0Ð0Ð0rX   c                 ó‚  — t          g d¢¦  «        }t          g d¢¦  «        }t          g d¢¦  «        }t          j        |ddg¦  «        }t          j        |ddg¦  «        }t          j        |ddg¦  «        }t          ||d|¬¦  «        }t	          ||¦  «         t          ||d|¬¦  «        }t	          ||¦  «         d S )NrÊ  rÌ  rÍ  rI   rH   r’   r�  r”  rÄ  s         rV   Útest_valid_mode_complex_axesz,TestFFTConvolve.test_valid_mode_complex_axes¥  sÏ   € åÐ*Ð*Ð*Ñ+Ô+ˆÝÐ:Ð:Ð:Ñ;Ô;ˆÝÐ<Ð<Ð<Ñ=Ô=ˆåŒG�A˜˜1�vÑÔˆÝŒG�A˜˜1�vÑÔˆÝ”7˜8 a¨ VÑ,Ô,ˆå˜!˜Q ¨dÐ3Ñ3Ô3ˆÝ! # xÑ0Ô0Ð0å˜!˜Q ¨dÐ3Ñ3Ô3ˆÝ! # xÑ0Ô0Ð0Ð0Ð0rX   c                 ó<  — t          g d¢¦  «        }t          g d¢¦  «        }t          g d¢¦  «        }t          j        |ddg¦  «        }t          j        |ddg¦  «        }t          j        |ddg¦  «        }t          ||dd¬¦  «        }t	          ||¦  «         d S rÇ  r”  r±   s        rV   Útest_valid_mode_ignore_nonaxesz.TestFFTConvolve.test_valid_mode_ignore_nonaxesµ  s¦   € å�)�)�)ÑÔˆÝÐ-Ð-Ð-Ñ.Ô.ˆÝÐ<Ð<Ð<Ñ=Ô=ˆåŒG�A˜˜1�vÑÔˆÝŒG�A˜˜1�vÑÔˆÝ”7˜8 a¨ VÑ,Ô,ˆå˜!˜Q ¨aÐ0Ñ0Ô0ˆÝ! # xÑ0Ô0Ð0Ð0Ð0rX   c                 óð   — t          t          g g ¦  «        j        dk    ¦  «         t          t          ddgg ¦  «        j        dk    ¦  «         t          t          g dg¦  «        j        dk    ¦  «         d S ©Nr   rE   rF   r   )r   r   rÚ   r  s    rV   Ú
test_emptyzTestFFTConvolve.test_emptyÂ  sn   € å•˜B Ñ#Ô#Ô(¨AÒ-Ñ.Ô.Ð.Ý•˜Q ˜F BÑ'Ô'Ô,°Ò1Ñ2Ô2Ð2Ý•˜B  Ñ$Ô$Ô)¨QÒ.Ñ/Ô/Ð/Ð/Ð/rX   c                 óˆ   — t          d¦  «        }t          d¦  «        }t          ||¦  «        }t          |||z  ¦  «         d S ry   ©r   r   r
   ©rR   rS   rT   r³   s       rV   rl   zTestFFTConvolve.test_zero_rankÈ  sA   € Ý�$‰KŒKˆÝ�$‰KŒKˆÝ˜!˜QÑÔˆÝ�S˜!˜a™%Ñ Ô Ð Ð Ð rX   c                 óŒ   — t          dg¦  «        }t          dg¦  «        }t          ||¦  «        }t          |||z  ¦  «         d S ry   r×  rØ  s       rV   rz   z#TestFFTConvolve.test_single_elementÎ  sE   € Ý�4�&‰MŒMˆÝ�4�&‰MŒMˆÝ˜!˜QÑÔˆÝ�S˜!˜a™%Ñ Ô Ð Ð Ð rX   c                 ó  — t           j                             d¦  «         t           j                             d¦  «        dt           j                             d¦  «        z  z   }t           j                             d¦  «        dt           j                             d¦  «        z  z   }t          j        ||d¦  «        }|dk    rt          ||d¦  «        }nt          ||d|¬¦  «        }t          t          j        ||d¬	¦  «        ¦  «         d S )
NéÒ  éÑ  rŽ   é)  r‘   r‹  r�  ç»½×Ùß|Û=©rç   )rr   rì   rí   Úrandr   r   r   ÚallcloserÄ  s         rV   Útest_random_dataz TestFFTConvolve.test_random_dataÔ  sÖ   € å
Œ	�Š�tÑÔÐÝŒI�NŠN˜4Ñ Ô  2­¬	¯ª°tÑ(<Ô(<Ñ#<Ñ<ˆÝŒI�NŠN˜4Ñ Ô  2­¬	¯ª°tÑ(<Ô(<Ñ#<Ñ<ˆÝ”;˜q ! VÑ,Ô,ˆà�2Š:ˆ:Ý˜a  FÑ+Ô+ˆCˆCå˜a  F°Ð6Ñ6Ô6ˆCÝ•”˜C °Ð6Ñ6Ô6Ñ7Ô7Ð7Ð7Ð7rX   c                 óp  — t           j                             d¦  «         t           j                             d¦  «        dt           j                             d¦  «        z  z   }t           j                             d¦  «        dt           j                             d¦  «        z  z   }t          j        ||d¦  «        }t          j        |ddg¦  «        }t          j        |ddg¦  «        }t          j        |ddg¦  «        }t          ||d|¬¦  «        }t          t          j        ||d	¬
¦  «        ¦  «         d S )NrÛ  rÜ  rŽ   rÝ  r‘   rI   rH   r�  rÞ  rß  )	rr   rì   rí   rà  r   r•  r   r   rá  rÄ  s         rV   Útest_random_data_axesz%TestFFTConvolve.test_random_data_axesá  sù   € å
Œ	�Š�tÑÔÐÝŒI�NŠN˜4Ñ Ô  2­¬	¯ª°tÑ(<Ô(<Ñ#<Ñ<ˆÝŒI�NŠN˜4Ñ Ô  2­¬	¯ª°tÑ(<Ô(<Ñ#<Ñ<ˆÝ”;˜q ! VÑ,Ô,ˆåŒG�A˜˜1�vÑÔˆÝŒG�A˜˜1�vÑÔˆÝ”7˜8 a¨ VÑ,Ô,ˆå˜!˜Q ¨TÐ2Ñ2Ô2ˆÝ•”˜C °Ð6Ñ6Ô6Ñ7Ô7Ð7Ð7Ð7rX   rD   éüÿÿÿc                 óP  — d\  }}t           j                             d¦  «         t          j        j        |Ž dt          j        j        |Ž z  z   }t          j        j        |Ž dt          j        j        |Ž z  z   }t	          ||d¦  «        }|d d …d d …d d d f         }|d d …d d …d d d f         }|d d …d d …d d d f         }t          j        |                     dd¦  «        dd¦  «        }t          j        |                     dd¦  «        dd¦  «        }t          j        |                     dd¦  «        dd¦  «        }t          j        |g d	¢¦  «        }t          j        |g d
¢¦  «        }t          j        |g d¢¦  «        }t          ||d|¬¦  «        }t          ||dd¬¦  «         d S )N))é{   rK   )é„   é   rÛ  rŽ   r‘   r   rI   rH   rD   )rI   rH   rC   rH   rH   )rI   rH   rH   rD   rH   )rI   rH   rC   rD   rH   r�  rÞ  ræ   )
rr   rì   rí   rà  r   ÚmoveaxisÚswapaxesr•  r   r   )rR   rŠ  Úa_shaperv   rS   rT   r²   r³   s           rV   Útest_random_data_multidim_axesz.TestFFTConvolve.test_random_data_multidim_axesï  s¥  € ð 0Ñˆ�Ý
Œ	�Š�tÑÔÐÝŒIŒN˜GÐ$ r­B¬I¬N¸GÐ,DÑ'DÑDˆÝŒIŒN˜GÐ$ r­B¬I¬N¸GÐ,DÑ'DÑDˆÝ˜a  FÑ+Ô+ˆàˆaˆaˆa����D˜$ Ð$Ô%ˆØˆaˆaˆa����D˜$ Ð$Ô%ˆØ˜A˜A˜A˜q˜q˜q $¨¨dÐ2Ô3ˆåŒK˜Ÿ
š
 1 aÑ(Ô(¨!¨QÑ/Ô/ˆÝŒK˜Ÿ
š
 1 aÑ(Ô(¨!¨QÑ/Ô/ˆÝ”;˜x×0Ò0°°AÑ6Ô6¸¸1Ñ=Ô=ˆõ ŒG�A���Ñ'Ô'ˆÝŒG�A���Ñ'Ô'ˆÝ”7˜8 _ _ _Ñ5Ô5ˆå˜!˜Q ¨TÐ2Ñ2Ô2ˆÝ˜˜X¨E¸Ð>Ñ>Ô>Ð>Ð>Ð>rX   rô   rÂ   rx  iÜ  rÛ  ry  é'  rE   c                 óÌ  — t           j                             |¦  «        dt           j                             |¦  «        z  z   }t           j                             |¦  «        dt           j                             |¦  «        z  z   }t          j        ||d¦  «        }t	          ||d¦  «        }t          ||d¬¦  «         t	          ||ddg¬¦  «        }t          ||d¬¦  «         d S )NrŽ   r‘   rÞ  ©rè   r   r�  )rr   rì   rà  r   r   r   )rR   rô   rS   rT   r²   r³   s         rV   Útest_many_sizeszTestFFTConvolve.test_many_sizes  sÆ   € õ ŒI�NŠN˜1ÑÔ ¥R¤Y§^¢^°AÑ%6Ô%6Ñ 6Ñ6ˆÝŒI�NŠN˜1ÑÔ ¥R¤Y§^¢^°AÑ%6Ô%6Ñ 6Ñ6ˆÝ”;˜q ! VÑ,Ô,ˆå˜!˜Q Ñ'Ô'ˆÝ˜˜X¨EÐ2Ñ2Ô2Ð2å˜!˜Q ¨a¨SÐ1Ñ1Ô1ˆÝ˜˜X¨EÐ2Ñ2Ô2Ð2Ð2Ð2rX   c                 óv  — d}t           j                             d¦  «        }|                     |¦  «        }t           j        t           j        fD ]i}||d<   t          j        dd¦  «        }d}t          j	        t          |¬¦  «        5  t          j        ||dd	¬
¦  «         d d d ¦  «         n# 1 swxY w Y   Œjd S )Nrx  l   [<zn( rÂ   éÈ   çš™™™™™É?z4Use of fft convolution.*|invalid value encountered.*r*  r[   r   r›   )rr   rì   Údefault_rngÚstandard_normalÚnanÚinfr   Úfirwinrf  ÚwarnsÚRuntimeWarningr   )rR   rô   ÚrngÚsig_nanÚvalÚcoeffsr0  s          rV   Útest_fft_nanzTestFFTConvolve.test_fft_nan  s	  € ØˆÝŒi×#Ò# KÑ0Ô0ˆØ×%Ò% aÑ(Ô(ˆå”F�BœFÐ#ð 	Lð 	LˆCØˆG�C‰LÝ”] 3¨Ñ,Ô,ˆFàHˆCÝ”�n°CÐ8Ñ8Ô8ð Lð LÝ” ¨°fÀUÐKÑKÔKÐKðLð Lð Lñ Lô Lð Lð Lð Lð Lð Lð Løøøð Lð Lð Lð Løð	Lð 	Ls   ÂB-Â-B1	Â4B1	)%r£   r¤   r¥   rf  rg  rh  r’  r–  rj   rœ  r£  r¦  r¯  r±  r½  r¿  rÅ  rÈ  rÎ  rÐ  rÒ  rÕ  rl   rz   râ  rä  rí  r†  Úlistrt   rr   rì   ÚRandomStateÚrandintÚtolistrñ  r   r¦   rX   rV   r‰  r‰  Á  s"  € € € € € à„[×Ò˜V b¨$°°A°3¸¸R¸DÐ%AÑBÔBð	1ð 	1ñ CÔBð	1ð „[×Ò˜V a¨!¨¨b°2°$Ð%7Ñ8Ô8ð1ð 1ñ 9Ô8ð1ð „[×Ò˜V b¨$°°A°3¸¸R¸DÐ%AÑBÔBð1ð 1ñ CÔBð1ð „[×Ò˜V a¨!¨¨b°2°$Ð%7Ñ8Ô8ð1ð 1ñ 9Ô8ð1ð „[×Ò˜V bØ&*Ø'(¨! fØ'(¨! fØ'(¨" gØ')¨1 gØ')¨1 gØ'(¨" gØ')¨2 hØ')¨2 hð	&0ñ 	1ô 	1ð1ð 1ñ	1ô 	1ð1ð „[×Ò˜V q¨! fØ'(¨! fØ'(¨" gØ')¨1 gØ')¨1 gØ'(¨" gØ')¨2 hØ')¨2 hð&0ñ 1ô 1ð1ð 1ñ1ô 1ð1ð „[×Ò˜V bØ&*Ø'(¨! fØ'(¨! fØ'(¨" gØ')¨1 gØ')¨1 gØ'(¨" gØ')¨2 hØ')¨2 hð	&0ñ 	1ô 	1ð1ð 1ñ	1ô 	1ð1ð  „[×Ò˜V q¨! fØ'(¨! fØ'(¨" gØ')¨1 gØ')¨1 gØ'(¨" gØ')¨2 hØ')¨2 hð&0ñ 1ô 1ð1ð 1ñ1ô 1ð1ð „[×Ò˜V b¨$°°A°3¸¸R¸DÐ%AÑBÔBð3ð 3ñ CÔBð3ð$ „[×Ò˜V a¨¨a¨S°2°$Ð%7Ñ8Ô8ð3ð 3ñ 9Ô8ð3ð" „[×Ò˜V b¨$°°A°3¸¸R¸DÐ%AÑBÔBð1ð 1ñ CÔBð1ð$ „[×Ò˜V a¨!¨ XÑ.Ô.ð1ð 1ñ /Ô.ð1ð „[×Ò˜V b¨$°°A°3¸¸R¸DÐ%AÑBÔBð1ð 1ñ CÔBð1ð" „[×Ò˜V a¨!¨¨b°2°$Ð%7Ñ8Ô8ð1ð 1ñ 9Ô8ð1ð1ð 1ð 1ð0ð 0ð 0ð!ð !ð !ð!ð !ð !ð „[×Ò˜V b¨$°°A°3¸¸R¸DÐ%AÑBÔBð
8ð 
8ñ CÔBð
8ð „[×Ò˜V a¨!¨¨b°2°$Ð%7Ñ8Ô8ð8ð 8ñ 9Ô8ð8ð „[×Ò˜V q¨! fØ'(¨! fØ'(¨" gØ')¨1 gØ')¨1 gØ'(¨" gØ')¨2 hØ')¨2 hð&0ñ 1ô 1ð?ð ?ñ1ô 1ð?ð. „[ÔØ„[×ÒØØˆˆUˆU�1�c‰]Œ]ÑÔØˆˆUˆU�4˜ÑÔÑÔñ	 à
Œ	×Ò˜dÑ#Ô#×+Ò+¨D°%¸Ñ;Ô;×BÒBÑDÔDñ	EñFô Fð
	3ð 	3ñFô Fñ Ôð	3ðLð Lð Lð Lð LrX   r‰  c                  ó    — t          d¦  «        ‚)NzFell back to fftconvolve)ÚRuntimeError)rõ   rø   s     rV   Úfftconvolve_errr  ,  s   € Ý
Ð1Ñ
2Ô
2Ð2rX   c                 ó8   — d„ t          | d¬¦  «        D ¦   «         S )Nc                 óH   — g | ]\  }}t          ||z
  ¦  «        d k    ¯||f‘Œ S )rC   )Úabs©rÓ   rS   rT   s      rV   r×   z!gen_oa_shapes.<locals>.<listcomp>1  s:   € ð ð ð ‘t�q˜!Ý�1�q‘5‰zŒz˜AŠ~ˆ~ð �ˆFØˆ~ˆ~rX   rI   ©Úrepeatr   ©Úsizess    rV   Úgen_oa_shapesr  0  s/   € ðð �w u°QÐ7Ñ7Ô7ð ñ ô ð rX   c                 ó®   — t          | ¦  «        }t          | ¦  «        }d„ t          ||¦  «        D ¦   «         }g d¢}d„ t          ||¦  «        D ¦   «         S )Nc                 ó   — g | ]
\  }}||z   ‘ŒS r¦   r¦   )rÓ   Úishapes0Úishapes1s      rV   r×   z$gen_oa_shapes_2d.<locals>.<listcomp>8  s.   € ð %ð %ð %Ñ$6 H¨hˆh�xÑð %ð %ð %rX   rq  c                 ó¼   — g | ]Y\  }}|d k    sH|d         |d         k    r|d         |d         k    s$|d         |d         k     ¯A|d         |d         k     ¯S||fz   ‘ŒZS )r’   r   rH   rI   rC   r¦   )rÓ   ÚishapesÚimodes      rV   r×   z$gen_oa_shapes_2d.<locals>.<listcomp><  s‡   € ð Cð Cð C¡ ¨%Ø˜ÒÐØ�QŒZ˜' !œ*Ò$Ð$¨°¬°g¸a´jÒ)@Ð)@Ø�QŒZ˜' !œ*Ò$Ð$¨°¬°g¸a´jÒ)@Ð)@ð �U�HÑð *AÐ)@Ð)@rX   )r  Úzipr   )r  Úshapes0Úshapes1ÚshapesÚmodess        rV   Úgen_oa_shapes_2dr  5  s�   € Ý˜EÑ"Ô"€GÝ˜EÑ"Ô"€Gð%ð %Ý�'˜7Ñ#Ô#ð%ñ %ô %€Fð &Ð%Ð%€EðCð Cµ7¸6À5Ñ3IÔ3Ið Cñ Cô Cð CrX   c                 ó8   — d„ t          | d¬¦  «        D ¦   «         S )Nc                 ó(   — g | ]\  }}||k    ¯||f‘ŒS r¦   r¦   r  s      rV   r×   z$gen_oa_shapes_eq.<locals>.<listcomp>C  s0   € ð ð ð ‘t�q˜!Ø�AŠvˆvð �ˆFØˆvˆvrX   rI   r  r   r  s    rV   Úgen_oa_shapes_eqr   B  s/   € ðð �w u°QÐ7Ñ7Ô7ð ñ ô ð rX   c                   óØ  — e Zd Zej                             ¦   «         ej                             d e e e	d¦  «        ¦  «         e e	ddd¦  «        ¦  «        z   ¦  «        ¦  «        d„ ¦   «         ¦   «         Z
ej                             d eg d¢¦  «        ¦  «        ej                             ddd	g¦  «        ej                             d
g d¢¦  «        d„ ¦   «         ¦   «         ¦   «         Zej                             dddg¦  «        ej                             d eg d¢¦  «        ¦  «        ej                             dddg¦  «        ej                             dddg¦  «        ej                             ddd	g¦  «        ej                             d
g d¢¦  «        d„ ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         Zej                             d eg d¢¦  «        ¦  «        ej                             ddd	g¦  «        d„ ¦   «         ¦   «         Zej                             dddgddgddgg¦  «        ej                             d eg d¢¦  «        ¦  «        ej                             dddg¦  «        ej                             dddg¦  «        ej                             ddd	g¦  «        d„ ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         Zd„ Zd„ Zd„ ZdS )ÚTestOAConvolvezshape_a_0, shape_b_0rÂ   rx  rN   c                 óâ   — t           j                             |¦  «        }t           j                             |¦  «        }t          ||¦  «        }t	          ||¦  «        }t          ||¦  «         d S ©N)rr   rì   rà  r   r   r   )rR   Ú	shape_a_0Ú	shape_b_0rS   rT   r²   r³   s          rV   Útest_real_manylensz!TestOAConvolve.test_real_manylensH  s^   € õ ŒI�NŠN˜9Ñ%Ô%ˆÝŒI�NŠN˜9Ñ%Ô%ˆå˜q !Ñ$Ô$ˆÝ˜˜AÑÔˆå! # xÑ0Ô0Ð0Ð0Ð0rX   )rü   é/   rF   rD   rH   Ú
is_complexTFr]   rq  c                 óÎ  — t           j                             |¦  «        }t           j                             |¦  «        }|rJ|dt           j                             |¦  «        z  z   }|dt           j                             |¦  «        z  z   }t          |||¬¦  «        }|                     t
          j        dt          ¦  «         t          |||¬¦  «        }	t          |	|¦  «         d S ©NrŽ   r\   r   ©
rr   rì   rà  r   Úsetattrr   Ú_signaltoolsr  r   r   )
rR   r%  r&  r)  r]   ÚmonkeypatchrS   rT   r²   r³   s
             rV   Útest_1d_noaxeszTestOAConvolve.test_1d_noaxesV  sÌ   € õ ŒI�NŠN˜9Ñ%Ô%ˆÝŒI�NŠN˜9Ñ%Ô%ˆØð 	1Ø�B•r”y—~’~ iÑ0Ô0Ñ0Ñ0ˆAØ�B•r”y—~’~ iÑ0Ô0Ñ0Ñ0ˆAå˜q !¨$Ð/Ñ/Ô/ˆà×Ò�FÔ/°Ý+ñ	-ô 	-ð 	-å˜˜A DÐ)Ñ)Ô)ˆå! # xÑ0Ô0Ð0Ð0Ð0rX   rŠ  r   rH   )rü   r(  rF   rD   Úshape_a_extrarC   Úshape_b_extrac	                 óž  — |gdz  }	|gdz  }
||	|<   ||
|<   t          j        j        |	Ž }t          j        j        |
Ž }|r2|dt          j        j        |	Ž z  z   }|dt          j        j        |
Ž z  z   }t          ||||¬¦  «        }|                     t
          j        dt          ¦  «         t          ||||¬¦  «        }t          ||¦  «         d S )NrI   rŽ   ©r]   rŠ  r   r,  )rR   rŠ  r%  r&  r1  r2  r)  r]   r/  Úax_aÚax_brS   rT   r²   r³   s                  rV   Útest_1d_axeszTestOAConvolve.test_1d_axesj  sæ   € ð ˆ˜qÑ ˆØˆ˜qÑ ˆØˆˆT‰
ØˆˆT‰
åŒIŒN˜DÐ!ˆÝŒIŒN˜DÐ!ˆØð 	-Ø�B•r”y”~ tÐ,Ñ,Ñ,ˆAØ�B•r”y”~ tÐ,Ñ,Ñ,ˆAå˜q !¨$°TÐ:Ñ:Ô:ˆà×Ò�FÔ/°Ý+ñ	-ô 	-ð 	-å˜˜A D¨tÐ4Ñ4Ô4ˆå! # xÑ0Ô0Ð0Ð0Ð0rX   z0shape_a_0, shape_b_0, shape_a_1, shape_b_1, modec                 óÖ  — t           j                             ||¦  «        }t           j                             ||¦  «        }	|rL|dt           j                             ||¦  «        z  z   }|	dt           j                             ||¦  «        z  z   }	t          ||	|¬¦  «        }
|                     t
          j        dt          ¦  «         t          ||	|¬¦  «        }t          ||
¦  «         d S r+  r,  )rR   r%  r&  Ú	shape_a_1Ú	shape_b_1r]   r)  r/  rS   rT   r²   r³   s               rV   Útest_2d_noaxeszTestOAConvolve.test_2d_noaxes‡  sÔ   € õ ŒI�NŠN˜9 iÑ0Ô0ˆÝŒI�NŠN˜9 iÑ0Ô0ˆØð 	<Ø�B•r”y—~’~ i°Ñ;Ô;Ñ;Ñ;ˆAØ�B•r”y—~’~ i°Ñ;Ô;Ñ;Ñ;ˆAå˜q !¨$Ð/Ñ/Ô/ˆà×Ò�FÔ/°Ý+ñ	-ô 	-ð 	-å˜˜A DÐ)Ñ)Ô)ˆå! # xÑ0Ô0Ð0Ð0Ð0rX   rI   c                 óâ  — |gdz  }|gdz  }|||d         <   |||d         <   |||d         <   |||d         <   t          j        j        |Ž }t          j        j        |Ž }|	r2|dt          j        j        |Ž z  z   }|dt          j        j        |Ž z  z   }t          ||||¬¦  «        }|
                     t
          j        dt          ¦  «         t          ||||¬¦  «        }t          ||¦  «         d S )NrC   r   rH   rŽ   r4  r   r,  )rR   rŠ  r%  r&  r9  r:  r]   r1  r2  r)  r/  r5  r6  rS   rT   r²   r³   s                    rV   Útest_2d_axeszTestOAConvolve.test_2d_axesœ  s  € ð ˆ˜qÑ ˆØˆ˜qÑ ˆØ!ˆˆT�!ŒW‰Ø!ˆˆT�!ŒW‰Ø!ˆˆT�!ŒW‰Ø!ˆˆT�!ŒW‰åŒIŒN˜DÐ!ˆÝŒIŒN˜DÐ!ˆØð 	-Ø�B•r”y”~ tÐ,Ñ,Ñ,ˆAØ�B•r”y”~ tÐ,Ñ,Ñ,ˆAå˜q !¨$°TÐ:Ñ:Ô:ˆà×Ò�FÔ/°Ý+ñ	-ô 	-ð 	-å˜˜A D¨tÐ4Ñ4Ô4ˆå! # xÑ0Ô0Ð0Ð0Ð0rX   c                 óð   — t          t          g g ¦  «        j        dk    ¦  «         t          t          ddgg ¦  «        j        dk    ¦  «         t          t          g dg¦  «        j        dk    ¦  «         d S rÔ  )r   r   rÚ   r  s    rV   rÕ  zTestOAConvolve.test_empty¼  sn   € å•
˜2˜rÑ"Ô"Ô'¨1Ò,Ñ-Ô-Ð-Ý•
˜A˜q˜6 2Ñ&Ô&Ô+¨qÒ0Ñ1Ô1Ð1Ý•
˜2 ˜sÑ#Ô#Ô(¨AÒ-Ñ.Ô.Ð.Ð.Ð.rX   c                 óˆ   — t          d¦  «        }t          d¦  «        }t          ||¦  «        }t          |||z  ¦  «         d S ry   ©r   r   r
   rØ  s       rV   rl   zTestOAConvolve.test_zero_rankÂ  sA   € Ý�$‰KŒKˆÝ�$‰KŒKˆÝ˜˜AÑÔˆÝ�S˜!˜a™%Ñ Ô Ð Ð Ð rX   c                 óŒ   — t          dg¦  «        }t          dg¦  «        }t          ||¦  «        }t          |||z  ¦  «         d S ry   r@  rØ  s       rV   rz   z"TestOAConvolve.test_single_elementÈ  sE   € Ý�4�&‰MŒMˆÝ�4�&‰MŒMˆÝ˜˜AÑÔˆÝ�S˜!˜a™%Ñ Ô Ð Ð Ð rX   N)r£   r¤   r¥   rf  rg  r†  rh  r   r  rt   r'  r  r0  r7  r  r;  r=  rÕ  rl   rz   r¦   rX   rV   r"  r"  G  s’  € € € € € Ø„[×ÒÑÔØ„[×ÒÐ3Ø-Ð-¨d¨d°5°5¸±:´:Ñ.>Ô.>Ø.2¨d°5°5¸¸dÀBÑ3GÔ3GÑ.HÔ.Hñ/Iñ Jô Jñô ð1ð 1ñ	ô ñ Ôð
1ð „[×ÒÐ3Ø*˜]Ð+<Ð+<Ð+<Ñ=Ô=ñ?ô ?à„[×Ò˜\¨D°%¨=Ñ9Ô9Ø„[×Ò˜VÐ%>Ð%>Ð%>Ñ?Ô?ð1ð 1ñ @Ô?ñ :Ô9ñ?ô ?ð1ð  „[×Ò˜V a¨ VÑ,Ô,Ø„[×ÒÐ3Ø*˜]¨>¨>¨>Ñ:Ô:ñ<ô <à„[×Ò˜_¨q°!¨fÑ5Ô5Ø„[×Ò˜_¨q°!¨fÑ5Ô5Ø„[×Ò˜\¨D°%¨=Ñ9Ô9Ø„[×Ò˜VÐ%>Ð%>Ð%>Ñ?Ô?ð1ð 1ñ @Ô?ñ :Ô9ñ 6Ô5ñ 6Ô5ñ<ô <ñ -Ô,ð1ð, „[×Òð :à-Ð-¨n¨n¨nÑ=Ô=ñ?ô ?ð „[×Ò˜\¨D°%¨=Ñ9Ô9ð1ð 1ñ :Ô9ñ?ô ?ð1ð" „[×Ò˜V q¨! f¨q°!¨f°q¸!°fÐ%=Ñ>Ô>Ø„[×Òð :à-Ð-¨n¨n¨nÑ=Ô=ñ?ô ?ð „[×Ò˜_¨q°!¨fÑ5Ô5Ø„[×Ò˜_¨q°!¨fÑ5Ô5Ø„[×Ò˜\¨D°%¨=Ñ9Ô9ð1ð 1ñ :Ô9ñ 6Ô5ñ 6Ô5ñ?ô ?ñ ?Ô>ð1ð2/ð /ð /ð!ð !ð !ð!ð !ð !ð !ð !rX   r"  c                   óü  — e Zd Zej                             deeg¦  «        d„ ¦   «         Zej                             deeg¦  «        d„ ¦   «         Z	ej                             ddgdfddgfdgdggfg¦  «        ej                             deeg¦  «        d„ ¦   «         ¦   «         Z
ej                             deeg¦  «        d	„ ¦   «         Zej                             d
ej        ej        g¦  «        d„ ¦   «         ZdS )ÚTestAllFreqConvolvesÚconvapproachc                 ó   — t          j        dd¦  «                             d¦  «        }t          j        dd¦  «                             d¦  «        }t          t          d¬¦  «        5   |||d	¬
¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NrH   r   r¾   r¿   r   rÀ   zOFor 'valid' mode, one must be at least as large as the other in every dimensionr*  r’   r\   )rr   r   rs   rŸ   r    ©rR   rD  rS   rT   s       rV   rÁ   z(TestAllFreqConvolves.test_invalid_shapesÑ  sÝ   € õ ŒI�a˜‰OŒO×#Ò# FÑ+Ô+ˆÝŒI�b˜!ÑÔ×$Ò$ VÑ,Ô,ˆÝ�:ð"FðGñ Gô Gð 	-ð 	-ð ˆL˜˜A GÐ,Ñ,Ô,Ð,ð	-ð 	-ð 	-ñ 	-ô 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-øøøð 	-ð 	-ð 	-ð 	-ð 	-ð 	-s   Á'BÂBÂ
Bc                 óÜ   — t          j        g d¢¦  «        }t          j        g d¢¦  «        }t          t          d¬¦  «        5   |||ddg¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N)rE   rF   rI   rH   )rE   rF   rC   rH   zVincompatible shapes for in1 and in2: \(5L?, 6L?, 2L?, 1L?\) and \(5L?, 6L?, 3L?, 1L?\)r*  r   rH   r�  )rr   r~  rŸ   r    rF  s       rV   Útest_invalid_shapes_axesz-TestAllFreqConvolves.test_invalid_shapes_axesÛ  sÇ   € õ ŒH�\�\�\Ñ"Ô"ˆÝŒH�\�\�\Ñ"Ô"ˆÝ�:ð"6ð7ñ 7ô 7ð 	,ð 	,ð ˆL˜˜A Q¨ FÐ+Ñ+Ô+Ð+ð		,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,øøøð 	,ð 	,ð 	,ð 	,ð 	,ð 	,s   ÁA!Á!A%Á(A%za,brH   rI   rC   c                 ó|   — t          t          d¬¦  «        5   |||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nz/in1 and in2 should have the same dimensionalityr*  ©rŸ   r    )rR   rS   rT   rD  s       rV   r  z)TestAllFreqConvolves.test_mismatched_dimsæ  s˜   € õ �:ð"-ð.ñ .ô .ð 	ð 	ð ˆL˜˜AÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   —1±5¸5c                 ó„  — t          t          d¬¦  «        5   |dgdgd¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          t          d¬¦  «        5   |dgdgg ¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          t          d	¬¦  «        5   |dgdgddgd
dgg¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          t          d	¬¦  «        5   |dgdgg d¢¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          t          d¬¦  «        5   |dgdgdg¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          t          d¬¦  «        5   |dgdgdg¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          t          d¬¦  «        5   |dgdgddg¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nz4acceptable mode flags are 'valid', 'same', or 'full'r*  rH   rI   Úchipsr\   z#when provided, axes cannot be emptyr�  z-axes must be a scalar or iterable of integersrC   rD   )ç      ð?rK  rM  rN  z$axes exceeds dimensionality of inputr�  zall axes must be uniquer   rJ  )rR   rD  s     rV   Útest_invalid_flagsz'TestAllFreqConvolves.test_invalid_flagsò  s  € õ �:ð"0ð1ñ 1ô 1ð 	1ð 	1ð ˆL˜!˜˜q˜c¨Ð0Ñ0Ô0Ð0ð	1ð 	1ð 	1ñ 	1ô 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1øøøð 	1ð 	1ð 	1ð 	1õ
 �:Ø!FðHñ Hô Hð 	,ð 	,àˆL˜!˜˜q˜c¨Ð+Ñ+Ô+Ð+ð	,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,øøøð 	,ð 	,ð 	,ð 	,õ �:ð .2ð 3ñ 3ô 3ð 	:ð 	:àˆL˜!˜˜q˜c¨!¨Q¨°!°Q°Ð(8Ð9Ñ9Ô9Ð9ð	:ð 	:ð 	:ñ 	:ô 	:ð 	:ð 	:ð 	:ð 	:ð 	:ð 	:øøøð 	:ð 	:ð 	:ð 	:õ �:ð .2ð 3ñ 3ô 3ð 	:ð 	:àˆL˜!˜˜q˜cÐ(8Ð(8Ð(8Ð9Ñ9Ô9Ð9ð	:ð 	:ð 	:ñ 	:ô 	:ð 	:ð 	:ð 	:ð 	:ð 	:ð 	:øøøð 	:ð 	:ð 	:ð 	:õ �:Ø!GðIñ Iô Ið 	-ð 	-àˆL˜!˜˜q˜c¨¨Ð,Ñ,Ô,Ð,ð	-ð 	-ð 	-ñ 	-ô 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-øøøð 	-ð 	-ð 	-ð 	-õ �:Ø!GðIñ Iô Ið 	.ð 	.àˆL˜!˜˜q˜c¨¨Ð-Ñ-Ô-Ð-ð	.ð 	.ð 	.ñ 	.ô 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.øøøð 	.ð 	.ð 	.ð 	.õ �:Ø!:ð<ñ <ô <ð 	0ð 	0àˆL˜!˜˜q˜c¨¨A¨Ð/Ñ/Ô/Ð/ð	0ð 	0ð 	0ñ 	0ô 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0øøøð 	0ð 	0ð 	0ð 	0ð 	0ð 	0sx   —4´8»8ÁA2Á2A6Á9A6ÂB6Â6B:Â=B:ÃC6Ã6C:Ã=C:ÄD5Ä5D9Ä<D9ÅE4Å4E8Å;E8ÆF5Æ5F9Æ<F9rð   c                 ó”  — t           j                             d¦  «                             |¦  «        }t           j                             d¦  «                             |¦  «        }t          j         |¦   «         ¦  «        r
|dz  }|dz  }t	          ||¦  «        }t          |t          ||d¬¦  «        ¦  «         |j        |k    sJ ‚d S )N)rn   rn   )rD   rD   y        š™™™™™¹?ro   rp   )rr   rì   rò   Úiscomplexobjr   r   r   rð   )rR   rð   rg   rh   Úress        rV   Útest_longdtype_inputz)TestAllFreqConvolves.test_longdtype_input  s¹   € åŒI×Ò˜XÑ&Ô&×-Ò-¨eÑ4Ô4ˆÝŒI×Ò˜VÑ$Ô$×+Ò+¨EÑ2Ô2ˆÝŒ?˜5˜5™7œ7Ñ#Ô#ð 	Ø�‰HˆAØ�‰HˆAå˜!˜QÑÔˆÝ˜�X a¨°8Ð<Ñ<Ô<Ñ=Ô=Ð=ØŒy˜EÒ!Ð!Ð!Ð!Ð!Ð!rX   N)r£   r¤   r¥   rf  rg  rh  r   r   rÁ   rH  r  rN  rr   Ú
longdoubleÚclongdoublerR  r¦   rX   rV   rC  rC  Ï  sy  € € € € € à„[×Ò˜^Ø)¨:Ð6ñ8ô 8ð-ð -ñ8ô 8ð-ð „[×Ò˜^Ø)¨:Ð6ñ8ô 8ð,ð ,ñ8ô 8ð,ð „[×Ò˜UØ !˜s A˜hØ  1 #˜hØ !˜s a S E˜lð,ñ-ô -ð „[×Ò˜^Ø)¨:Ð6ñ8ô 8ðð ñ8ô 8ñ	-ô -ðð „[×Ò˜^Ø)¨:Ð6ñ8ô 8ð0ð 0ñ8ô 8ð0ð< „[×Ò˜W r¤}°b´nÐ&EÑFÔFð	"ð 	"ñ GÔFð	"ð 	"ð 	"rX   rC  c                   óT  — e Zd Zg d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d	¢g d
¢g
Zg d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g
ZddgZd„ Zej         	                    de
j        e
j        e
j        e
j        eee
j        e
j        e
j        e
j        g
¦  «        d„ ¦   «         Zej         	                    de
j        e
j        e
j        e
j        e
j        e
j        ddg¦  «        d„ ¦   «         Zd„ Zd„ Zej         	                    de
j        e
j        e
j        g¦  «        d„ ¦   «         Zd S )!ÚTestMedFilt)
rü   rü   rü   rü   rü   rA  é   rn   r­   r#  )
rü   rü   rü   rü   rü   r   éH   éM   r9  r>  )
rü   rü   rü   rü   rü   r#  r(  é   r"  rY  )
rü   rü   rü   rü   rü   rØ   é   é   é_   é#   )
rü   rü   rü   rü   rü   r#  r^   r  rO  r>  )
rª   éa   rL   r9  r«   rY  r·   r„   éG   rØ   )
r"  rÿ   r=  r\  r9  rM   rZ  r9  r  r?  )
rC   é!   rÿ   r$  rH   r«   r8  é7   rO   éS   )
r   ré  r#  rª   r  r(  r  é+   r·   r   )
rM   r·   éX   r   é'   rD   rA  r"  r¹   r·   )
r   rü   rü   rü   rØ   r[  r[  rW  rn   r   )
r   rü   rü   rü   rü   rØ   rZ  rO  r\  r   )
rü   rü   rü   rü   rü   r(  r^   r^   r#  r^  )
rü   rü   rü   rü   rü   rü   rØ   r(  r"  rØ   )
rü   rü   rü   rü   rü   rü   r#  rb  r"  r^  )
ra  rü   rü   rü   rü   r(  r#  rd  rb  r   )
rM   rü   rü   rü   rü   r(  r#  r¹   rb  r   )
r   r#  rü   rü   r(  r#  r#  rd  r¹   rO  )
r   rM   ra  rf  rM   rM   rd  rd  rd  r   )
r   r   ré  r   rD   rD   rZ  rZ  r  r   r   rC   c                 óü   — t          j        | j        | j        ¦  «        }t          j        t          j        | j        t          ¦  «        | j        ¦  «        }t          || j	        ¦  «         t          ||¦  «         d S r$  )
r   ÚmedfiltÚINÚKERNEL_SIZEÚ	medfilt2drr   r   r\  r   ÚOUT)rR   rŠ   r  s      rV   rW   zTestMedFilt.test_basic9  sc   € ÝŒN˜4œ7 DÔ$4Ñ5Ô5ˆÝÔ�RœX d¤g­uÑ5Ô5°tÔ7GÑHÔHˆÝ˜1˜dœhÑ'Ô'Ð'Ý˜1˜aÑ Ô Ð Ð Ð rX   rð   c                 óØ   — t          j        | j        |¬¦  «        }t          t	          j        |¦  «        j        |¦  «         t          t	          j        |¦  «        j        |¦  «         d S )Nr  )rr   r   ri  r
   r   rh  rð   rk  ©rR   rð   Úin_typeds      rV   Ú
test_typeszTestMedFilt.test_types?  s[   € õ
 ”8˜DœG¨5Ð1Ñ1Ô1ˆÝ•V”^ HÑ-Ô-Ô3°UÑ;Ô;Ð;Ý•VÔ% hÑ/Ô/Ô5°uÑ=Ô=Ð=Ð=Ð=rX   Úfloat96Úfloat128c                 óÞ  — |dv r>t          j        t           j        ¦  «        j        |k    rt	          j        d|› �¦  «         t          j        | j        |¬¦  «        }t	          j        t          d¬¦  «        5  t          j        |¦  «         d d d ¦  «         n# 1 swxY w Y   t	          j        t          d¬¦  «        5  t          j        |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N)rq  rr  zPlatform does not support r  znot supportedr*  )rr   ÚfinforS  rð   rf  Úskipr   ri  r	   r    r   rh  rk  rn  s      rV   Útest_invalid_dtypeszTestMedFilt.test_invalid_dtypesH  s_  € ð Ð,Ð,Ð,Ý”H�Rœ]Ñ+Ô+Ô1°UÒ:Ð:ÝŒKÐ<°UÐ<Ð<Ñ=Ô=Ð=å”8˜DœG¨5Ð1Ñ1Ô1ˆÝŒ]�:¨_Ð=Ñ=Ô=ð 	%ð 	%ÝŒN˜8Ñ$Ô$Ð$ð	%ð 	%ð 	%ñ 	%ô 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%øøøð 	%ð 	%ð 	%ð 	%õ Œ]�:¨_Ð=Ñ=Ô=ð 	'ð 	'ÝÔ˜XÑ&Ô&Ð&ð	'ð 	'ð 	'ñ 	'ô 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'øøøð 	'ð 	'ð 	'ð 	'ð 	'ð 	's$   Á9BÂBÂ!BÃ C"Ã"C&Ã)C&c                 ó�   — d}t          t          |¬¦  «        5  t          j        d ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nz(dtype=object is not supported by medfiltr*  )rŸ   r    r   rh  )rR   r0  s     rV   Ú	test_nonezTestMedFilt.test_noneY  sŽ   € à8ˆÝ�:¨SÐ1Ñ1Ô1ð 	!ð 	!ÝŒN˜4Ñ Ô Ð ð	!ð 	!ð 	!ñ 	!ô 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!øøøð 	!ð 	!ð 	!ð 	!ð 	!ð 	!s   ™;»?Á?c                 ó´   — t          j        dt           j        ¬¦  «        }|dd…         }d|_        t	          t          j        |d¦  «        dk    ¦  «         d S )NrJ   r  rE   rF   r€   rH   ç      @)rr   r   rÏ   r{  r   r   rh  )rR   ÚdummyrS   s      rV   Útest_odd_strideszTestMedFilt.test_odd_strides_  sS   € õ ”	˜"¥B¤JÐ/Ñ/Ô/ˆØ�!�A�#ŒJˆØˆŒ	Ý•”˜q !Ñ$Ô$¨Ò*Ñ+Ô+Ð+Ð+Ð+rX   c                 óh  ‡ ‡
‡‡‡‡‡‡— t          j        ‰ j        |¬¦  «        Št          j        ‰ j        |¬¦  «        }‰j        |j        k    sJ ‚|j        d         dz  Š
|j        d         dz  Š‰ j        d         dz  dz   Š‰ j        d         dz  dz   Šˆ
ˆˆˆˆˆ fd„Št          j        |¦  «        }t          d¬¦  «        5 Šh d£}ˆˆfd	„|D ¦   «         }t          |¦  «        D ]!}| 	                    ¦   «         \  }}}	||||	f<   Œ"	 d d d ¦  «         n# 1 swxY w Y   t          ||¦  «         d S )
Nr  r   rI   rH   c                 ó(  •— | \  }}|dk    r5t          d‰‰z   ¦  «        }t          d‰ ¦  «        }t          d‰¦  «        }n3t          ‰‰z
  d ¦  «        }t          ‰d ¦  «        }t          ‰d ¦  «        }|dk    r5t          d‰‰z   ¦  «        }t          d‰ ¦  «        }t          d‰¦  «        }n3t          ‰‰z
  d ¦  «        }t          ‰d ¦  «        }t          ‰d ¦  «        }‰||f         }	t          j        |	‰j        ¦  «        }
|
||f         ||fS )Nr   )Úslicer   rk  rj  )ÚchunkÚMÚNÚMinÚMselÚMoutÚNinÚNselÚNoutÚ
chunk_dataÚmedÚM1ÚN1ro  ÚoffMÚoffNrR   s              €€€€€€rV   Úapplyz2TestMedFilt.test_medfilt2d_parallel.<locals>.applyx  s  ø€ ð ‰DˆAˆqØ�AŠvˆvÝ˜A˜r D™yÑ)Ô)�Ý˜Q  ‘”�Ý˜Q ‘|”|��å˜B ™I tÑ,Ô,�Ý˜T 4Ñ(Ô(�Ý˜R ‘”�Ø�AŠvˆvÝ˜A˜r D™yÑ)Ô)�Ý˜Q  ‘”�Ý˜Q ‘|”|��å˜B ™I tÑ,Ô,�Ý˜T 4Ñ(Ô(�Ý˜R ‘”�ð " # s (Ô+ˆJÝÔ" :¨tÔ/?Ñ@Ô@ˆCØ�t˜T�z”? D¨$Ð.Ð.rX   rD   )Úmax_workers>   ©rH   r   ©r   r   ©r   rH   ©rH   rH   c                 ó<   •— h | ]}‰                      ‰|¦  «        ’ŒS r¦   )Úsubmit)rÓ   r€  r�  Úpools     €€rV   ú	<setcomp>z6TestMedFilt.test_medfilt2d_parallel.<locals>.<setcomp>—  s'   ø€ ÐEÐEÐE°U�t—{’{ 5¨%Ñ0Ô0ÐEÐEÐErX   )rr   r   ri  rl  rz  rj  Ú
zeros_liker   r   rU  r   )rR   rð   r²   ÚoutputÚchunksÚfuturesÚfutureÚdataÚMsliceÚNslicer‹  rŒ  r�  ro  r�  rŽ  r—  s   `         @@@@@@@rV   Útest_medfilt2d_parallelz#TestMedFilt.test_medfilt2d_parallelh  sÇ  øøøøøøøø€ å”8˜DœG¨5Ð1Ñ1Ô1ˆÝ”8˜DœH¨EÐ2Ñ2Ô2ˆð Œ~ ¤Ò/Ð/Ð/Ð/ð
 Œ^˜AÔ !Ñ#ˆØŒ^˜AÔ !Ñ#ˆØÔ Ô" aÑ'¨!Ñ+ˆØÔ Ô" aÑ'¨!Ñ+ˆð	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/õ8 ”˜xÑ(Ô(ˆÝ¨AÐ.Ñ.Ô.ð 	.°$Ø5Ð5Ð5ˆFØEÐEÐEÐEÐE¸fÐEÑEÔEˆGõ ' wÑ/Ô/ð .ð .�Ø'-§}¢}¡¤Ñ$��f˜fØ)-��v˜v�~Ñ&Ð&ð.ð	.ð 	.ð 	.ñ 	.ô 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.øøøð 	.ð 	.ð 	.ð 	.õ 	˜6 8Ñ,Ô,Ð,Ð,Ð,s   ÃADÄDÄDN)r£   r¤   r¥   ri  rl  rj  rW   rf  rg  rh  rr   ÚubyteÚbyteÚushortÚshortr?   r>   Ú	ulonglongrÎ   rÏ   rp  Úbool_rÐ   rÑ   rT  rÍ   Úobject_rv  rx  r|  r¡  r¦   rX   rV   rV  rV    s  € € € € € à
2Ð
2Ð
2Ø
1Ð
1Ð
1Ø
2Ð
2Ð
2Ø
2Ð
2Ð
2Ø
1Ð
1Ð
1Ø
2Ð
2Ð
2Ø
2Ð
2Ð
2Ø
0Ð
0Ð
0Ø
1Ð
1Ð
1Ø
0Ð
0Ð
0ð	
2€Bð 2Ð1Ð1Ø1Ð1Ð1Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø2Ð2Ð2Ø1Ð1Ð1Ø-Ð-Ð-ð	/€Cð �Q�%€Kð!ð !ð !ð „[×Ò˜W r¤x°´¸"¼)ÀRÄXØ'/°¸"¼,ÈÌØ')¤z°2´:ð'?ñ @ô @ð>ð >ñ@ô @ð>ð „[×Ò˜W r¤x°´¸r¼}Ø')¤~°r´zÀ2Ä:Ø'0°*ð'>ñ ?ô ?ð'ð 'ñ?ô ?ð'ð!ð !ð !ð,ð ,ð ,ð „[×Ò˜W r¤x°´¸R¼ZÐ&HÑIÔIð5-ð 5-ñ JÔIð5-ð 5-ð 5-rX   rV  c                   ó   — e Zd Zd„ ZdS )Ú
TestWienerc                 ó  — t          g d¢g d¢g d¢g d¢gd¦  «        }t          g d¢g d¢g d¢g d	¢g¦  «        }t          t          j        |¦  «        |d
¬¦  «         t          t          j        |d¬¦  «        |d
¬¦  «         d S )N)rE   rF   rD   rC   )rC   rE   rF   rI   )rI   rC   rE   rF   )rH   rF   r  r   rŠ   )g‘ÔSXO@gúXÆqÇ	@gƒÓÇq@gõ¬ªªªú?)g]É`UUU@g¬FUUUU@gæÇqÇ@gçcÇq@)gÂy¿qÇ@gúXÆqÇ@gúXÆqÇ@gÚUõßJ4@)g±UUUUõ?gñ2k³6k@gÒ·ÍW÷H@gº“@­_)@rF   ©ÚdecimalrC   )Úmysize)r   r   r   Úwiener)rR   r  r  s      rV   rW   zTestWiener.test_basic£  s¾   € Ý�<�<�<Ø�<�<Ø�<�<Ø�<�<ð!ð #&ñ'ô 'ˆõ ÐIÐIÐIØLÐLÐLØLÐLÐLØMÐMÐMðOñ Pô Pˆõ 	"¥&¤-°Ñ"2Ô"2°A¸qÐAÑAÔAÐAÝ!¥&¤-°¸!Ð"<Ñ"<Ô"<¸aÈÐKÑKÔKÐKÐKÐKrX   N©r£   r¤   r¥   rW   r¦   rX   rV   rª  rª  ¡  s(   € € € € € ð
Lð 
Lð 
Lð 
Lð 
LrX   rª  )ÚmeanÚmedianÚminimumÚmaximumÚlinec                   ón  — e Zd Zd„ Zej                             dd¦  «        ej                             dd¦  «        ej                             dd¦  «        d„ ¦   «         ¦   «         ¦   «         Zd	„ Zej                             d
d¦  «        ej                             dd¦  «        ej                             dd¦  «        d„ ¦   «         ¦   «         ¦   «         Z	ej                             de
¦  «        d„ ¦   «         Zej                             de
¦  «        d„ ¦   «         Zej                             de
¦  «        ej                             dej        ej        g¦  «        d„ ¦   «         ¦   «         Zej                             ddg e edgddge
¦  «        ¦  «        z   ¦  «        d„ ¦   «         Zd„ Zd„ ZdS )ÚTestResamplec           	      ój  — t          j        d¦  «        }d}t          j        dd¦  «        }t	          t
          t          j        |||¬¦  «         t	          t
          t          j        |dd¦  «         t	          t
          t          j        |dd¦  «         t	          t
          t          j        |d	dd
¬¦  «         t	          t
          t          j        |d	ddd¬¦  «         t          j        t          j        d¦  «        d¦  «        }t          j        ||d|¬¦  «         t          |j
        dk    ¦  «         d S )Né€   é   )Úkaiserç       @é    ©ÚwindowÚyorH   r   rI   r‹  ©Úpadtyper±  rJ   )rÂ  Úcval)rI   rH   r�   ©Úaxisr¿  )r½  )rr   r   r   Ú
get_windowrŸ   r    ÚresampleÚresample_polyr•  r   rz  )rR   ÚsigÚnumÚwinÚsig2s        rV   rW   zTestResample.test_basicµ  s  € õ
 Œi˜‰nŒnˆØˆÝÔ °Ñ5Ô5ˆÝ•j¥&¤/°3¸ÀCÐHÑHÔHÐHõ 	•j¥&Ô"6¸¸TÀ1ÑEÔEÐEÝ•j¥&Ô"6¸¸QÀÑBÔBÐBÝ•j¥&Ô"6¸¸QÀÈ2ÐNÑNÔNÐNÝ•j¥&Ô"6¸¸QÀØ$¨2ð	/ñ 	/ô 	/ð 	/õ Œw•r”y ‘~”~ vÑ.Ô.ˆÝŒ˜˜c¨°3Ð7Ñ7Ô7Ð7Ý�”	˜VÒ#Ñ$Ô$Ð$Ð$Ð$rX   r¿  )NÚhammingr‚  )rû   rZ  rÊ  )rÂ   rX  rJ   ré  c           	      ó  — t          j        dd|d¬¦  «        }t          j        |dz   dz  ¦  «        }t          t	          j        |||¬¦  «        t	          j        |dz   ||¬¦  «        j        ¦  «         t          j        t          j        |dz   dz  ¦  «        t          j        |dz   dz  ¦  «        g¦  «        }|dz   }t          t	          j        ||d	|¬
¦  «        t	          j        ||d	|¬
¦  «        j        d¬¦  «         d S )Nr   rJ   F)ÚendpointrI   g      @r¾  r�   rH   rÄ  ç•Ö&è.>rð  )	rr   ÚlinspaceÚcosr   r   rÇ  Úrealr   Úsin)rR   r‚  rÊ  r¿  rg   rh   Ú	y_complexs          rV   Ú	test_rfftzTestResample.test_rfftË  s  € õ ŒK˜˜2˜q¨5Ð1Ñ1Ô1ˆÝŒF�A�q‘D�5˜‘9ÑÔˆÝ�œ¨¨3°vÐ>Ñ>Ô>Ýœ¨¨B©°¸FÐCÑCÔCÔHñ	Jô 	Jð 	Jõ ŒH•b”f˜a ™d˜U 3™YÑ'Ô'­¬°°A±°°c±	Ñ):Ô):Ð;Ñ<Ô<ˆØ˜‘Fˆ	ÝÝŒO˜A˜s¨°6Ð:Ñ:Ô:ÝŒO˜I s°¸6ÐBÑBÔBÔGØð	ñ 	ô 	ð 	ð 	ð 	rX   c                 óÎ   — t          j        d¦  «        dz   }t          |¦  «        }d}t          t	          j        ||d¬¦  «        t	          j        ||d¬¦  «        d¬¦  «         d S )Nrº  r�   Úfreq)ÚdomainÚtimerÐ  rð  )rr   r   r   r   r   rÇ  )rR   ÚtsigÚfsigrÊ  s       rV   Útest_input_domainzTestResample.test_input_domainÝ  sp   € åŒy˜‰~Œ~ Ñ"ˆÝ�4‰yŒyˆØˆÝÝŒO˜D #¨fÐ5Ñ5Ô5ÝŒO˜D #¨fÐ5Ñ5Ô5Øð	ñ 	ô 	ð 	ð 	ð 	rX   Únx)rH   rI   rC   rE   r�   Únyrð   )r\  r  c                 óŠ   — t          j        dg|z  |¦  «        }t          j        ||¦  «        }t	          |dg|z  ¦  «         d S )NrH   )rr   r   r   rÇ  r   )rR   rÞ  rß  rð   rg   rh   s         rV   Útest_dczTestResample.test_dcç  sH   € õ ŒH�a�S˜2‘X˜uÑ%Ô%ˆÝŒO˜A˜rÑ"Ô"ˆÝ˜˜A˜3 ™8Ñ$Ô$Ð$Ð$Ð$rX   rÂ  c                 ó  — t          j        d¦  «        }t           j                             d¦  «                             d¦  «        }|                     ¦   «         }t          j        |dd||¬¦  «         t          ||¦  «         d S )NrC   r   rI   rE   rH   ©r¿  rÂ  )	rr   r~  rì   r  rï   Úcopyr   rÈ  r   )rR   rÂ  Úimpulser¿  Úwindow_origs        rV   Útest_mutable_windowz TestResample.test_mutable_windowï  ss   € õ ”(˜1‘+”+ˆÝ”×&Ò& qÑ)Ô)×/Ò/°Ñ2Ô2ˆØ—k’k‘m”mˆÝÔ˜W a¨°6À7ÐKÑKÔKÐKÝ˜6 ;Ñ/Ô/Ð/Ð/Ð/rX   c                 óê   — t          j        dt           j        ¬¦  «        }t          j        g d¢t           j        ¬¦  «        }t	          j        |dd||¬¦  «        }|j        t           j        k    sJ ‚d S )NrJ   r  ©rH   rH   rH   rH   rI   rã  )rr   r   rÎ   r   r   rÈ  rð   )rR   rÂ  rg   r  rh   s        rV   Útest_output_float32z TestResample.test_output_float32ø  sj   € õ ŒI�b¥¤
Ð+Ñ+Ô+ˆÝŒH�Y�Y�Y¥b¤jÐ1Ñ1Ô1ˆÝÔ   A q°¸GÐDÑDÔDˆØŒw�"œ*Ò$Ð$Ð$Ð$Ð$Ð$rX   c                 ó†   — t          j        d|¬¦  «        }t          j        |dd|¬¦  «        }|j        |j        k    sJ ‚d S )NrJ   r  rH   rI   rÁ  )rr   r   r   rÈ  rð   )rR   rÂ  rð   rg   rh   s        rV   Útest_output_match_dtypez$TestResample.test_output_match_dtype   sL   € õ ŒI�b Ð&Ñ&Ô&ˆÝÔ   A q°'Ð:Ñ:Ô:ˆØŒw˜!œ'Ò!Ð!Ð!Ð!Ð!Ð!rX   zmethod, ext, padtype)r   FNÚ	polyphaseFTc                 óæ  — d}g d¢}t          j        |¦  «        t          |¦  «        z  }t          j        d¦  «        d d …t           j        f         }t          j        dt           j        z  |z  |z  ¦  «        t          |¦  «        z  }|D �]¢}	t          j        |	¦  «        t          |	¦  «        z  }
t          j        dt           j        z  |z  |
z  ¦  «        t          |	¦  «        z  }|dk    rt          j	        ||	d¬¦  «        }ny|r]|	|k    rWt          |	|¦  «        }|	|z  }||z  }t          ||¦  «        }d|z  }d	|z  }t          j        d|z  d
z   |d¬¦  «        }||dœ}nd|i}t          j        ||	|fddi|¤Ž}t          |||¦  «        D ]›\  }}}|d|	z  k    r?|                     d¦  «         |dv rt!          ||d¬¦  «         Œ;t!          ||d¬¦  «         ŒNt#          |j        |j        ¦  «         t          j        ||¦  «        d         }t)          |dk    |||	f¬¦  «         Œœ�Œ¤t           j                             d¦  «        }t          |¦  «        t          j        |                     |¦  «        ¦  «        z  }|D ]º}	t          j        |	¦  «        t          |	¦  «        z  }
t          j        |
||¦  «        }|dk    rt          j	        ||	¦  «        }nt          j        ||	||¬¦  «        }t#          |j        |j        ¦  «         t          j        ||¦  «        d         }t)          |dk    |¬¦  «         Œ»|dk    r¨t          j        ddg¦  «        }t          j	        |d¦  «        }t          j        g d¢¦  «        }t!          ||d¬¦  «         t          j        g d ¢¦  «        }t          j	        |d¦  «        }t          j        ddg¦  «        }t!          ||d¬¦  «         d S d S )!NrÂ   )	r‡   rü   rý   éc   rÂ   rX  éÇ   ró  éÉ   )rM  ç      $@g      D@rI   r   r�   ©rÅ  rM  rJ   rH   )r»  rz  r¾  rã  rÂ  rÅ  ç      à?ç        )r³  r´  ç333333Ó?rð  ré   r“  g®Gáz®ï?)r0  r   rÁ  r°   r�   rD   )r°   ù      à?        r�   r÷  çê-�™—q=)rM  rô  rõ  rô  )rr   r   r\  r   ÚnewaxisrÔ  Úpir7   r   rÇ  r   Úmaxrù  rÈ  r  r  r   r   rz  Úcorrcoefr   rì   r  Úcumsumrï   Úinterp) rR   rq   ÚextrÂ  ÚrateÚrates_torä   Úfreqsrg   Úrate_toÚt_toÚy_tosÚ	y_resampsr  ÚupÚdownÚmax_rateÚf_cÚhalf_lenr¿  ÚpolyargsÚy_toÚy_resamprØ  Úcorrrü  rà   Úy1_testÚy1_truerá   Úy2_testÚy2_trues                                    rV   Útest_resample_methodsz"TestResample.test_resample_methods  s,  € ð ˆØ<Ð<Ð<ˆõ ŒI�d‰OŒO�e D™kœkÑ)ˆÝ”˜Ñ(Ô(¨¨¨­B¬J¨Ô7ˆÝŒF�1•r”u‘9˜uÑ$ qÑ(Ñ)Ô)­D°©J¬JÑ6ˆàð !	Dñ !	DˆGÝ”9˜WÑ%Ô%­¨g©¬Ñ6ˆDÝ”F˜1�rœu™9 uÑ,¨tÑ3Ñ4Ô4µt¸G±}´}ÑDˆEØ˜ŠˆÝ"œO¨A¨w¸RÐ@Ñ@Ô@�	�	àð 4˜7 dš?˜?å˜G TÑ*Ô*�AØ  A™�BØ 1™9�DÝ" 2 t™}œ}�HØ˜x™-�CØ! H™}�HÝ#œ]¨1¨x©<¸!Ñ+;¸SØ2AðCñ Cô C�Fà*0¸WÐEÐE�H�Hà )¨7Ð3�Hå"Ô0°°G¸Tð =ð =Èð =Ø3;ð=ð =�	õ ),¨E°9¸eÑ(DÔ(Dð 
Dð 
DÑ$��h Ø˜3 ™=Ò(Ð(Ø—I’I˜b‘M”M�MØÐ"8Ð8Ð8Ý'¨°$¸TÐBÑBÔBÐBÐBå'¨°$¸TÐBÑBÔBÐBÐBå& t¤z°8´>ÑBÔBÐBÝœ; t¨XÑ6Ô6°tÔ<�DÝ˜D 4šK¨d°D¸'Ð-BÐCÑCÔCÐCÐCñ
Dõ Œi×#Ò# AÑ&Ô&ˆÝ�‰JŒJ�œ 3§9¢9¨T¡?¤?Ñ3Ô3Ñ3ˆØð 	+ð 	+ˆGå”9˜WÑ%Ô%­¨g©¬Ñ6ˆDÝ”9˜T 1 aÑ(Ô(ˆDØ˜ŠˆÝ!œ?¨1¨gÑ6Ô6��å!Ô/°°7¸DØ8?ðAñ Aô A�å˜tœz¨8¬>Ñ:Ô:Ð:Ý”;˜t XÑ.Ô.¨tÔ4ˆDÝ�D˜4’K TÐ*Ñ*Ô*Ð*Ð*ð �UŠ?ˆ?Ý”˜6 6Ð*Ñ+Ô+ˆBÝ”o b¨!Ñ,Ô,ˆGå”hÐAÐAÐAÑBÔBˆGÝ˜G W°5Ð9Ñ9Ô9Ð9Ý”Ð,Ð,Ð,Ñ-Ô-ˆBÝ”o b¨!Ñ,Ô,ˆGÝ”h  B˜xÑ(Ô(ˆGÝ˜G W°5Ð9Ñ9Ô9Ð9Ð9Ð9ð ˆ?rX   c           	      óz  — t           j                             d¦  «        }t          t           j        t           j        t          t          f}d}g d¢}|D ]è}|                     |¦  «         	                    |¦  «        }|t           j        t           j
        fv r|d|                     |¦  «        z  z  }d|d<   d|d<   |D ]|}t          j        dd|z  d	¬
¦  «        }t          |d|d¬¦  «        d d |…         }	t          ||d d d…         ¦  «        }
t          j        |d||
¬
¦  «        }t!          |	|dd¬¦  «         Œ}Œéd S )Nr�   rî  )rI   ré  éO   rŽ   r   r�   r†   rM  rÍ  r¾  ÚconstantrÁ  rH   çH¯¼šò×z>©rè   rç   )rr   rì   r  ÚintrÎ   rÐ   r\  r  rï   rò   rÑ   r   rù  r%   r   rÈ  r   )rR   Úrandom_stateÚ	try_typesrÚ   Údown_factorsrð   rg   r  r  ÚyfÚhcrh   s               rV   Útest_poly_vs_filtfiltz"TestResample.test_poly_vs_filtfiltZ  sU  € å”y×,Ò,¨RÑ0Ô0ˆÝ�"œ*¥b¤lµE½7ÐCˆ	ØˆØ"�{�{ˆàð 	=ð 	=ˆEØ×"Ò" 4Ñ(Ô(×/Ò/°Ñ6Ô6ˆAØ�œ¥r¤}Ð5Ð5Ð5Ø�R˜,×,Ò,¨TÑ2Ô2Ñ2Ñ2�ð ˆAˆa‰DØˆAˆb‰Eà$ð 	=ð 	=�Ý”M " b¨4¡i¸	ÐBÑBÔB�Ý˜a  a°Ð<Ñ<Ô<¸V¸V¸t¸VÔD�õ
 ˜a  4 4 R 4¤Ñ)Ô)�ÝÔ(¨¨A¨t¸BÐ?Ñ?Ô?�Ý  A¨D°tÐ<Ñ<Ô<Ð<Ð<ð	=ð	=ð 	=rX   c           
      óZ  — dD ]§}t          dd|¦  «        D ]“}dD ]Ž}t          j                             |f¦  «        }t          j                             |f¦  «        }t          ||d d d…         d¬¦  «        }t	          j        |d||¬¦  «        }t          |d d |…         |¦  «         Œ�Œ”Œ¨d S )	N)rI   rD   rH   r!  )rM   ra  r�   r  r\   )r  r  r¿  )rt   rr   rì   r   r   rÈ  r   )rR   r  rÞ  Únweightsrg   ÚweightsÚy_gÚy_ss           rV   Útest_correlate1dzTestResample.test_correlate1dv  sØ   € Øð 	6ð 	6ˆDÝ˜A˜r 4Ñ(Ô(ð 6ð 6�Ø (ð 6ð 6�HÝœ	×(Ò(¨"¨Ñ/Ô/�AÝ œi×.Ò.°¨{Ñ;Ô;�GÝ% a¨°°°2°¬¸ZÐHÑHÔH�CÝ Ô.Ø˜a d°7ð<ñ <ô <�Cå# C¨¨¨$¨¤K°Ñ5Ô5Ð5Ð5ð6ð6ð	6ð 	6rX   N)r£   r¤   r¥   rW   rf  rg  rh  rÖ  rÝ  rá  Úpadtype_optionsrç  rê  rr   rÎ   rÏ   rì  r  r   r  r   r&  r¦   rX   rV   r·  r·  ´  sA  € € € € € ð%ð %ð %ð, „[×Ò˜XÐ'8Ñ9Ô9Ø„[×Ò˜S (Ñ+Ô+Ø„[×Ò˜UÐ$6Ñ7Ô7ðð ñ 8Ô7ñ ,Ô+ñ :Ô9ððð ð ð „[×Ò˜T ?Ñ3Ô3Ø„[×Ò˜T ?Ñ3Ô3Ø„[×Ò˜WÐ&:Ñ;Ô;ð%ð %ñ <Ô;ñ 4Ô3ñ 4Ô3ð%ð
 „[×Ò˜Y¨Ñ8Ô8ð0ð 0ñ 9Ô8ð0ð „[×Ò˜Y¨Ñ8Ô8ð%ð %ñ 9Ô8ð%ð „[×Ò˜Y¨Ñ8Ô8Ø„[×Ò˜W r¤z°2´:Ð&>Ñ?Ô?ð"ð "ñ @Ô?ñ 9Ô8ð"ð „[×ÒØØ	ÐØ
ˆ$ØˆGØ�  t˜}¨oñô ñ
ô 
ñ	
ñô ðG:ð G:ñô ðG:ðR=ð =ð =ð8	6ð 	6ð 	6ð 	6ð 	6rX   r·  c                   ó   — e Zd Zd„ Zd„ ZdS )ÚTestCSpline1DEvalc                 ó`  — t          g d¢¦  «        }t          t          |¦  «        ¦  «        }|d         |d         z
  }t          j        |¦  «        }t          t          |¦  «        dz  ¦  «        dz  }t          j        ||||d         ¬¦  «        }t          |d d d…         |d¬¦  «         d S )	N)	rH   rI   rC   rD   rC   rI   rH   rI   rM  rH   r   rò  )ÚdxÚx0rJ   rE   r¬  )r   r   Úlenr   Ú	cspline1dÚcspline1d_evalr   )rR   rh   rg   r+  Úcjrá   Úy2s          rV   rW   zTestCSpline1DEval.test_basic„  s¨   € ÝÐ/Ð/Ð/Ñ0Ô0ˆÝ•3�q‘6”6‰NŒNˆØˆqŒT�A�a”D‰[ˆÝÔ˜aÑ Ô ˆå•C˜‘F”F˜T‘MÑ"Ô" TÑ)ˆÝÔ" 2 r¨b°Q°q´TÐ:Ñ:Ô:ˆõ 	" " T T r T¤(¨A°qÐ9Ñ9Ô9Ð9Ð9Ð9rX   c                 ó„  — t          j        d¦  «        }t          j        |j        t           j        ¬¦  «        }d}d|z  }t          j        dt           j        z  |z  |z  ¦  «        }t          j        |¦  «        }t          j	        dg¦  «        }t          j
        ||¦  «        }t          |j        |j        ¦  «         d S )NrI   r  rò  rM  rf   rô  )rr   r   r~  rz  rÐ   Úexprú  r   r.  r   r/  r
   rð   )rR   rg   rh   ÚTrÛ   ÚcyÚxnewÚynews           rV   rj   zTestCSpline1DEval.test_complex�  s£   € åŒI�a‰LŒLˆÝŒH�Q”W¥B¤LÐ1Ñ1Ô1ˆØˆØ�!‰GˆÝŒF�4�"œ%‘< !Ñ# aÑ'Ñ(Ô(ˆõ Ô˜aÑ Ô ˆõ Œx˜˜‰ŒˆÝÔ$ R¨Ñ.Ô.ˆå�T”Z ¤Ñ)Ô)Ð)Ð)Ð)rX   N)r£   r¤   r¥   rW   rj   r¦   rX   rV   r)  r)  ‚  s2   € € € € € ð
:ð 
:ð 
:ð*ð *ð *ð *ð *rX   r)  c                   ó   — e Zd Zd„ ZdS )ÚTestOrderFiltc                 óZ   — t          t          j        g d¢g d¢d¦  «        g d¢¦  «         d S )NrG   ©rH   r   rH   rH   )rI   rC   rI   )r   r   Úorder_filterr  s    rV   rW   zTestOrderFilt.test_basic£  s>   € Ý�6Ô.¨y¨y¨y¸)¸)¸)ÀQÑGÔGØ$˜9˜9ñ	&ô 	&ð 	&ð 	&ð 	&rX   Nr°  r¦   rX   rV   r9  r9  ¡  s#   € € € € € ð&ð &ð &ð &ð &rX   r9  c            	       óv  — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zej                             dddg ej         d¦  «        g¦  «        ej                             dddg ej         d¦  «        g¦  «        d„ ¦   «         ¦   «         Z!dS )Ú_TestLinearFilterc                 óÌ   — t          j        dt          j        |¦  «        dz
  t          j        |¦  «        ¦  «                             |¦  «        }|                      |¦  «        S )Nr   rH   )rr   rÑ  Úprodrs   Úconvert_dtype)rR   rz  rg   s      rV   Úgeneratez_TestLinearFilter.generateª  sL   € ÝŒK˜�2œ7 5™>œ>¨AÑ-­r¬w°u©~¬~Ñ>Ô>×FÒFÀuÑMÔMˆØ×!Ò! !Ñ$Ô$Ð$rX   c                 ód  — | j         t          j         d¦  «        k    ryt          j        |¦  «        }t          j        |j        | j         ¦  «        }t          j        ||gddgdgdgg¦  «        }|D ]#\  }}|                      |d         ¦  «        |d<   Œ$|S t          j        || j         ¬¦  «        S )	NÚOÚrefs_okÚzerosize_okÚreadonlyÚ	writeonlyr¦   .r  )rð   rr   ÚasarrayÚemptyrz  ÚnditerÚtype)rR   Úarrr³   Úiterrg   rh   s         rV   rA  z_TestLinearFilter.convert_dtype®  s­   € ØŒ:�œ #™œÒ&Ð&Ý”*˜S‘/”/ˆCÝ”(˜3œ9 d¤jÑ1Ô1ˆCÝ”9˜c 3˜Z¨)°MÐ)BØ$˜ { mÐ4ñ6ô 6ˆDàð *ð *‘��1ØŸš 1 R¤5Ñ)Ô)��#‘�ØˆJå”:˜c¨¬Ð4Ñ4Ô4Ð4rX   c                 óø   — |                       d¦  «        }|                      ddg¦  «        }|                      ddg¦  «        }|                      g d¢¦  «        }t          t          |||¦  «        |¦  «         d S ©N©rF   rH   r�   rô  ç      à¿©r   rI   rD   rF   r�   rò  ©rB  rA  r   r#   ©rR   rg   rT   rS   Úy_rs        rV   Útest_rank_1_IIRz!_TestLinearFilter.test_rank_1_IIRº  s}   € Ø�MŠM˜$ÑÔˆØ×Ò  2˜wÑ'Ô'ˆØ×Ò  T˜{Ñ+Ô+ˆØ× Ò Ð!5Ð!5Ð!5Ñ6Ô6ˆÝ!¥'¨!¨Q°Ñ"2Ô"2°CÑ8Ô8Ð8Ð8Ð8rX   c                 óö   — |                       d¦  «        }|                      ddg¦  «        }|                      dg¦  «        }|                      g d¢¦  «        }t          t          |||¦  «        |¦  «         d S )NrQ  rH   ©r   rH   rC   rE   r   rŽ  rT  rU  s        rV   Útest_rank_1_FIRz!_TestLinearFilter.test_rank_1_FIRÁ  s{   € Ø�MŠM˜$ÑÔˆØ×Ò  1˜vÑ&Ô&ˆØ×Ò ˜sÑ#Ô#ˆØ× Ò Ð!4Ð!4Ð!4Ñ5Ô5ˆÝ!¥'¨!¨Q°Ñ"2Ô"2°CÑ8Ô8Ð8Ð8Ð8rX   c                 ó‚  — |                       d¦  «        }|                      g d¢¦  «        }|                      ddg¦  «        }|                      ddg¦  «        }|                      g d¢¦  «        }|                      dd	g¦  «        }t          ||||¬
¦  «        \  }}t          ||¦  «         t          ||¦  «         d S )NrQ  ©rH   r   r�   rô  rR  rH   rI   )rH   rE   r  é   r�   rO  r]  éöÿÿÿ©Úzi©rB  rA  r#   r   ©	rR   rg   rT   rS   r`  rV  Úzf_rrh   Úzfs	            rV   Útest_rank_1_IIR_init_condz+_TestLinearFilter.test_rank_1_IIR_init_condÈ  sÉ   € Ø�MŠM˜$ÑÔˆØ×Ò˜z˜z˜zÑ*Ô*ˆØ×Ò  T˜{Ñ+Ô+ˆØ×Ò  A Ñ'Ô'ˆØ× Ò Ð!6Ð!6Ð!6Ñ7Ô7ˆØ×!Ò! 2 s )Ñ,Ô,ˆÝ˜˜1˜a BÐ'Ñ'Ô'‰ˆˆ2Ý! ! SÑ)Ô)Ð)Ý! " dÑ+Ô+Ð+Ð+Ð+rX   c                 ó€  — |                       d¦  «        }|                      g d¢¦  «        }|                      dg¦  «        }|                      ddg¦  «        }|                      g d¢¦  «        }|                      ddg¦  «        }t          ||||¬¦  «        \  }}t          ||¦  «         t          ||¦  «         d S )NrQ  ré  rH   )rH   rI   rC   rF   r  rÃ  r  rE   r_  ra  rb  s	            rV   Útest_rank_1_FIR_init_condz+_TestLinearFilter.test_rank_1_FIR_init_condÓ  sÇ   € Ø�MŠM˜$ÑÔˆØ×Ò˜y˜y˜yÑ)Ô)ˆØ×Ò ˜sÑ#Ô#ˆØ×Ò  A Ñ'Ô'ˆØ× Ò Ð!5Ð!5Ð!5Ñ6Ô6ˆØ×!Ò! 1 a &Ñ)Ô)ˆÝ˜˜1˜a BÐ'Ñ'Ô'‰ˆˆ2Ý! ! SÑ)Ô)Ð)Ý! " dÑ+Ô+Ð+Ð+Ð+rX   c                 ó  — |                       d¦  «        }|                      ddg¦  «        }|                      ddg¦  «        }|                      g d¢g d¢g d¢g d¢g¦  «        }t          |||d¬¦  «        }t          ||¦  «         d S )	N©rD   rC   rH   r�   rô  ©r   rI   rD   ©rF   rD   rI   r   ró  ra  )rR   rg   rT   rS   Úy_r2_a0rh   s         rV   Útest_rank_2_IIR_axis_0z(_TestLinearFilter.test_rank_2_IIR_axis_0Þ  s    € Ø�MŠM˜&Ñ!Ô!ˆØ×Ò  2˜wÑ'Ô'ˆØ×Ò  S˜zÑ*Ô*ˆØ×$Ò$ i i i°°°¸I¸I¸IØ&/ i ið&1ñ 2ô 2ˆå�A�q˜! !Ð$Ñ$Ô$ˆÝ! '¨1Ñ-Ô-Ð-Ð-Ð-rX   c                 ó  — |                       d¦  «        }|                      ddg¦  «        }|                      ddg¦  «        }|                      g d¢g d¢g d¢g d¢g¦  «        }t          |||d¬	¦  «        }t          ||¦  «         d S )
Nri  rH   r�   rô  ©r   rI   r   ©rF   rå  rF   ©rO   r^  rO   ©rW  iðÿÿÿrW  ró  ra  )rR   rg   rT   rS   Úy_r2_a1rh   s         rV   Útest_rank_2_IIR_axis_1z(_TestLinearFilter.test_rank_2_IIR_axis_1ç  s    € Ø�MŠM˜&Ñ!Ô!ˆØ×Ò  2˜wÑ'Ô'ˆØ×Ò  S˜zÑ*Ô*ˆØ×$Ò$ i i i°°°¸]¸]¸]Ø)˜M˜Mð&+ñ ,ô ,ˆå�A�q˜! !Ð$Ñ$Ô$ˆÝ! '¨1Ñ-Ô-Ð-Ð-Ð-rX   c                 óà  — |                       d¦  «        }|                      ddg¦  «        }|                      ddg¦  «        }|                      t          j        d¦  «        ¦  «        }|                      g d¢g d¢g d¢g d	¢g¦  «        }|                      g d
¢¦  «        d d …t          j        f         }t          |||d|¬¦  «        \  }}t          ||¦  «         t          ||¦  «         d S )Nri  rH   r�   rô  )rD   rH   ré  )r   éûÿÿÿr   )r]  éõÿÿÿr]  )rZ  éïÿÿÿrZ  )rv  rx  iãÿÿÿi×ÿÿÿ©rÅ  r`  )rB  rA  rr   rR  rù  r#   r   )	rR   rg   rT   rS   r`  Ú	y_r2_a0_1rc  rh   rd  s	            rV   Ú test_rank_2_IIR_axis_0_init_condz2_TestLinearFilter.test_rank_2_IIR_axis_0_init_condð  sú   € Ø�MŠM˜&Ñ!Ô!ˆØ×Ò  2˜wÑ'Ô'ˆØ×Ò  S˜zÑ*Ô*ˆØ×Ò¥¤¨¡¤Ñ/Ô/ˆà×&Ò&¨	¨	¨	°:°:°:¸}¸}¸}Ø+˜m˜mð(-ñ .ô .ˆ	à×!Ò!Ð"5Ð"5Ð"5Ñ6Ô6°q°q°q½"¼*°}ÔEˆÝ˜˜1˜a a¨BÐ/Ñ/Ô/‰ˆˆ2Ý! )¨QÑ/Ô/Ð/Ý! " dÑ+Ô+Ð+Ð+Ð+rX   c                 óº  — |                       d¦  «        }|                      ddg¦  «        }|                      ddg¦  «        }|                      t          j        d¦  «        ¦  «        }|                      g d¢g d¢g d¢g d¢g¦  «        }|                      g d¢g¦  «        }t	          |||d	|¬
¦  «        \  }}t          ||¦  «         t          ||¦  «         d S )Nri  rH   r�   rô  )rH   rC   )rH   rC   rE   )rE   rC   rH   )ééÿÿÿr}  r}  r   ry  )rB  rA  rr   rR  r#   r   )	rR   rg   rT   rS   r`  Ú	y_r2_a0_0rc  rh   rd  s	            rV   Ú test_rank_2_IIR_axis_1_init_condz2_TestLinearFilter.test_rank_2_IIR_axis_1_init_condý  së   € Ø�MŠM˜%Ñ Ô ˆØ×Ò  2˜wÑ'Ô'ˆØ×Ò  S˜zÑ*Ô*ˆØ×Ò¥¤¨¡¤Ñ/Ô/ˆà×&Ò&¨	¨	¨	°9°9°9Ø(1¨	¨	°9°9°9ð(>ñ ?ô ?ˆ	à×!Ò! ? ? ?Ð"3Ñ4Ô4ˆÝ˜˜1˜a a¨BÐ/Ñ/Ô/‰ˆˆ2Ý! )¨QÑ/Ô/Ð/Ý! " dÑ+Ô+Ð+Ð+Ð+rX   c                 ó6  ‡‡— |                       d¦  «        }|                      ddg¦  «        Š|                      ddg¦  «        Št          |j        ¦  «        D ]>}t	          ‰‰||¦  «        }t          j        ˆˆfd„||¦  «        }t          ||¦  «         Œ?d S )N©rD   rC   rI   rH   r�   rô  c                 ó&   •— t          ‰‰| ¦  «        S r$  ©r#   ©ÚwrS   rT   s    €€rV   ú<lambda>z3_TestLinearFilter.test_rank_3_IIR.<locals>.<lambda>  ó   ø€ µ¸¸1¸aÑ0@Ô0@€ rX   ©rB  rA  rt   Úndimr#   rr   Úapply_along_axisr   ©rR   rg   rÅ  rh   rV  rS   rT   s        @@rV   Útest_rank_3_IIRz!_TestLinearFilter.test_rank_3_IIR
  s«   øø€ Ø�MŠM˜)Ñ$Ô$ˆØ×Ò  2˜wÑ'Ô'ˆØ×Ò  S˜zÑ*Ô*ˆå˜!œ&‘M”Mð 	.ð 	.ˆDÝ˜˜1˜a Ñ&Ô&ˆAÝÔ%Ð&@Ð&@Ð&@Ð&@Ð&@À$ÈÑJÔJˆCÝ% a¨Ñ-Ô-Ð-Ð-ð	.ð 	.rX   c                 óL  ‡‡‡— |                       d¦  «        }|                      ddg¦  «        Š|                      ddg¦  «        Št          |j        ¦  «        D ]È}t	          |j        ¦  «        }d||<   |                      t          j        |¦  «        ¦  «        }|                      dg¦  «        Št          ‰‰|||¦  «        \  }}ˆˆˆfd„}ˆˆˆfd„}t          j	        |||¦  «        }	t          j	        |||¦  «        }
t          ||	¦  «         t          ||
¦  «         ŒÉd S )Nr�  rH   r�   rô  c                 ó6   •— t          ‰‰| ‰¬¦  «        d         S ©Nr_  r   rƒ  ©r…  rS   rT   Úzi1s    €€€rV   Úlf0z8_TestLinearFilter.test_rank_3_IIR_init_cond.<locals>.lf0  ó   ø€ Ý˜q ! Q¨3Ð/Ñ/Ô/°Ô2Ð2rX   c                 ó6   •— t          ‰‰| ‰¬¦  «        d         S ©Nr_  rH   rƒ  r�  s    €€€rV   Úlf1z8_TestLinearFilter.test_rank_3_IIR_init_cond.<locals>.lf1!  r“  rX   ©rB  rA  rt   r‰  r  rz  rr   rR  r#   rŠ  r   ©rR   rg   rÅ  Úzi_shaper`  rh   rd  r’  r–  rV  rc  rS   rT   r‘  s              @@@rV   Útest_rank_3_IIR_init_condz+_TestLinearFilter.test_rank_3_IIR_init_cond  sW  øøø€ Ø�MŠM˜)Ñ$Ô$ˆØ×Ò  2˜wÑ'Ô'ˆØ×Ò  S˜zÑ*Ô*ˆå˜!œ&‘M”Mð 	0ð 	0ˆDÝ˜AœG‘}”}ˆHØˆH�T‰NØ×#Ò#¥B¤G¨HÑ$5Ô$5Ñ6Ô6ˆBØ×$Ò$ a SÑ)Ô)ˆCÝ˜A˜q ! T¨2Ñ.Ô.‰EˆAˆrð3ð 3ð 3ð 3ð 3ð 3ð 3ð3ð 3ð 3ð 3ð 3ð 3ð 3åÔ% c¨4°Ñ3Ô3ˆCÝÔ& s¨D°!Ñ4Ô4ˆDÝ% a¨Ñ-Ô-Ð-Ý% b¨$Ñ/Ô/Ð/Ð/ð	0ð 	0rX   c                 ó4  ‡‡— |                       d¦  «        }|                      g d¢¦  «        Š|                      dg¦  «        Št          |j        ¦  «        D ]>}t	          ‰‰||¦  «        }t          j        ˆˆfd„||¦  «        }t          ||¦  «         Œ?d S )Nr�  r\  rH   c                 ó&   •— t          ‰‰| ¦  «        S r$  rƒ  r„  s    €€rV   r†  z3_TestLinearFilter.test_rank_3_FIR.<locals>.<lambda>/  r‡  rX   rˆ  r‹  s        @@rV   Útest_rank_3_FIRz!_TestLinearFilter.test_rank_3_FIR(  s©   øø€ Ø�MŠM˜)Ñ$Ô$ˆØ×Ò˜z˜z˜zÑ*Ô*ˆØ×Ò ˜sÑ#Ô#ˆå˜!œ&‘M”Mð 	.ð 	.ˆDÝ˜˜1˜a Ñ&Ô&ˆAÝÔ%Ð&@Ð&@Ð&@Ð&@Ð&@À$ÈÑJÔJˆCÝ% a¨Ñ-Ô-Ð-Ð-ð	.ð 	.rX   c                 óL  ‡‡‡— |                       d¦  «        }|                      g d¢¦  «        Š|                      dg¦  «        Št          |j        ¦  «        D ]É}t	          |j        ¦  «        }d||<   |                      t          j        |¦  «        ¦  «        }|                      ddg¦  «        Št          ‰‰|||¦  «        \  }}ˆˆˆfd„}ˆˆˆfd„}t          j	        |||¦  «        }	t          j	        |||¦  «        }
t          ||	¦  «         t          ||
¦  «         ŒÊd S )Nr�  r\  rH   rI   c                 ó6   •— t          ‰‰| ‰¬¦  «        d         S r�  rƒ  r�  s    €€€rV   r’  z8_TestLinearFilter.test_rank_3_FIR_init_cond.<locals>.lf0=  r“  rX   c                 ó6   •— t          ‰‰| ‰¬¦  «        d         S r•  rƒ  r�  s    €€€rV   r–  z8_TestLinearFilter.test_rank_3_FIR_init_cond.<locals>.lf1?  r“  rX   r—  r˜  s              @@@rV   Útest_rank_3_FIR_init_condz+_TestLinearFilter.test_rank_3_FIR_init_cond2  sW  øøø€ Ø�MŠM˜)Ñ$Ô$ˆØ×Ò˜z˜z˜zÑ*Ô*ˆØ×Ò ˜sÑ#Ô#ˆå˜!œ&‘M”Mð 	0ð 	0ˆDÝ˜AœG‘}”}ˆHØˆH�T‰NØ×#Ò#¥B¤G¨HÑ$5Ô$5Ñ6Ô6ˆBØ×$Ò$ a¨ VÑ,Ô,ˆCÝ˜A˜q ! T¨2Ñ.Ô.‰EˆAˆrð3ð 3ð 3ð 3ð 3ð 3ð 3ð3ð 3ð 3ð 3ð 3ð 3ð 3åÔ% c¨4°Ñ3Ô3ˆCÝÔ& s¨D°!Ñ4Ô4ˆDÝ% a¨Ñ-Ô-Ð-Ý% b¨$Ñ/Ô/Ð/Ð/ð	0ð 	0rX   c                 óz  — |                       d¦  «        }t          j        ddd¬¦  «        \  }}|                      |¦  «        }|                      |¦  «        }|j        d         dz
  }|                      t          j        dd	|f¦  «        ¦  «        }|                      t          j        dd|f¦  «        ¦  «        }t          ||||¬
¦  «        \  }}t          ||||¬
¦  «        \  }	}
t          |	|¦  «         t          ||
¦  «         t          t          t          |||dt          j        |¦  «        ¦  «         d S )N)rD   rE   rû   r�   rô  Úba©rš  r   rH   rD   rE   r_  r�   )rB  r   r&   rA  rz  rr   rR  r#   r   rŸ   r    )rR   rg   rT   rS   Úzi_sizeÚzi_fullÚzi_singÚy_fullÚzf_fullÚy_singÚzf_sings              rV   Útest_zi_pseudobroadcastz)_TestLinearFilter.test_zi_pseudobroadcastF  s*  € Ø�MŠM˜*Ñ%Ô%ˆÝŒm˜A˜s¨4Ð0Ñ0Ô0‰ˆˆ!Ø×Ò˜qÑ!Ô!ˆØ×Ò˜qÑ!Ô!ˆØ”'˜!”*˜q‘.ˆð ×$Ò$¥R¤W¨a°°G¨_Ñ%=Ô%=Ñ>Ô>ˆØ×$Ò$¥R¤W¨a°°G¨_Ñ%=Ô%=Ñ>Ô>ˆå! ! Q¨¨gÐ6Ñ6Ô6‰ˆ�Ý! ! Q¨¨gÐ6Ñ6Ô6‰ˆ�å! &¨&Ñ1Ô1Ð1Ý! '¨7Ñ3Ô3Ð3õ 	•j¥'¨1¨a°°B½¼ÀÑ8HÔ8HÑIÔIÐIÐIÐIrX   c                 ó  — |                       d¦  «        }|                      g d¢¦  «        }|                      dg¦  «        }|                      g d¢¦  «        }t          ||d         |¦  «        }t          ||¦  «         d S )NrF   r\  rH   )r   rH   rI   rI   rI   rI   r   ra  )rR   rg   rT   rS   rV  rh   s         rV   Útest_scalar_az_TestLinearFilter.test_scalar_a[  s„   € à�MŠM˜!ÑÔˆØ×Ò˜z˜z˜zÑ*Ô*ˆØ×Ò ˜sÑ#Ô#ˆØ× Ò Ð!3Ð!3Ð!3Ñ4Ô4ˆå�A�q˜”t˜QÑÔˆÝ! ! SÑ)Ô)Ð)Ð)Ð)rX   c                 ó^  — |                       t          j        dd¦  «        ¦  «        }|                       t          j        dd¦  «        ¦  «        }|                       t          j        g d¢¦  «        ¦  «        }t          j        dd¦  «        }|dd d …d d …fxx         dz  cc<   |dd d …d d …fxx         dz  cc<   |                       |¦  «        }|                       t          j        d	d¦  «        ¦  «        }t          j        dd¦  «        }dggdggdggg|d d …d d …d d
…f<   |                       |¦  «        }t          |||d|¦  «        \  }}t          ||¦  «         t          ||¦  «         t          ||d         |d|¦  «        \  }	}
t          |	|¦  «         t          |
|¦  «         d S )N)rC   rI   rE   ÚlrE   ©rH   r   r   )rC   rH   rD   rH   rI   rC   )rC   rI   rD   rD   r�   r   )rA  rr   r~  rR  r   r#   r   )rR   rg   rT   rS   r`  Úzf_expectedÚ
y_expectedÚy_iirÚzf_iirÚy_firÚzf_firs              rV   Útest_zi_some_singleton_dimsz-_TestLinearFilter.test_zi_some_singleton_dimse  s½  € ð ×Ò�rœx¨°Ñ5Ô5Ñ6Ô6ˆØ×Ò�rœw q¨#™œÑ/Ô/ˆØ×Ò�rœx¨¨¨Ñ0Ô0Ñ1Ô1ˆÝŒW�W˜cÑ"Ô"ˆØ
ˆ1ˆQˆQˆQˆqˆqˆqˆ5ˆ	ˆ	Œ	�Q‰ˆ	ˆ	‰	Ø
ˆ1ˆQˆQˆQˆqˆqˆqˆ5ˆ	ˆ	Œ	�Q‰ˆ	ˆ	‰	Ø×Ò Ñ#Ô#ˆà×(Ò(­¬°'¸3Ñ)?Ô)?Ñ@Ô@ˆÝ”X˜g sÑ+Ô+ˆ
Ø !˜s˜e q c U¨a¨S¨EÐ2ˆ
�1�1�1�Q�Q�Q�r˜�r�6ÑØ×'Ò'¨
Ñ3Ô3ˆ
õ    1 a¨¨RÑ0Ô0‰ˆˆvÝ! %¨Ñ4Ô4Ð4Ý! &¨+Ñ6Ô6Ð6õ    1 Q¤4¨¨B°Ñ3Ô3‰ˆˆvÝ! %¨Ñ4Ô4Ð4Ý! &¨+Ñ6Ô6Ð6Ð6Ð6rX   c           	      óì   — |                       |¦  «        }|                       |¦  «        }|                       |¦  «        }|                       |¦  «        }t          t          t          |||||¦  «         d S r$  )rA  rŸ   r    r#   )rR   rT   rS   rg   rÅ  r`  s         rV   Úbase_bad_size_ziz"_TestLinearFilter.base_bad_size_zi€  sn   € Ø×Ò˜qÑ!Ô!ˆØ×Ò˜qÑ!Ô!ˆØ×Ò˜qÑ!Ô!ˆØ×Ò Ñ#Ô#ˆÝ•j¥'¨1¨a°°D¸"Ñ=Ô=Ð=Ð=Ð=rX   c                 ó~  — t          j        d¦  «        }|                      dgdg|ddg¦  «         |                      ddgdg|dddg¦  «         |                      ddgdg|ddgg¦  «         |                      ddgdg|dg d¢¦  «         |                      g d¢dg|ddgg¦  «         |                      g d¢dg|dg d¢¦  «         |                      dgddg|dddg¦  «         |                      dgddg|ddgg¦  «         |                      dgddg|dg d¢¦  «         |                      g d¢ddg|ddg¦  «         |                      g d¢ddg|ddgdgg¦  «         |                      g d¢ddg|dg d¢¦  «         |                      g d¢ddg|dg d¢¦  «         |                      ddgg d¢|ddg¦  «         |                      ddgg d¢|ddgdgg¦  «         |                      ddgg d¢|dg d¢¦  «         |                      ddgg d¢|dg d¢¦  «         t          j        d¦  «                             d	¦  «        }|                      dgdg|ddg¦  «         |                      ddgdg|dg d¢¦  «         |                      ddgdg|dg d¢gg¦  «         |                      ddgdg|ddgdgd
gg¦  «         |                      ddgdg|dddgg¦  «         |                      ddgdg|dg d¢g¦  «         |                      g d¢dg|dg d¢¦  «         |                      g d¢dg|dg d¢g d¢gg¦  «         |                      g d¢dg|dddgd
dgddgg¦  «         |                      g d¢dg|dddgd
dgg¦  «         |                      g d¢dg|dg d¢g d¢g¦  «         |                      dgddg|dg d¢¦  «         |                      dgddg|dg d¢gg¦  «         |                      dgddg|ddgdgd
gg¦  «         |                      dgddg|dddgg¦  «         |                      dgddg|dg d¢g¦  «         |                      dgg d¢|dg d¢¦  «         |                      dgg d¢|dg d¢g d¢gg¦  «         |                      dgg d¢|dddgd
dgddgg¦  «         |                      dgg d¢|dddgd
dgg¦  «         |                      dgg d¢|dg d¢g d¢g¦  «         |                      g d¢ddg|dg d¢¦  «         |                      g d¢ddg|dg d¢g d¢gg¦  «         |                      g d¢ddg|dddgd
dgddgg¦  «         |                      g d¢ddg|dddgd
dgg¦  «         |                      g d¢ddg|dg d¢g d¢g¦  «         |                      dgdg|ddg¦  «         |                      ddgdg|dg d¢¦  «         |                      ddgdg|ddgdgd
gdggg¦  «         |                      ddgdg|dg d¢g¦  «         |                      ddgdg|ddgdgd
gg¦  «         |                      ddgdg|ddgdgd
gdgdgg¦  «         |                      g d¢dg|dg d¢¦  «         |                      g d¢dg|dddgd
dgddgddggg¦  «         |                      g d¢dg|dg d¢g d¢g¦  «         |                      g d¢dg|dddgd
dgddgg¦  «         |                      g d¢dg|dddgd
dgddgddgddgg¦  «         |                      dgddg|dg d¢¦  «         |                      dgddg|ddgdgd
gdggg¦  «         |                      dgddg|dg d¢g¦  «         |                      dgddg|ddgdgd
gg¦  «         |                      dgddg|ddgdgd
gdgdgg¦  «         |                      dgg d¢|dg d¢¦  «         |                      dgg d¢|dddgd
dgddgddggg¦  «         |                      dgg d¢|dg d¢g d¢g¦  «         |                      dgg d¢|dddgd
dgddgg¦  «         |                      dgg d¢|dddgd
dgddgddgddgg¦  «         |                      g d¢ddg|dg d¢¦  «         |                      g d¢ddg|dddgd
dgddgddggg¦  «         |                      g d¢ddg|dg d¢g d¢g¦  «         |                      g d¢ddg|dddgd
dgddgg¦  «         |                      g d¢ddg|dddgd
dgddgddgddgg¦  «         d S )NrF   rH   r�   r   ©r   rH   rI   ré  ©r   rH   rI   rC   rO   ri  rI   )r   rH   rI   rC   rD   rE   rZ   rC   rD   rE   )rD   rE   rF   r   )r   rH   rI   rC   rD   rE   rF   r   r   r�   r  )rr   r   rº  rs   )rR   rà   rá   s      rV   Útest_bad_size_ziz"_TestLinearFilter.test_bad_size_zi‡  sy  € åŒY�q‰\Œ\ˆØ×Ò˜q˜c A 3¨¨B°°Ñ4Ô4Ð4Ø×Ò˜q !˜f q c¨2¨r°A°q°6Ñ:Ô:Ð:Ø×Ò˜q !˜f q c¨2¨r°Q°C°5Ñ9Ô9Ð9Ø×Ò˜q !˜f q c¨2¨r°9°9°9Ñ=Ô=Ð=Ø×Ò˜i˜i˜i¨!¨¨b°"¸°s°eÑ<Ô<Ð<Ø×Ò˜i˜i˜i¨!¨¨b°"°i°i°iÑ@Ô@Ð@Ø×Ò˜q˜c A q 6¨2¨r°A°q°6Ñ:Ô:Ð:Ø×Ò˜q˜c A q 6¨2¨r°Q°C°5Ñ9Ô9Ð9Ø×Ò˜q˜c A q 6¨2¨r°9°9°9Ñ=Ô=Ð=Ø×Ò˜i˜i˜i¨!¨Q¨°°R¸!¸Ñ=Ô=Ð=Ø×Ò˜i˜i˜i¨!¨Q¨°°R¸1¸#À¸s¸ÑDÔDÐDØ×Ò˜i˜i˜i¨!¨Q¨°°R¸¸¸ÑCÔCÐCØ×Ò˜i˜i˜i¨!¨Q¨°°R¸¸¸ÑFÔFÐFØ×Ò˜q !˜f i i i°°R¸!¸Ñ=Ô=Ð=Ø×Ò˜q !˜f i i i°°R¸1¸#À¸s¸ÑDÔDÐDØ×Ò˜q !˜f i i i°°R¸¸¸ÑCÔCÐCØ×Ò˜q !˜f i i i°°R¸¸¸ÑFÔFÐFõ ŒY�r‰]Œ]×"Ò" 5Ñ)Ô)ˆà×Ò˜q˜c A 3¨¨A°¨sÑ3Ô3Ð3ð 	×Ò˜q !˜f q c¨2¨q°'°'°'Ñ:Ô:Ð:Ø×Ò˜q !˜f q c¨2¨q°G°G°G°9°+Ñ>Ô>Ð>Ø×Ò˜q !˜f q c¨2¨q°A°3¸¸¸a¸S°/ÑBÔBÐBØ×Ò˜q !˜f q c¨2¨q°A°a°5°'Ñ:Ô:Ð:Ø×Ò˜q !˜f q c¨2¨q°9°9°9°+Ñ>Ô>Ð>à×Ò˜i˜i˜i¨!¨¨b°!°]°]°]ÑCÔCÐCØ×Ò˜i˜i˜i¨!¨¨b°!°w°w°w¸w¸w¸wÐ6GÐ5HÑIÔIÐIØ×Ò˜i˜i˜i¨!¨¨b°!°q¸°e¸Q¸q¸EÀ1ÀQÀ%Ð5HÑIÔIÐIØ×Ò˜i˜i˜i¨!¨¨b°!°q¸°e¸Q¸q¸E°]ÑCÔCÐCØ×Ò˜i˜i˜i¨!¨¨b°!°i°i°iÀ	À	À	Ð5JÑKÔKÐKà×Ò˜q˜c A q 6¨2¨q°'°'°'Ñ:Ô:Ð:Ø×Ò˜q˜c A q 6¨2¨q°G°G°G°9°+Ñ>Ô>Ð>Ø×Ò˜q˜c A q 6¨2¨q°A°3¸¸¸a¸S°/ÑBÔBÐBØ×Ò˜q˜c A q 6¨2¨q°A°a°5°'Ñ:Ô:Ð:Ø×Ò˜q˜c A q 6¨2¨q°9°9°9°+Ñ>Ô>Ð>à×Ò˜q˜c 9 9 9¨b°!°]°]°]ÑCÔCÐCØ×Ò˜q˜c 9 9 9¨b°!°w°w°w¸w¸w¸wÐ6GÐ5HÑIÔIÐIØ×Ò˜q˜c 9 9 9¨b°!°q¸°e¸Q¸q¸EÀ1ÀQÀ%Ð5HÑIÔIÐIØ×Ò˜q˜c 9 9 9¨b°!°q¸°e¸Q¸q¸E°]ÑCÔCÐCØ×Ò˜q˜c 9 9 9¨b°!°i°i°iÀ	À	À	Ð5JÑKÔKÐKà×Ò˜i˜i˜i¨!¨Q¨°°Q¸¸¸ÑFÔFÐFØ×Ò˜i˜i˜i¨!¨Q¨°°Q¸'¸'¸'À'À'À'Ð9JÐ8KÑLÔLÐLØ×Ò˜i˜i˜i¨!¨Q¨°°Q¸!¸A¸ÀÀ!¸uÀaÈÀUÐ8KÑLÔLÐLØ×Ò˜i˜i˜i¨!¨Q¨°°Q¸!¸A¸ÀÀ!¸u¸ÑFÔFÐFØ×Ò˜i˜i˜i¨!¨Q¨°°Q¸¸¸À9À9À9Ð8MÑNÔNÐNð 	×Ò˜q˜c A 3¨¨A°¨sÑ3Ô3Ð3à×Ò˜q !˜f q c¨2¨q°)°)°)Ñ<Ô<Ð<Ø×Ò˜q !˜f q c¨2¨q°Q°C¸¸¸Q¸CÀÀÐ3DÐ2EÑFÔFÐFØ×Ò˜q !˜f q c¨2¨q°<°<°<°.ÑAÔAÐAØ×Ò˜q !˜f q c¨2¨q°A°3¸°s¸A¸3°-Ñ@Ô@Ð@Ø×Ò˜q !˜f q c¨2¨q°A°3¸°s¸A¸3À¸sÀAÀ3Ð2GÑHÔHÐHà×Ò˜i˜i˜i¨!¨¨b°!Ð5FÐ5FÐ5FÑGÔGÐGØ×Ò˜i˜i˜i¨!¨¨b°!¸¸!°u¸aÀ¸UÀAÀaÀ5È!ÈAÈÐ6OÐ5PÑQÔQÐQØ×Ò˜i˜i˜i¨!¨¨b°!°i°i°iÀ	À	À	Ð5JÑKÔKÐKØ×Ò˜i˜i˜i¨!¨¨b°!°q¸°e¸Q¸q¸EÀ1ÀQÀ%Ð5HÑIÔIÐIØ×Ò˜i˜i˜i¨!¨¨b°!°q¸°e¸Q¸q¸EÀ1ÀQÀ%ÈÈ1ÈÈqÐQRÈeÐ5TÑUÔUÐUà×Ò˜q˜c A q 6¨2¨q°)°)°)Ñ<Ô<Ð<Ø×Ò˜q˜c A q 6¨2¨q°Q°C¸¸¸Q¸CÀÀÐ3DÐ2EÑFÔFÐFØ×Ò˜q˜c A q 6¨2¨q°<°<°<°.ÑAÔAÐAØ×Ò˜q˜c A q 6¨2¨q°A°3¸°s¸A¸3°-Ñ@Ô@Ð@Ø×Ò˜q˜c A q 6¨2¨q°A°3¸°s¸A¸3À¸sÀAÀ3Ð2GÑHÔHÐHà×Ò˜q˜c 9 9 9¨b°!Ð5FÐ5FÐ5FÑGÔGÐGØ×Ò˜q˜c 9 9 9¨b°!¸¸!°u¸aÀ¸UÀAÀaÀ5È!ÈAÈÐ6OÐ5PÑQÔQÐQØ×Ò˜q˜c 9 9 9¨b°!°i°i°iÀ	À	À	Ð5JÑKÔKÐKØ×Ò˜q˜c 9 9 9¨b°!°q¸°e¸Q¸q¸EÀ1ÀQÀ%Ð5HÑIÔIÐIØ×Ò˜q˜c 9 9 9¨b°!°q¸°e¸Q¸q¸EÀ1ÀQÀ%ÈÈ1ÈÈqÐQRÈeÐ5TÑUÔUÐUà×Ò˜i˜i˜i¨!¨Q¨°°QÐ8IÐ8IÐ8IÑJÔJÐJØ×Ò˜i˜i˜i¨!¨Q¨°°Q¸1¸Q¸%ÀÀ1ÀÀqÈÀeÈQÈqÈEÐ9RÐ8SÑTÔTÐTØ×Ò˜i˜i˜i¨!¨Q¨°°Q¸¸¸À9À9À9Ð8MÑNÔNÐNØ×Ò˜i˜i˜i¨!¨Q¨°°Q¸!¸A¸ÀÀ!¸uÀaÈÀUÐ8KÑLÔLÐLØ×Ò˜i˜i˜i¨!¨Q¨°°Q¸!¸A¸ÀÀ!¸uÀaÈÀUÈAÈaÈ5ÐRSÐTUÐQVÐ8WÑXÔXÐXÐXÐXrX   c                 ó\  — |                       d¦  «        }|                      dg¦  «        }|                      dg¦  «        }|                      g ¦  «        }t          ||||¬¦  «        \  }}t          ||¦  «         t	          |j        | j        ¦  «         t	          |j        d¦  «         d S )N)rE   rH   r_  r   )rB  rA  r#   r   r
   rð   rÚ   )rR   rg   rS   rT   r`  rh   rd  s          rV   Útest_empty_ziz_TestLinearFilter.test_empty_ziç  s¦   € à�MŠM˜$ÑÔˆØ×Ò ˜sÑ#Ô#ˆØ×Ò ˜sÑ#Ô#ˆØ×Ò Ñ#Ô#ˆÝ˜˜1˜a BÐ'Ñ'Ô'‰ˆˆ2Ý! ! QÑ'Ô'Ð'Ý�R”X˜tœzÑ*Ô*Ð*Ý�R”W˜aÑ Ô Ð Ð Ð rX   c                 ó  — |                       dg¦  «        }|                       dg¦  «        }t          ||ddg¦  «        }t          ||ddg¦  «        }t          ||ddg¦  «        }t          ||¦  «         t          ||¦  «         d S )NrH   rM  r   TF)rA  r,   r   )rR   rS   rT   r`  Úzi_1Úzi_2s         rV   Útest_lfiltic_bad_ziz%_TestLinearFilter.test_lfiltic_bad_ziò  s‘   € à×Ò ˜sÑ#Ô#ˆØ×Ò ˜sÑ#Ô#ˆå�Q˜˜B ˜7Ñ#Ô#ˆÝ�q˜!˜a ˜VÑ$Ô$ˆÝ�q˜!˜d E˜]Ñ+Ô+ˆÝ˜2˜tÑ$Ô$Ð$Ý˜2˜tÑ$Ô$Ð$Ð$Ð$rX   c                 ó€  — |                       dg¦  «        }|                       g d¢¦  «        }|                       ddg¦  «        }|                       dg¦  «        }|                       dg¦  «        }|                       ddg¦  «        }t          ||||¬¦  «        \  }}t          ||¦  «         t          ||¦  «         d S )	NrH   r\  rI   r   rX  r8  é¸ÿÿÿr_  ©rA  r#   r   ©	rR   rS   rT   r`  rg   ÚyeÚzferh   rd  s	            rV   Útest_short_x_FIRz"_TestLinearFilter.test_short_x_FIRý  sÈ   € ð ×Ò ˜sÑ#Ô#ˆØ×Ò˜z˜z˜zÑ*Ô*ˆØ×Ò  A Ñ'Ô'ˆØ×Ò ˜tÑ$Ô$ˆØ×Ò  Ñ%Ô%ˆØ× Ò  ! S Ñ*Ô*ˆÝ˜˜1˜a BÐ'Ñ'Ô'‰ˆˆ2Ý! ! RÑ(Ô(Ð(Ý! " cÑ*Ô*Ð*Ð*Ð*rX   c                 ó‚  — |                       ddg¦  «        }|                       g d¢¦  «        }|                       ddg¦  «        }|                       dg¦  «        }|                       dg¦  «        }|                       ddg¦  «        }t          ||||¬	¦  «        \  }}t          ||¦  «         t          ||¦  «         d S )
NrH   r\  rI   r   rX  r8  i½ÿÿÿrÆ  r_  rÇ  rÈ  s	            rV   Útest_short_x_IIRz"_TestLinearFilter.test_short_x_IIR
  sÊ   € ð ×Ò  1˜vÑ&Ô&ˆØ×Ò˜z˜z˜zÑ*Ô*ˆØ×Ò  A Ñ'Ô'ˆØ×Ò ˜tÑ$Ô$ˆØ×Ò  Ñ%Ô%ˆØ× Ò  # s Ñ,Ô,ˆÝ˜˜1˜a BÐ'Ñ'Ô'‰ˆˆ2Ý! ! RÑ(Ô(Ð(Ý! " cÑ*Ô*Ð*Ð*Ð*rX   c                 óŒ  — |                       d¦  «        }|                      ddg¦  «        }|                     ¦   «         }|                      ddg¦  «        }|                     ¦   «         }|                      g d¢¦  «        }t          |||¦  «        }t	          ||¦  «         t          ||¦  «         t          ||¦  «         d S rP  ©rB  rA  rä  r#   r   r
   ©rR   rg   rT   Úb0rS   Úa0rV  Úy_fs           rV   Útest_do_not_modify_a_b_IIRz,_TestLinearFilter.test_do_not_modify_a_b_IIR  s¼   € Ø�MŠM˜$ÑÔˆØ×Ò  2˜wÑ'Ô'ˆØ�VŠV‰XŒXˆØ×Ò  T˜{Ñ+Ô+ˆØ�VŠV‰XŒXˆØ× Ò Ð!5Ð!5Ð!5Ñ6Ô6ˆÝ�a˜˜AÑÔˆÝ! # sÑ+Ô+Ð+Ý�Q˜ÑÔÐÝ�Q˜ÑÔÐÐÐrX   c                 óŠ  — |                       d¦  «        }|                      g d¢¦  «        }|                     ¦   «         }|                      dg¦  «        }|                     ¦   «         }|                      g d¢¦  «        }t          |||¦  «        }t	          ||¦  «         t          ||¦  «         t          ||¦  «         d S )NrQ  r;  rI   )r   rô  rH   rI   rC   rN  rÏ  rÐ  s           rV   Útest_do_not_modify_a_b_FIRz,_TestLinearFilter.test_do_not_modify_a_b_FIR#  sº   € Ø�MŠM˜$ÑÔˆØ×Ò˜y˜y˜yÑ)Ô)ˆØ�VŠV‰XŒXˆØ×Ò ˜sÑ#Ô#ˆØ�VŠV‰XŒXˆØ× Ò Ð!6Ð!6Ð!6Ñ7Ô7ˆÝ�a˜˜AÑÔˆÝ! # sÑ+Ô+Ð+Ý�Q˜ÑÔÐÝ�Q˜ÑÔÐÐÐrX   rS   rM  rT   c                 óì   — t           j                             d¦  «        }t          t	          t          j        dg¦  «        t          j        dg¦  «        |¦  «        t	          |||¦  «        ¦  «         d S )NrJ   rM  )rr   rì   rï   r   r#   r   )rR   rS   rT   rž  s       rV   Útest_scalar_inputz#_TestLinearFilter.test_scalar_input/  se   € õ Œy�Š˜rÑ"Ô"ˆÝÝ•B”H˜c˜U‘O”O¥R¤X¨s¨e¡_¤_°dÑ;Ô;Ý�A�q˜$ÑÔñ	!ô 	!ð 	!ð 	!ð 	!rX   N)"r£   r¤   r¥   rB  rA  rW  rZ  re  rg  rm  rt  r{  r  rŒ  rš  r�  r¡  r¬  r®  r¸  rº  r¾  rÀ  rÄ  rË  rÍ  rÔ  rÖ  rf  rg  rh  rr   r   rØ  r¦   rX   rV   r>  r>  ¨  s  € € € € € ð%ð %ð %ð
5ð 
5ð 
5ð9ð 9ð 9ð9ð 9ð 9ð	,ð 	,ð 	,ð	,ð 	,ð 	,ð.ð .ð .ð.ð .ð .ð,ð ,ð ,ð,ð ,ð ,ð.ð .ð .ð0ð 0ð 0ð(.ð .ð .ð0ð 0ð 0ð(Jð Jð Jð**ð *ð *ð7ð 7ð 7ð6>ð >ð >ð^Yð ^Yð ^Yð@	!ð 	!ð 	!ð	%ð 	%ð 	%ð+ð +ð +ð+ð +ð +ð
ð 
ð 
ð
ð 
ð 
ð „[×Ò˜S 3¨¨¨x¨r¬x¸©}¬}Ð"=Ñ>Ô>Ø„[×Ò˜S 3¨¨¨x¨r¬x¸©}¬}Ð"=Ñ>Ô>ð!ð !ñ ?Ô>ñ ?Ô>ð!ð !ð !rX   r>  c                   ó.   — e Zd Z ej        d¦  «        ZdS )ÚTestLinearFilterFloat32rÛ   N©r£   r¤   r¥   rr   rð   r¦   rX   rV   rÚ  rÚ  8  ó   € € € € € ØˆBŒH�S‰MŒM€E€E€ErX   rÚ  c                   ó.   — e Zd Z ej        d¦  «        ZdS )ÚTestLinearFilterFloat64rŠ   NrÛ  r¦   rX   rV   rÞ  rÞ  <  rÜ  rX   rÞ  c                   ó.   — e Zd Z ej        d¦  «        ZdS )ÚTestLinearFilterFloatExtendedr  NrÛ  r¦   rX   rV   rà  rà  @  rÜ  rX   rà  c                   ó.   — e Zd Z ej        d¦  «        ZdS )ÚTestLinearFilterComplex64ÚFNrÛ  r¦   rX   rV   râ  râ  D  rÜ  rX   râ  c                   ó.   — e Zd Z ej        d¦  «        ZdS )ÚTestLinearFilterComplex128ÚDNrÛ  r¦   rX   rV   rå  rå  H  rÜ  rX   rå  c                   ó.   — e Zd Z ej        d¦  «        ZdS )ÚTestLinearFilterComplexExtendedÚGNrÛ  r¦   rX   rV   rè  rè  L  rÜ  rX   rè  c                   ó4   — e Zd Z ej        d¦  «        Zd„ ZdS )ÚTestLinearFilterDecimalrD  c                 ó:   — t          t          |¦  «        ¦  «        S r$  )r   Ústr©rR   rg   s     rV   rL  zTestLinearFilterDecimal.typeR  s   € Ý•s˜1‘v”v‰ŒÐrX   N)r£   r¤   r¥   rr   rð   rL  r¦   rX   rV   rë  rë  O  s2   € € € € € ØˆBŒH�S‰MŒM€Eðð ð ð ð rX   rë  c                   ó2   — e Zd Z ej        d¦  «        ZeZdS )ÚTestLinearFilterObjectrD  N)r£   r¤   r¥   rr   rð   r\  rL  r¦   rX   rV   rð  rð  V  s"   € € € € € ØˆBŒH�S‰MŒM€EØ€D€D€DrX   rð  c                  ó:  — t          t          d¦  «        r"dt          j        v rt          j        d¦  «         t          t          t          dgdgg d¢¦  «         t          t          t          dgd gg d¢¦  «         t          t          t          d gdgg d¢¦  «         d S )NÚabiflagsrŠ   z'test is flaky when run with python3-dbgrM  )rM  NrK  ©rM  rK  rM  )ÚhasattrÚsysrò  rf  ru  rŸ   Ú	TypeErrorr#   r¦   rX   rV   Útest_lfilter_bad_objectr÷  [  s–   € õ �s�JÑÔð ? C­3¬<Ð$7Ð$7ÝŒÐ=Ñ>Ô>Ð>Ý•)�W s e¨c¨UÐ4DÐ4DÐ4DÑEÔEÐEÝ•)�W s e¨d¨V°_°_°_ÑEÔEÐEÝ•)�W t f¨s¨e°_°_°_ÑEÔEÐEÐEÐErX   c                  óL   — t          t          t          ddgddgg d¢¦  «         d S )NrI   rC   rD   rE   )rH   rI   rC   rD   rE   )rŸ   ÚNotImplementedErrorr#   r¦   rX   rV   Ú!test_lfilter_notimplemented_inputrú  e  s+   € åÕ%¥w°°1°¸¸!°u¸k¸k¸kÑJÔJÐJÐJÐJrX   Údtc                   óP   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ ZdS )ÚTestCorrelateRealc                 ó  — t          j        ddd¦  «                             |¦  «        }t          j        ddd¦  «                             |¦  «        }t          j        g d¢¦  «                             |¦  «        }|||fS )Nr   rC   rD   rH   rI   )r   rI   rE   r�   rC   )rr   rÑ  rò   r   ©rR   rû  rS   rT   rV  s        rV   Ú_setup_rank1zTestCorrelateReal._setup_rank1o  sq   € ÝŒK˜˜1˜aÑ Ô ×'Ò'¨Ñ+Ô+ˆÝŒK˜˜1˜aÑ Ô ×'Ò'¨Ñ+Ô+ˆåŒh���Ñ'Ô'×.Ò.¨rÑ2Ô2ˆØ�!�SˆyÐrX   c                 óÈ   — d}	 t          j        |¦  «        }t          |d¦  «        r)t          dt          j        |j        ¦  «        z  ¦  «        }n# t          $ r Y nw xY w|S )NrF   Ú
resolutionrR  )rr   rt  rô  r  Úlog10r  Ú	Exception)rR   Úres_dtr­  Údt_infos       rV   Úequal_tolerancez!TestCorrelateReal.equal_tolerancev  ss   € àˆð	Ý”h˜vÑ&Ô&ˆGÝ�w Ñ-Ô-ð AÝ˜d¥2¤8¨GÔ,>Ñ#?Ô#?Ñ?Ñ@Ô@�øøÝð 	ð 	ð 	ØˆDð	øøøàˆs   „AA Á
AÁAc                 óŠ   — |t           j        k    r|                      t           j        ¦  «        S |                      |¦  «        S r$  )rr   rS  r  rÏ   )rR   r  s     rV   Úequal_tolerance_fftz%TestCorrelateReal.equal_tolerance_fft�  s;   € ð •R”]Ò"Ð"Ø×'Ò'­¬
Ñ3Ô3Ð3à×'Ò'¨Ñ/Ô/Ð/rX   c                 ó  — |t           k    r>t          t          d¦  «        gt          d¦  «        g¦  «        }t          |d¦  «         d S |                      |¦  «        \  }}}t	          ||d¬¦  «        }t	          ||d¬¦  «        }t          |||                      |j        ¦  «        ¬¦  «         t          |||                      |j        ¦  «        ¬¦  «         t          |j        |¦  «         t          |j        |¦  «         d S )NrD   rC   ro   r   rp   r¬  )	r   r    r
   Ú_setup_rank3r   r   r	  rð   r  )rR   rû  rq   rS   rT   rV  Úy_fftÚy_directs           rV   Útest_methodzTestCorrelateReal.test_method‰  s  € Ø•Š=ˆ=Ý'­°©¬¨µw¸q±z´z°lÑCÔCˆFÝ˜ Ñ*Ô*Ð*Ð*Ð*à×)Ò)¨"Ñ-Ô-‰IˆAˆq�#Ý˜a ¨5Ð1Ñ1Ô1ˆEÝ   A¨hÐ7Ñ7Ô7ˆHå% cØ&+Ø.2×.FÒ.FÀuÄ{Ñ.SÔ.SðVñ Vô Vð Võ & cØ&.Ø.2×.BÒ.BÀ8Ä>Ñ.RÔ.RðUñ Uô Uð Uõ ˜œ bÑ)Ô)Ð)Ý˜œ¨Ñ,Ô,Ð,Ð,Ð,rX   c                 óB  — |                       |¦  «        \  }}}t          ||d¦  «        }t          ||dd…         ¦  «         t          |j        |¦  «         t          ||d¦  «        }t          ||dd…         d d d…         ¦  «         t          |j        |¦  «         d S )Nr’   rH   rD   r�   ©r   r   r   r
   rð   ©rR   rû  rS   rT   rV  rh   s         rV   Útest_rank1_validz"TestCorrelateReal.test_rank1_valid›  s£   € Ø×%Ò% bÑ)Ô)‰	ˆˆ1ˆcÝ�a˜˜GÑ$Ô$ˆÝ! ! S¨¨1¨¤XÑ.Ô.Ð.Ý�Q”W˜bÑ!Ô!Ð!õ �a˜˜GÑ$Ô$ˆÝ! ! S¨¨1¨¤X¨d¨d°¨d¤^Ñ4Ô4Ð4Ý�Q”W˜bÑ!Ô!Ð!Ð!Ð!rX   c                 ó´   — |                       |¦  «        \  }}}t          ||d¦  «        }t          ||d d…         ¦  «         t          |j        |¦  «         d S )Nr[   r�   r  r  s         rV   Útest_rank1_samez!TestCorrelateReal.test_rank1_same¦  s\   € Ø×%Ò% bÑ)Ô)‰	ˆˆ1ˆcÝ�a˜˜FÑ#Ô#ˆÝ! ! S¨¨"¨¤XÑ.Ô.Ð.Ý�Q”W˜bÑ!Ô!Ð!Ð!Ð!rX   c                 ó¤   — |                       |¦  «        \  }}}t          ||d¦  «        }t          ||¦  «         t          |j        |¦  «         d S )Nr‘   r  r  s         rV   Útest_rank1_fullz!TestCorrelateReal.test_rank1_full¬  sT   € Ø×%Ò% bÑ)Ô)‰	ˆˆ1ˆcÝ�a˜˜FÑ#Ô#ˆÝ! ! SÑ)Ô)Ð)Ý�Q”W˜bÑ!Ô!Ð!Ð!Ð!rX   c                 óÒ  — t          j        ddd¦  «                             dd¬¦  «                             |¦  «        }t          j        ddd¦  «                             d	d¬¦  «                             |¦  «        }t	          g d
¢g d¢g d¢g d¢g d¢g d¢gg d¢g d¢g d¢g d¢g d¢g d¢gg d¢g d¢g d¢g d¢g d¢g d¢ggt           j        ¬¦  «                             |¦  «        }|||fS )Nr   rf  r!  )rI   rD   rE   rã  )ÚorderrN   r  r}   )rõ  g      g@g     €@g     €Œ@ç     @•@g     À‹@g     €}@g      d@)g      G@g      {@g     ˜�@g     Àœ@g     à¤@ç     ˆš@g      ‹@g      p@)ç     À`@g      ‡@g     ø™@g      ¥@ç      ®@g     ä¢@g     @’@g      s@)g     @p@g     À�@g     0ž@g     à§@g     p°@g     (¤@g     `“@g     Àt@)g     @i@g     À„@ç     (”@g      Ÿ@g      ¥@g     Ø˜@g     @†@g     Àb@)g     €\@g     €u@g     „@g      Ž@g      ”@g     °†@g     €r@g      C@)g      7@g      y@g     ,�@ç      œ@g     ¥@g     $›@g     @Œ@g     Pr@)r  g     ÀŒ@g     ì @g     À¬@g      ´@g     Ô©@g      ™@g      }@)g     Pt@g      ˜@g     Rª@g     ˆµ@g     (¾@g     K²@g      ¡@g     ¸€@)g     Ø�@g     °ž@g     f®@g     °·@g     (À@g     }³@g     (¢@g     ¨�@)g      {@r  g     4¤@r  g     �´@g     Ü§@g     €”@ç     Àl@)g      n@g     à…@g     ”@g     €�@g     €£@g     œ•@g      €@rI  )g      6@g     Àj@g     €€@g      Œ@g     Ð”@g     pŠ@g     àz@g     €`@)g     €U@g     @~@g     (‘@r  g     P¤@g     ™@g      ˆ@g     Ài@)g     €g@g     ‰@r  g     X¥@g     ˜­@g      ¡@g     Ð�@g     @k@)g     @s@g     p�@g     xž@g     h§@g     ¨¯@g     À¢@g     Ø�@r  )r  g      …@r  g      ž@g     ¤@g     È–@g      ‚@g     €S@)g     €_@g      v@g     àƒ@g     àŒ@g     ð’@g     p„@g     @m@rõ  r  )rr   rÑ  rs   rò   r   rÏ   rÿ  s        rV   r  zTestCorrelateReal._setup_rank3²  so  € ÝŒK˜˜2˜rÑ"Ô"×*Ò*¨9¸CÐ*Ñ@Ô@×GÒGØñô ˆåŒK˜˜2˜rÑ"Ô"×*Ò*¨9¸CÐ*Ñ@Ô@×GÒGØñô ˆõ ÐEÐEÐEØIÐIÐIØKÐKÐKØKÐKÐKØJÐJÐJØFÐFÐFðHð JÐIÐIØKÐKÐKØLÐLÐLØLÐLÐLØLÐLÐLØIÐIÐIðKð GÐFÐFØIÐIÐIØKÐKÐKØLÐLÐLØIÐIÐIØEÐEÐEðGðHõ( œ*ð)&ñ &ô &÷( '-¢f¨R¡j¤jð) 	ð, �!�SˆyÐrX   c           	      óp  — |                       |¦  «        \  }}}t          ||d¦  «        }t          ||dd…dd…dd…f         ¦  «         t          |j        |¦  «         t          ||d¦  «        }t          ||dd…dd…dd…f         d d d…d d d…d d d…f         ¦  «         t          |j        |¦  «         d S )Nr’   rH   rI   rD   rC   rE   r�   ©r  r   r   r
   rð   r  s         rV   Útest_rank3_validz"TestCorrelateReal.test_rank3_validÐ  sÕ   € Ø×%Ò% bÑ)Ô)‰	ˆˆ1ˆcÝ�a˜˜GÑ$Ô$ˆÝ! ! S¨¨1¨¨a°¨c°1°Q°3¨Ô%7Ñ8Ô8Ð8Ý�Q”W˜bÑ!Ô!Ð!õ �a˜˜GÑ$Ô$ˆÝ! ! S¨¨1¨¨a°¨c°1°Q°3¨Ô%7¸¸¸"¸¸d¸dÀ¸dÀDÀDÀbÀDÐ8HÔ%IÑJÔJÐJÝ�Q”W˜bÑ!Ô!Ð!Ð!Ð!rX   c                 óÂ   — |                       |¦  «        \  }}}t          ||d¦  «        }t          ||dd…dd…dd…f         ¦  «         t          |j        |¦  «         d S )Nr[   r   r�   rH   r�  r!  r  s         rV   Útest_rank3_samez!TestCorrelateReal.test_rank3_sameÛ  sl   € Ø×%Ò% bÑ)Ô)‰	ˆˆ1ˆcÝ�a˜˜FÑ#Ô#ˆÝ! ! S¨¨2¨¨q°¨t°Q°r°TÐ)9Ô%:Ñ;Ô;Ð;Ý�Q”W˜bÑ!Ô!Ð!Ð!Ð!rX   c                 ó¢   — |                       |¦  «        \  }}}t          ||¦  «        }t          ||¦  «         t          |j        |¦  «         d S r$  r!  r  s         rV   Útest_rank3_allz TestCorrelateReal.test_rank3_allá  sP   € Ø×%Ò% bÑ)Ô)‰	ˆˆ1ˆcÝ�a˜‰OŒOˆÝ! ! SÑ)Ô)Ð)Ý�Q”W˜bÑ!Ô!Ð!Ð!Ð!rX   N)r£   r¤   r¥   r   r  r	  r  r  r  r  r  r"  r$  r&  r¦   rX   rV   rý  rý  j  s¹   € € € € € ð
ð ð ð	ð 	ð 	ð0ð 0ð 0ð-ð -ð -ð$	"ð 	"ð 	"ð"ð "ð "ð"ð "ð "ðð ð ð<	"ð 	"ð 	"ð"ð "ð "ð"ð "ð "ð "ð "rX   rý  c                   ó&   — e Zd Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestCorrelatec                 ó"  — t          j        dd¦  «                             d¦  «        }t          j        dd¦  «                             d¦  «        }t          t          t
          g||f¢R i ddi¤Ž t          t          t
          g||f¢R i ddi¤Ž d S r½   )rr   r   rs   rŸ   r    r   r¡   s      rV   rÁ   z!TestCorrelate.test_invalid_shapesë  s˜   € õ ŒI�a˜‰OŒO×#Ò# FÑ+Ô+ˆÝŒI�b˜!ÑÔ×$Ò$ VÑ,Ô,ˆå•j¥)ÐJ¨q°!¨fÐJÐJÐJ¸ÀÐ8IÐJÐJÐJÝ•j¥)ÐJ¨q°!¨fÐJÐJÐJ¸ÀÐ8IÐJÐJÐJÐJÐJrX   c                 óJ  — g d¢}g d¢}t          t          t          ||d¬¦  «         t          t          t          ||dd¬¦  «         t          t          t          ||dd	¬¦  «         t          t          t          ||d
d¬¦  «         t          t          t          ||dd¬¦  «         d S r˜   ©rŸ   r    r   r¡   s      rV   r¢   z!TestCorrelate.test_invalid_params÷  sŸ   € ØˆIˆIˆØˆIˆIˆÝ•j¥)¨Q°¸Ð?Ñ?Ô?Ð?Ý•j¥)¨Q°¸ÀuÐMÑMÔMÐMÝ•j¥)¨Q°¸ÀhÐOÑOÔOÐOÝ•j¥)¨Q°¸ÀwÐOÑOÔOÐOÝ•j¥)¨Q°¸ÀwÐOÑOÔOÐOÐOÐOrX   c                 óv  — t          t          t          dgdd¬¦  «         t          t          t          ddgd¬¦  «         t          t          t          dgdd¬¦  «         t          t          t          ddgd¬¦  «         t          t          t          dgdgg¦  «         t          t          t          dgd¦  «         d S r  r+  r  s    rV   r  z"TestCorrelate.test_mismatched_dims   s¤   € å•j¥)¨a¨S°!¸HÐEÑEÔEÐEÝ•j¥)¨Q°°¸HÐEÑEÔEÐEÝ•j¥)¨a¨S°!¸EÐBÑBÔBÐBÝ•j¥)¨Q°°¸EÐBÑBÔBÐBÝ•j¥)¨a¨S°A°3°%Ñ8Ô8Ð8Ý•j¥)¨a¨S°!Ñ4Ô4Ð4Ð4Ð4rX   c                 ó4  — g d¢}ddg}t          t          ||d¬¦  «        g d¢¦  «         g d¢}g d¢}t          t          ||d¬¦  «        g d¢¦  «         t          t          ||d	¬¦  «        g d
¢¦  «         t          t          ||d¬¦  «        dg¦  «         d S )NrG   rD   rE   r[   r\   )rE   é   rN   r~   )r�   rM   rN   r‘   )rF   r�   rM   rN   rO   r’   rM   )r   r   r¡   s      rV   Útest_numpy_fastpathz!TestCorrelate.test_numpy_fastpath	  s¹   € ØˆIˆIˆØ�ˆFˆÝ�	 ! Q¨VÐ4Ñ4Ô4°k°k°kÑBÔBÐBàˆIˆIˆØˆIˆIˆÝ�	 ! Q¨VÐ4Ñ4Ô4°l°l°lÑCÔCÐCÝ�	 ! Q¨VÐ4Ñ4Ô4Ð6IÐ6IÐ6IÑJÔJÐJÝ�	 ! Q¨WÐ5Ñ5Ô5¸°tÑ<Ô<Ð<Ð<Ð<rX   N)r£   r¤   r¥   rÁ   r¢   r  r/  r¦   rX   rV   r(  r(  è  sV   € € € € € ð
Kð 
Kð 
KðPð Pð Pð5ð 5ð 5ð	=ð 	=ð 	=ð 	=ð 	=rX   r(  r]   ©r’   r[   r‘   ÚbehindTFÚ
input_size)rÂ   rX  rx  ry  rî  i'  c                 óì  — t           j                             d¦  «        }|                     |¦  «        }t	          |dz  ¦  «        }|r-t          j        |                     |¦  «        |g¦  «        }| }n||d …         }|}t          ||| ¬¦  «        }t          |j        |j        | ¬¦  «        }	t          j	        |¦  «        }
t          |	|
         |¦  «         t          |	j        |j        ¦  «         d S )Nr   rJ   r\   )rr   rì   r  rö  r  Úconcatenater   r   rÚ   Úargmaxr
   rz  )r]   r1  r2  rü  Úin1ÚoffsetÚin2r²   ÚcorrelationÚlagsÚ	lag_indexs              rV   Útest_correlation_lagsr<    sî   € õ
 Œ)×
Ò
 Ñ
"Ô
"€CØ
×
Ò
˜jÑ
)Ô
)€CÝ�˜B‘ÑÔ€Fàð åŒn˜c×1Ò1°&Ñ9Ô9¸3Ð?Ñ@Ô@ˆØ�7ˆˆð �&�'�'ŒlˆØˆå˜C ¨4Ð0Ñ0Ô0€KÝ˜CœH c¤h°TÐ:Ñ:Ô:€Då”	˜+Ñ&Ô&€Iå��i” (Ñ+Ô+Ð+å�”˜[Ô.Ñ/Ô/Ð/Ð/Ð/rX   c                   óD   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
S )ÚTestCorrelateComplexc                 ó’   — |t           j        k    rt           j        }t          dt          j        |¦  «        j        z  dz  ¦  «        S )NrI   rC   )rr   rT  Úcdoubler  rt  Ú	precision)rR   rû  s     rV   r­  zTestCorrelateComplex.decimal:  s9   € Ø•”ÒÐÝ”ˆBÝ�1•r”x ‘|”|Ô-Ñ-°Ñ1Ñ2Ô2Ð2rX   c                 ó
  — t           j                             d¦  «         t           j                             d¦  «                             |¦  «        }|dt           j                             d¦  «                             |¦  «        z  z  }t           j                             d¦  «                             |¦  «        }|dt           j                             d¦  «                             |¦  «        z  z  }t          |j        |j        |¬¦  «        t          |j        |j        |¬¦  «        z                        |¦  «        }|dt          |j        |j        |¬¦  «         t          |j        |j        |¬¦  «        z   z  z  }|||fS )Nr  rJ   rŽ   r�   r\   )rr   rì   rí   rï   rò   r   rÓ  Úimag)rR   rû  r]   rS   rT   rV  s         rV   r   z!TestCorrelateComplex._setup_rank1?  s?  € Ý
Œ	�Š�qÑÔÐÝŒI�OŠO˜BÑÔ×&Ò& rÑ*Ô*ˆØ	ˆR•"”)—/’/ "Ñ%Ô%×,Ò,¨RÑ0Ô0Ñ0Ñ0ˆÝŒI�OŠO˜AÑÔ×%Ò% bÑ)Ô)ˆØ	ˆR•"”)—/’/ !Ñ$Ô$×+Ò+¨BÑ/Ô/Ñ/Ñ/ˆå˜œ ¤¨dÐ3Ñ3Ô3Ý˜œ ¤¨dÐ3Ñ3Ô3ñ4ß5;²V¸B±Z´Zð 	àˆr•i ¤¨¬°TÐ:Ñ:Ô:Ð:Ý˜qœv q¤v°DÐ9Ñ9Ô9ñ:ñ ;ñ 	;ˆà�!�SˆyÐrX   c                 óœ  — |                       |d¦  «        \  }}}t          ||d¦  «        }t          |||                      |¦  «        ¬¦  «         t	          |j        |¦  «         t          ||d¦  «        }t          ||d d d…                              ¦   «         |                      |¦  «        ¬¦  «         t	          |j        |¦  «         d S )Nr’   r¬  r�   )r   r   r   r­  r
   rð   Úconjr  s         rV   r  z%TestCorrelateComplex.test_rank1_validL  sÁ   € Ø×%Ò% b¨'Ñ2Ô2‰	ˆˆ1ˆcÝ�a˜˜GÑ$Ô$ˆÝ! ! S°$·,²,¸rÑ2BÔ2BÐCÑCÔCÐCÝ�Q”W˜bÑ!Ô!Ð!õ �a˜˜GÑ$Ô$ˆÝ! ! S¨¨¨2¨¤Y§^¢^Ñ%5Ô%5¸t¿|º|ÈBÑ?OÔ?OÐPÑPÔPÐPÝ�Q”W˜bÑ!Ô!Ð!Ð!Ð!rX   c                 óÐ   — |                       |d¦  «        \  }}}t          ||d¦  «        }t          |||                      |¦  «        ¬¦  «         t	          |j        |¦  «         d S )Nr[   r¬  ©r   r   r   r­  r
   rð   r  s         rV   r  z$TestCorrelateComplex.test_rank1_sameW  óg   € Ø×%Ò% b¨&Ñ1Ô1‰	ˆˆ1ˆcÝ�a˜˜FÑ#Ô#ˆÝ! ! S°$·,²,¸rÑ2BÔ2BÐCÑCÔCÐCÝ�Q”W˜bÑ!Ô!Ð!Ð!Ð!rX   c                 óÐ   — |                       |d¦  «        \  }}}t          ||d¦  «        }t          |||                      |¦  «        ¬¦  «         t	          |j        |¦  «         d S )Nr‘   r¬  rG  r  s         rV   r  z$TestCorrelateComplex.test_rank1_full]  rH  rX   c                 óª   — t          j        g d¢|¬¦  «        }t          j        g d¢|¬¦  «        }t          ||¦  «        }t          |g d¢¦  «         d S )N©r�   rc   r™  r  ©y      ð?      @y       @      @y      @      @y      @      @)r�   ù      $@       Àù      <@      Àù      6@      Ày      0@      Ày       @      À)rr   r   r   r
   ©rR   rû  rŠ   Úkrh   s        rV   Útest_swap_fullz#TestCorrelateComplex.test_swap_fullc  sb   € ÝŒHÐ-Ð-Ð-°RÐ8Ñ8Ô8ˆÝŒHÐ5Ð5Ð5¸RÐ@Ñ@Ô@ˆÝ�a˜‰OŒOˆÝ�QÐLÐLÐLÑMÔMÐMÐMÐMrX   c                 ó^   — g d¢}g d¢}t          ||d¬¦  «        }t          |g d¢¦  «         d S )NrK  rL  r[   r\   )rM  rN  rO  )r   r
   rP  s        rV   Útest_swap_samez#TestCorrelateComplex.test_swap_samei  sI   € Ø$Ð$Ð$ˆØ,Ð,Ð,ˆÝ�a˜ Ð(Ñ(Ô(ˆÝ�QÐ3Ð3Ð3Ñ4Ô4Ð4Ð4Ð4rX   c                 ób  — t           j                             ddd¦  «                             |¦  «        }|dt           j                             ddd¦  «                             |¦  «        z  z  }t           j                             ddd¦  «                             |¦  «        }|dt           j                             ddd¦  «                             |¦  «        z  z  }t	          |j        |j        ¦  «        t	          |j        |j        ¦  «        z                        |¦  «        }|dt	          |j        |j        ¦  «         t	          |j        |j        ¦  «        z   z  z  }t	          ||d¦  «        }t          |||                      |¦  «        dz
  ¬¦  «         t          |j
        |¦  «         d S )	NrJ   r�   rF   rŽ   rD   r‘   rH   r¬  )rr   rì   rï   rò   r   rÓ  rC  r   r­  r
   rð   r  s         rV   Ú
test_rank3zTestCorrelateComplex.test_rank3o  sc  € ÝŒI�OŠO˜B  1Ñ%Ô%×,Ò,¨RÑ0Ô0ˆØ	ˆR•"”)—/’/ " a¨Ñ+Ô+×2Ò2°2Ñ6Ô6Ñ6Ñ6ˆÝŒI�OŠO˜A˜q !Ñ$Ô$×+Ò+¨BÑ/Ô/ˆØ	ˆR•"”)—/’/ ! Q¨Ñ*Ô*×1Ò1°"Ñ5Ô5Ñ5Ñ5ˆå˜œ ¤Ñ(Ô(Ý˜1œ6 1¤6Ñ*Ô*ñ+ß,2ªF°2©J¬Jð 	àˆr•i ¤¨¬Ñ/Ô/Ð/µ)¸A¼FÀAÄFÑ2KÔ2KÑKÑLÑLˆå�a˜˜FÑ#Ô#ˆÝ! ! S°$·,²,¸rÑ2BÔ2BÀQÑ2FÐGÑGÔGÐGÝ�Q”W˜bÑ!Ô!Ð!Ð!Ð!rX   c           	      ó  — t          j        t           j                             ¦   «         ¦  «                             |¦  «        }|dt          j        t           j                             ¦   «         ¦  «                             |¦  «        z  z  }t          j        t           j                             ¦   «         ¦  «                             |¦  «        }|dt          j        t           j                             ¦   «         ¦  «                             |¦  «        z  z  }t          |j        |j        ¦  «        t          |j        |j        ¦  «        z                        |¦  «        }|dt          j        t          |j        |j        ¦  «         t          |j        |j        ¦  «        z   ¦  «        z  z  }t          ||d¦  «        }t          |||  	                    |¦  «        dz
  ¬¦  «         t          |j        |¦  «         t          t          dgdg¦  «        t          dd¦  «        ¦  «         t          t          dgdg¦  «        t          dd¦  «        ¦  «         t          t          dgdg¦  «        t          dd¦  «        ¦  «         d S )NrŽ   r‘   rH   r¬  rf   ù              @rD   )rr   r   rì   rï   rò   r   rÓ  rC  r   r­  r
   rð   r  s         rV   Ú
test_rank0zTestCorrelateComplex.test_rank0}  s  € ÝŒH•R”Y—_’_Ñ&Ô&Ñ'Ô'×.Ò.¨rÑ2Ô2ˆØ	ˆR•"”(�2œ9Ÿ?š?Ñ,Ô,Ñ-Ô-×4Ò4°RÑ8Ô8Ñ8Ñ8ˆÝŒH•R”Y—_’_Ñ&Ô&Ñ'Ô'×.Ò.¨rÑ2Ô2ˆØ	ˆR•"”(�2œ9Ÿ?š?Ñ,Ô,Ñ-Ô-×4Ò4°RÑ8Ô8Ñ8Ñ8ˆå˜œ ¤Ñ(Ô(Ý˜1œ6 1¤6Ñ*Ô*ñ+ß,2ªF°2©J¬Jð 	àˆr•B”H�i¨¬°´Ñ7Ô7Ð7Ý& q¤v¨q¬vÑ6Ô6ñ7ñ 8ô 8ñ 8ñ 	8ˆõ �a˜˜FÑ#Ô#ˆÝ! ! S°$·,²,¸rÑ2BÔ2BÀQÑ2FÐGÑGÔGÐGÝ�Q”W˜bÑ!Ô!Ð!å•Y ˜s R DÑ)Ô)­9°Q¸Ñ+;Ô+;Ñ<Ô<Ð<Ý•Y ˜t b TÑ*Ô*­I°b¸"Ñ,=Ô,=Ñ>Ô>Ð>Ý•Y ˜t a SÑ)Ô)­9°R¸Ñ+;Ô+;Ñ<Ô<Ð<Ð<Ð<rX   N)r£   r¤   r¥   r­  r   r  r  r  rR  rT  rV  rY  r¦   rX   rV   r>  r>  1  sž   € € € € € ð3ð 3ð 3ð
ð ð ð	"ð 	"ð 	"ð"ð "ð "ð"ð "ð "ðNð Nð Nð5ð 5ð 5ð"ð "ð "ð=ð =ð =ð =ð =rX   r>  c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )ÚTestCorrelate2dc           
      ó”  — t          j        d¦  «        }t          j        g d¢¦  «        }dD �]}t          t          j        |||¬¦  «        t          j        |||¬¦  «        ¦  «         t          t          j        t          j        |g|g|¬¦  «        ¦  «        t          j        |||¬¦  «        ¦  «         |dk    rˆt          t          j        |||¬¦  «        t          j        |||¬¦  «        ¦  «         t          t          j        t          j        |g|g|¬¦  «        ¦  «        t          j        |||¬¦  «        ¦  «         �Œd S )NrE   rp  rq  r\   r’   )rr   r   r   r   r   r   rr  r   rs  s       rV   Ú test_consistency_correlate_funcsz0TestCorrelate2d.test_consistency_correlate_funcs“  s}  € åŒI�a‰LŒLˆÝŒH�]�]�]Ñ#Ô#ˆØ-ð 	Gñ 	GˆDÝ¥¤¨Q°¸Ð =Ñ =Ô =Ý &Ô 0°°A¸DÐ AÑ AÔ AñCô Cð Cå¥¤
­6Ô+=¸q¸cÀAÀ3ØCGð,Iñ ,Iô ,Iñ !Jô !Jå &Ô 0°°A¸DÐ AÑ AÔ AñCô Cð Cð
 �wŠˆÝ#¥B¤L°°A¸DÐ$AÑ$AÔ$AÝ$*Ô$4°Q¸ÀÐ$EÑ$EÔ$EñGô Gð Gå#¥B¤J­vÔ/AÀ1À#ÈÀsØGKð0Mñ 0Mô 0Mñ %Nô %Nå$*Ô$4°Q¸ÀÐ$EÑ$EÔ$EñGô Gð Gùð	Gð 	GrX   c                 ó6  — t          j        dd¦  «                             d¦  «        }t          j        dd¦  «                             d¦  «        }t          t          t
          j        g||f¢R i ddi¤Ž t          t          t
          j        g||f¢R i ddi¤Ž d S r½   )rr   r   rs   rŸ   r    r   r   r¡   s      rV   rÁ   z#TestCorrelate2d.test_invalid_shapes¦  sž   € õ ŒI�a˜‰OŒO×#Ò# FÑ+Ô+ˆÝŒI�b˜!ÑÔ×$Ò$ VÑ,Ô,ˆå•j¥&Ô"4ÐS¸¸1°vÐSÐSÐSÀ&È'ÐARÐSÐSÐSÝ•j¥&Ô"4ÐS¸¸1°vÐSÐSÐSÀ&È'ÐARÐSÐSÐSÐSÐSrX   c                 óð   — t          t          j        dggdgg¦  «        d¦  «         t          t          j        dggdgg¦  «        d¦  «         t          t          j        dggdgg¦  «        d¦  «         d S )NrH   rf   ù       €       ÀrX  rF   rD   y              (@)r
   r   r   r  s    rV   Útest_complex_inputz"TestCorrelate2d.test_complex_input²  sw   € Ý•VÔ'¨!¨¨°°¨vÑ6Ô6¸Ñ<Ô<Ð<Ý•VÔ'¨"¨¨°"°°Ñ7Ô7¸Ñ;Ô;Ð;Ý•VÔ'¨"¨¨°!°°Ñ6Ô6¸Ñ<Ô<Ð<Ð<Ð<rX   N)r£   r¤   r¥   r]  rÁ   ra  r¦   rX   rV   r[  r[  ‘  sG   € € € € € ðGð Gð Gð&
Tð 
Tð 
Tð=ð =ð =ð =ð =rX   r[  c                   óz   — e Zd Zd„ Zd„ Zej                             dej	        ej
        g¦  «        d„ ¦   «         ZdS )ÚTestLFilterZIc                 óÊ   — t          j        g d¢¦  «        }t          j        g d¢¦  «        }t          j        ddg¦  «        }t          ||¦  «        }t          ||¦  «         d S )N)rM  rL  rô  )rM  rõ  rK  rz  rL  )rr   r   r$   r   )rR   rS   rT   Úzi_expectedr`  s        rV   rW   zTestLFilterZI.test_basicº  sc   € ÝŒHÐ%Ð%Ð%Ñ&Ô&ˆÝŒH�_�_�_Ñ%Ô%ˆÝ”h  T˜{Ñ+Ô+ˆÝ˜˜1ÑÔˆÝ! " kÑ2Ô2Ð2Ð2Ð2rX   c                 óÎ   — t          j        g d¢¦  «        }t          j        g d¢¦  «        }t          ||¦  «        }t          d|z  d|z  ¦  «        }t          ||d¬¦  «         d S )N)rI   r�   rE   )rH   rH   r�   rI   rø  rß  )rr   r   r$   r   )rR   rT   rS   r‘  Úzi2s        rV   Útest_scale_invariancez#TestLFilterZI.test_scale_invarianceÁ  sk   € õ ŒH�Y�Y�YÑÔˆÝŒH�Y�Y�YÑÔˆÝ˜˜AÑÔˆÝ˜˜1™˜a ™cÑ"Ô"ˆÝ˜˜S uÐ-Ñ-Ô-Ð-Ð-Ð-rX   rð   c                 óÔ   — t          j        d|¬¦  «        }t          j        dg|¬¦  «        }t          t          j        t          j        ||¦  «        ¦  «        j        |¦  «         d S )Nr�   r  rH   )rr   r~  r   r
   rÓ  r   r$   rð   )rR   rð   rT   rS   s       rV   rp  zTestLFilterZI.test_typesÊ  s\   € åŒH�a Ð&Ñ&Ô&ˆÝŒH�a�S Ð&Ñ&Ô&ˆÝ•R”W�VÔ.¨q°!Ñ4Ô4Ñ5Ô5Ô;¸UÑCÔCÐCÐCÐCrX   N)r£   r¤   r¥   rW   rh  rf  rg  rh  rr   rÎ   rÏ   rp  r¦   rX   rV   rc  rc  ¸  so   € € € € € ð3ð 3ð 3ð.ð .ð .ð „[×Ò˜W r¤z°2´:Ð&>Ñ?Ô?ðDð Dñ @Ô?ðDð Dð DrX   rc  c                   óB   — e Zd ZdZ	 	 dd„Zd„ Zd„ Zd	„ Zd
„ Zd„ Z	d„ Z
dS )ÚTestFiltFiltÚtfr�   ÚoddNrb  c           
      ó®   — | j         dk    r"t          |Ž \  }}	t          ||	||||||¦  «        S | j         dk    rt          |Ž }
t	          |
||||¦  «        S d S )Nrl  Úsos)Úfiltfilt_kindr'   r%   r(   r/   )rR   Úzpkrg   rÅ  rÂ  Úpadlenrq   ÚirlenrT   rS   ro  s              rV   r%   zTestFiltFilt.filtfiltÔ  sn   € àÔ Ò%Ð%Ý˜3�<‰DˆAˆqÝ˜A˜q ! T¨7°F¸FÀEÑJÔJÐJØÔ 5Ò(Ð(Ý˜3�-ˆCÝ˜s A t¨W°fÑ=Ô=Ð=ð )Ð(rX   c                 ó¼   — t          g d¢g d¢¦  «        }|                      |t          j        d¦  «        ¦  «        }t	          |t          d¦  «        d¬¦  «         d S )NrG   rO   g6Â‹{ðÍ=rð  )r1   r%   rr   r   r   )rR   rq  r³   s      rV   rW   zTestFiltFilt.test_basicÝ  sU   € Ý�Y�Y�Y 	 	 	Ñ*Ô*ˆØ�mŠm˜C¥¤¨2¡¤Ñ/Ô/ˆÝ˜�V B™ZœZ¨hÐ7Ñ7Ô7Ð7Ð7Ð7rX   c                 ó  — d}t          j        dd|dz   ¦  «        }t          j        dt           j        z  |z  ¦  «        }t          j        dt           j        z  |z  ¦  «        }||z   }t	          ddd	¬
¦  «        }t          j        |d         ¦  «                             ¦   «         }d}t          t          j        t          j	        |¦  «        t          j	        |¦  «        z  ¦  «        ¦  «        }	|  
                    |||	¬¦  «        }
t          j        |
|z
  ¦  «                             ¦   «         }t          |dk     ¦  «         t          j        |||z   g¦  «        }|  
                    |||	d¬¦  «        }t          |j        |j        ¦  «         t          j        ||z
  ¦  «                             ¦   «         }t          |dk     ¦  «         |  
                    ||j        |	d¬¦  «        }t          ||j        ¦  «         d S )NiÐ  r   rM  rH   rJ   iô  r�   ç      À?rq  r¤  rê   )rr  rå   ©rr  rÅ  )rr   rÑ  rÔ  rú  r&   r
  rû  r  ÚceilÚlogr%   r   Úvstackr
   rz  r4  )rR   r   rä   ÚxlowÚxhighrg   rq  ÚrÚepsrô   rh   ÚerrÚx2dÚy2dÚy2dts                  rV   Ú	test_sinezTestFiltFilt.test_sineâ  s¶  € ØˆÝŒK˜˜3  q¡Ñ)Ô)ˆåŒv�e�bœe‘m aÑ'Ñ(Ô(ˆÝ”�w¥¤‘¨Ñ*Ñ+Ô+ˆØ�5‰Lˆå�Q˜ eÐ,Ñ,Ô,ˆåŒF�3�q”6‰NŒN×ÒÑ Ô ˆØˆõ •”�œ˜s™œ¥b¤f¨Q¡i¤iÑ/Ñ0Ô0Ñ1Ô1ˆð �MŠM˜#˜q¨ˆMÑ+Ô+ˆåŒf�Q˜‘XÑÔ×"Ò"Ñ$Ô$ˆÝ��d’
ÑÔÐõ Œi˜˜t e™|Ð,Ñ-Ô-ˆØ�mŠm˜C ¨Q°QˆmÑ7Ô7ˆÝ�S”Y ¤	Ñ*Ô*Ð*ÝŒf�S˜4‘ZÑ Ô ×$Ò$Ñ&Ô&ˆÝ��d’
ÑÔÐð �}Š}˜S #¤%°¸ˆ}Ñ:Ô:ˆÝ�S˜$œ&Ñ!Ô!Ð!Ð!Ð!rX   c                 óò  — t          j        d¦  «                             ddd¦  «        }t          ddd¬¦  «        }|                      ||d	d	¬
¦  «        }|                      |t          j        |d	d¦  «        d	d¬
¦  «        }t          |t          j        |d	d¦  «        ¦  «         |                      |t          j        |d	d¦  «        d	d¬
¦  «        }t          |t          j        |d	d¦  «        ¦  «         d S )Ng      ”@rJ   ré  rO   rC   rv  rq  r¤  r   rw  rH   rI   )rr   r   rs   r&   r%   rë  r   )rR   rg   rq  Úy0Úy1r1  s         rV   Ú	test_axiszTestFiltFilt.test_axis	  sá   € åŒIÐ(Ñ)Ô)×1Ò1°"°b¸"Ñ=Ô=ˆÝ�Q˜ eÐ,Ñ,Ô,ˆØ�]Š]˜3 ¨!°!ˆ]Ñ4Ô4ˆØ�]Š]˜3¥¤¨A¨q°!Ñ 4Ô 4¸QÀQˆ]ÑGÔGˆÝ˜2�rœ{¨2¨q°!Ñ4Ô4Ñ5Ô5Ð5Ø�]Š]˜3¥¤¨A¨q°!Ñ 4Ô 4¸QÀQˆ]ÑGÔGˆÝ˜2�rœ{¨2¨q°!Ñ4Ô4Ñ5Ô5Ð5Ð5Ð5rX   c                 ó¾   — | j         dk    rd S t          j        ddgdt          j        d¦  «        ¦  «        }t          |t          j        d¦  «        dd¬¦  «         d S )Nrl  rô  rH   rJ   ç›+¡†›„=ræ   )rp  r   r%   rr   r   r   )rR   r³   s     rV   Útest_acoeffzTestFiltFilt.test_acoeff	  sY   € ØÔ Ò%Ð%ØˆFåŒo˜r 2˜h¨­2¬9°R©=¬=Ñ9Ô9ˆÝ˜�RœY r™]œ]°¸UÐCÑCÔCÐCÐCÐCrX   c                 óP  — | j         dk    rt          j        d¦  «         t          j        ddg¦  «        }t          j        dg¦  «        }t          j        ddg¦  «        }t          |||¦  «        \  }}}t          |d         |d         gd|d         z  d	|d
         z  z   d	|d         z  d|d
         z  z   g¦  «         t          ||d         d|d         z  z   d|d         z  z   d|d
         z  z   d|d         z  |d         z   d|d         z  z   d|d
         z  z   g¦  «         d S )Nrl  ú$gust only implemented for TF systemsrM  rK  rô  rR  r   rö  rô  rH   ç      Ð?rv  )rp  rf  ru  rr   r   r8   r   )rR   rg   rT   rS   rh   Úz1Úz2s          rV   Útest_gust_simplezTestFiltFilt.test_gust_simple	  sH  € ØÔ Ò%Ð%ÝŒKÐ>Ñ?Ô?Ð?õ ŒH�c˜3�ZÑ Ô ˆÝŒH�c�U‰OŒOˆÝŒH�c˜4�[Ñ!Ô!ˆÝ" 1 a¨Ñ+Ô+‰	ˆˆ2ˆrÝ˜˜Aœ  1¤˜Ø˜Q˜qœT™ C¨¨!¬¡HÑ,¨c°!°A´$©h¸¸Q¸q¼T¹Ñ.AÐBñ	Dô 	Dð 	Då˜˜B˜qœE D¨¨A¬¡JÑ.°°a¸´d±Ñ:¸UÀ1ÀQÄ4¹ZÑGØ   A¤™J¨¨A¬Ñ.°°q¸´t±Ñ;¸dÀ1ÀQÄ4¹iÑGðIñ 	Jô 	Jð 	Jð 	Jð 	JrX   c                 óÐ   — | j         dk    rt          j        d¦  «         t          j        d¦  «        }d}d}t          |||d¬¦  «        }||z  dz  |z  }t          ||¦  «         d S )	Nrl  rŒ  rO   rM  rK  Úgustrp   rI   )rp  rf  ru  rr   r   r%   r   )rR   rg   rT   rS   rh   r²   s         rV   Útest_gust_scalarszTestFiltFilt.test_gust_scalars#	  sw   € ØÔ Ò%Ð%ÝŒKÐ>Ñ?Ô?Ð?õ ŒI�b‰MŒMˆØˆØˆÝ�Q˜˜1 VÐ,Ñ,Ô,ˆØ�a‘C˜!‘8˜a‘<ˆÝ˜˜8Ñ$Ô$Ð$Ð$Ð$rX   )r�   rm  Nrb  N)r£   r¤   r¥   rp  r%   rW   rƒ  r‡  rŠ  r�  r“  r¦   rX   rV   rk  rk  Ñ  s”   € € € € € Ø€Mà>BØ%)ð>ð >ð >ð >ð8ð 8ð 8ð
 "ð  "ð  "ðD6ð 6ð 6ðDð Dð DðJð Jð Jð%ð %ð %ð %ð %rX   rk  c                   ó   — e Zd ZdZd„ ZdS )ÚTestSOSFiltFiltro  c                 óV  — t           j                             d¦  «                             d¦  «        }t	          dd¦  «        D ]e}t          j        |dd¬¦  «        }t          |Ž \  }}t          |Ž }t          |||¦  «        }t          ||¦  «        }t          ||dd	|z  ¬
¦  «         ŒfdS )z1Test equivalence between sosfiltfilt and filtfiltr   rx  rH   rF   çffffffÖ?rq  r¤  rø  zorder=%s)rè   Úerr_msgN)rr   rì   r  rï   rt   r   r&   r'   r(   r%   r/   r   )	rR   rg   r  rq  rT   rS   ro  rh   Úy_soss	            rV   Útest_equivalencez TestSOSFiltFilt.test_equivalence4	  sµ   € åŒI×!Ò! !Ñ$Ô$×*Ò*¨4Ñ0Ô0ˆÝ˜1˜a‘[”[ð 	Nð 	NˆEÝ”-  t°EÐ:Ñ:Ô:ˆCÝ˜3�<‰DˆAˆqÝ˜3�-ˆCÝ˜˜A˜qÑ!Ô!ˆAÝ  QÑ'Ô'ˆEÝ˜A˜u¨5¸*ÀuÑ:LÐMÑMÔMÐMÐMð	Nð 	NrX   N)r£   r¤   r¥   rp  rš  r¦   rX   rV   r•  r•  1	  s-   € € € € € Ø€Mð	Nð 	Nð 	Nð 	Nð 	NrX   r•  c                 óT  — d„ }t          t          |¦  «        t          | ¦  «        ¦  «        dz
  }t          | |¦  «        }t          j        |d|…                              ¦   «         |z  || d…                              ¦   «         |z  f¦  «        }t          ||| ||fdddddd¬	¦	  «	        }|\  }}	}
}}|d
k    rt          d|z  ¦  «        ‚|d|…         }||d…         }t          | ||ddd…         |¬¦  «        d
         ddd…         }t          | |||¬¦  «        d
         }|||fS )aQ  
    An alternative implementation of filtfilt with Gustafsson edges.

    This function computes the same result as
    `scipy.signal._signaltools._filtfilt_gust`, but only 1-d arrays
    are accepted.  The problem is solved using `fmin` from `scipy.optimize`.
    `_filtfilt_gust` is significantly faster than this implementation.
    c                 óÌ  — t          t          |¦  «        t          |¦  «        ¦  «        dz
  }| d|…         }| |d…         }t          ||||¬¦  «        d         }t          |||ddd…         |¬¦  «        d         ddd…         }t          |||ddd…         |¬¦  «        d         ddd…         }	t          |||	|¬¦  «        d         }
t          j        ||
z
  dz  ¦  «        }|S )z-Objective function used in filtfilt_gust_opt.rH   Nr_  r   r�   rI   )rû  r-  r#   rr   Úsum)ÚicsrT   rS   rg   ÚmÚz0fÚz0brÓ  Úy_fbÚy_bÚy_bfÚvalues               rV   Úfiltfilt_gust_opt_funcz1filtfilt_gust_opt.<locals>.filtfilt_gust_opt_funcI	  sï   € å•�A‘”�˜A™œÑÔ !Ñ#ˆØ�"�1�"ŒgˆØ�!�"�"ŒgˆÝ�a˜˜A #Ð&Ñ&Ô& qÔ)ˆÝ�q˜!˜S   2 œY¨3Ð/Ñ/Ô/°Ô2°4°4°R°4Ô8ˆå�a˜˜A˜d˜d ˜dœG¨Ð,Ñ,Ô,¨QÔ/°°°"°Ô5ˆÝ�q˜!˜S SÐ)Ñ)Ô)¨!Ô,ˆÝ”˜˜t™ aÑ'Ñ(Ô(ˆØˆrX   rH   NrÞ  rø  rî  TF)rõ   ÚxtolÚftolÚmaxfunÚmaxiterÚfull_outputÚdispr   z5minimization failed in filtfilt_gust_opt: warnflag=%dr�   r_  )	rû  r-  r$   rr   r4  r±  r   r  r#   )rT   rS   rg   r¦  rŸ  r`  rž  rU  ÚoptÚfoptÚniterÚfuncallsÚwarnflagr   r¡  r£  rh   s                    rV   Úfiltfilt_gust_optr²  @	  s^  € ðð ð õ 	�C�‰FŒF•C˜‘F”FÑÔ˜aÑ€AÝ	�A�qÑ	Ô	€BÝ
Œ.˜!˜B˜Q˜Bœ%Ÿ*š*™,œ, r™/¨1¨a¨R¨S¨S¬6¯;ª;©=¬=¸Ñ+;Ð<Ñ
=Ô
=€CÝÐ(¨#°Q¸¸1°IØ 5Ø¨Ø"¨ð0ñ 0ô 0€Fð ,2Ñ(€Cˆˆu�h Ø�!‚|€|Ýð )Ø+3ñ4ñ 5ô 5ð 	5à
ˆbˆqˆbŒ'€CØ
ˆaˆbˆbŒ'€Cõ �!�Q˜˜$˜$˜B˜$œ CÐ
(Ñ
(Ô
(¨Ô
+¨D¨D¨b¨DÔ
1€CÝ��1�c˜cÐ"Ñ"Ô" 1Ô%€Aàˆc�3ˆ;ÐrX   c                 ó€  — t           j                             d¦  «         t          j        j        |Ž }t	          | |||d|¬¦  «        }t          | ||||¬¦  «        \  }}}	t          j        ||d¦  «        }
|
j        d d…         }t          j        |
¦  «        }t          t          |¦  «        t          | ¦  «        ¦  «        dz
  }t          j        ||fz   ¦  «        }t          j        ||fz   ¦  «        }t          d„ |D ¦   «         Ž D ]&}t          | ||
|         ¦  «        \  ||<   ||<   ||<   Œ't          j        |d|¦  «        }t          j        |d|¦  «        }t          j        |d|¦  «        }t          ||dd	¬
¦  «         t          ||dd	¬
¦  «         t          ||dd	¬
¦  «         t          |	|dd	¬
¦  «         d S )Nrç  r’  )rÅ  rq   rs  )rÅ  rs  r�   rH   c                 ó,   — g | ]}t          |¦  «        ‘ŒS r¦   )rt   )rÓ   rŠ   s     rV   r×   z'check_filtfilt_gust.<locals>.<listcomp>€	  s   € Ð6Ð6Ð6 q�% ™(œ(Ð6Ð6Ð6rX   rë   rÐ  ræ   )rr   rì   rí   rï   r%   r8   rë  rz  Ú
empty_likerû  r-  rJ  r   r²  r   )rT   rS   rz  rÅ  rs  rg   rh   ÚygÚzg1Úzg2ÚxxÚ	out_shaperÀ  rŸ  Úzo1Úzo2Úindxs                    rV   Úcheck_filtfilt_gustr¾  l	  sÉ  € å„I‡N‚N�3ÑÔÐÝ
Œ	Œ˜Ð€Aõ 	��A�q˜t¨F¸%Ð@Ñ@Ô@€Aõ " ! Q¨°¸EÐBÑBÔB�L€BˆˆSõ
 
Œ�Q˜˜bÑ	!Ô	!€BØ”˜˜"˜”€IÝ	Œ�rÑ	Ô	€BÝ�C�‰FŒF•C˜‘F”FÑÔ˜aÑ€AÝ
Œ(�9 ˜tÑ#Ñ
$Ô
$€CÝ
Œ(�9 ˜tÑ#Ñ
$Ô
$€CÝÐ6Ð6¨IÐ6Ñ6Ô6Ð7ð Kð KˆÝ):¸1¸aÀÀDÄÑ)JÔ)JÑ&ˆˆ4‰�#�d‘)˜S ™Y˜YÝ	Œ�R˜˜TÑ	"Ô	"€BÝ
Œ+�c˜2˜tÑ
$Ô
$€CÝ
Œ+�c˜2˜tÑ
$Ô
$€Cå�A�r ¨4Ð0Ñ0Ô0Ð0Ý�B˜ ¨DÐ1Ñ1Ô1Ð1Ý�C˜ 4¨dÐ3Ñ3Ô3Ð3Ý�C˜ 4¨dÐ3Ñ3Ô3Ð3Ð3Ð3rX   rE   c            	      óü  — dD �]÷} dD ]Ú}d\  }}}t          j        j        |f|z  Ž }t          j        j        |f|z  Ž }t          ||| ¬¦  «        }t	          ||¦  «         t          ||| d¬¦  «        \  }}	t          |dv ¦  «         t          t          |	t          ¦  «        ¦  «         t          d|	                     ¦   «         v od	|	                     ¦   «         v ¦  «         ŒÛd
}dD ]a}
t          t           |
¦  «        rJt          j
        ||
¬¦  «        }|                     ¦   «         }t	          t          ||| ¬¦  «        d	¦  «         Œbt          j        dgt           j        ¬¦  «        }|                     ¦   «         }t	          t          ||| ¬¦  «        d	¦  «         t          d¦  «        t          d¦  «        g}t          d¦  «        t          d¦  «        g}t	          t          ||| ¬¦  «        d	¦  «         �Œùd S )Nr0  )rH   rI   )r�   rF   ro   r\   T)r]   Úmeasure>   r   ro   r   ro   rJ   )Ú
complex256Ú
complex192r  l         @ rC   rI   rH   rD   )rr   rì   rï   r    r
   r   Ú
isinstanceÚdictÚkeysrô  rR  rä  r   rÈ   r   )r]   r‰  rô   rQ  Útrue_methodrg   r  rq   Ú
method_tryÚtimesÚnot_fft_conv_supps              rV   Útest_choose_conv_methodrÊ  Œ	  s  € à)ð Dñ DˆØð 	Hð 	HˆDØ .ÑˆAˆq�+Ý”	” 1 $¨¡+Ð/ˆAÝ”	” 1 $¨¡+Ð/ˆAå'¨¨1°4Ð8Ñ8Ô8ˆFÝ˜ Ñ-Ô-Ð-å 2°1°a¸dÈDÐ QÑ QÔ QÑˆJ˜Ý�JÐ"3Ð3Ñ4Ô4Ð4Ý•J˜u¥dÑ+Ô+Ñ,Ô,Ð,Ý�E˜UŸZšZ™\œ\Ð)ÐF¨h¸%¿*º*¹,¼,Ð.FÑGÔGÐGÐGàˆØ!=ð 	Lð 	LÐÝ•rÐ,Ñ-Ô-ð LÝ”G˜AÐ%6Ð7Ñ7Ô7�Ø—F’F‘H”H�ÝÕ/°°1¸4Ð@Ñ@Ô@À(ÑKÔKÐKøåŒH�e�W¥B¤HÐ-Ñ-Ô-ˆØ�FŠF‰HŒHˆÝÕ'¨¨1°4Ð8Ñ8Ô8¸(ÑCÔCÐCå�Q‰ZŒZ� ™œÐ$ˆÝ�Q‰ZŒZ� ™œÐ$ˆÝÕ'¨¨1°4Ð8Ñ8Ô8¸(ÑCÔCÐCÑCð7Dð DrX   c            	      óZ  — t          j        ddddd¬¦  «        \  } }}d}t          j        t          j        |¦  «        ¦  «        }t          t          j        t          j        |¦  «        t          j        |¦  «        z  ¦  «        ¦  «        }t          j         	                    d¦  «         t          | ||¦  «        \  }}d |fD ]I}d	|z  }	t          |||	fd
|¦  «         t          d¦  «        D ]}
g d¢}|	||
<   t          ||||
|¦  «         ŒŒJd|z  dz
  }t          |||fd
|¦  «         d S )NrC   ç{®Gáz„?éx   gffffff¶?rq  r¤  rÞ  rç  rE   r   )rI   rI   rI   rI   rü   )r   Úelliprr   rû  r
  r  rx  ry  rì   rí   r'   r¾  rt   )ri   ÚprQ  r~  r}  Úapprox_impulse_lenrT   rS   rs  Ú
signal_lenrÅ  rz  Úlengths                rV   Útest_filtfilt_gustrÓ  ¬	  sH  € õ Œl˜1˜d C¨¸Ð>Ñ>Ô>�G€A€qˆ!ð €CÝ
Œ�rŒv�a‰yŒyÑÔ€AÝ�RœW¥R¤V¨C¡[¤[µ2´6¸!±9´9Ñ%<Ñ=Ô=Ñ>Ô>Ðå„I‡N‚N�3ÑÔÐå�!�Q˜‰?Œ?�D€A€qØÐ*Ð+ð 
:ð 
:ˆØÐ+Ñ+ˆ
õ 	˜A˜q : -°°EÑ:Ô:Ð:õ ˜!‘H”Hð 	:ð 	:ˆDØ�I�IˆEØ$ˆE�$‰KÝ  1 e¨T°5Ñ9Ô9Ð9Ð9ð	:ð Ð!Ñ! BÑ&€FÝ˜˜1˜v˜i¨Ð,>Ñ?Ô?Ð?Ð?Ð?rX   c                   ób   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestDecimatec                 óº   — t          j        d¦  «        }t          t          t          j        |dd¬¦  «         t          t          t          j        |dd¬¦  «         d S )NrO   rô  rH   )Úqrô   rI   )rr   r   rŸ   rö  r   Údecimaterî  s     rV   Útest_bad_argszTestDecimate.test_bad_argsÍ	  sK   € ÝŒI�b‰MŒMˆÝ•i¥¤°!°s¸aÐ@Ñ@Ô@Ð@Ý•i¥¤°!°q¸CÐ@Ñ@Ô@Ð@Ð@Ð@rX   c                 ó¶   — t          j        d¦  «        }t          j        |dddd¬¦  «                             ¦   «         }t          ||d d d…         ¦  «         d S )NrO   rI   rH   ÚiirF©rô   ÚftypeÚ
zero_phase©rr   r   r   rØ  Úroundr   ©rR   rg   rh   s      rV   Útest_basic_IIRzTestDecimate.test_basic_IIRÒ	  óU   € ÝŒI�b‰MŒMˆÝŒO˜A˜q A¨U¸uÐEÑEÔE×KÒKÑMÔMˆÝ˜1˜a   ! œfÑ%Ô%Ð%Ð%Ð%rX   c                 ó¶   — t          j        d¦  «        }t          j        |dddd¬¦  «                             ¦   «         }t          ||d d d…         ¦  «         d S )NrO   rI   rH   ÚfirFrÜ  rß  rá  s      rV   Útest_basic_FIRzTestDecimate.test_basic_FIR×	  rã  rX   c                 óâ   — t          j        d¦  «        }t          j        |ddd¬¦  «        }t	          |j        d¦  «         t          j        |ddd¬¦  «        }t	          |j        d¦  «         d S )	N)r‚   r‚   rI   r   F)rÅ  rÞ  )r[  r‚   rH   )r‚   r[  )rr   r~  r   rØ  r
   rz  )rR   ri   Úd0Úd1s       rV   Ú
test_shapezTestDecimate.test_shapeÜ	  sk   € åŒH�XÑÔˆÝŒ_˜Q ¨°eÐ<Ñ<Ô<ˆÝ�R”X˜xÑ(Ô(Ð(ÝŒ_˜Q ¨°eÐ<Ñ<Ô<ˆÝ�R”X˜xÑ(Ô(Ð(Ð(Ð(rX   c                 ó¸   — t          ¦   «         5 }|                     t          d¦  «         |                      dd¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NúBadly conditioned filterrå  F©rq   rÞ  ©r   r/  r2   Ú_test_phaseshift©rR   r1  s     rV   Útest_phaseshift_FIRz TestDecimate.test_phaseshift_FIRä	  s°   € ÝÑ Ô ð 	B CØ�JŠJ•Ð(BÑCÔCÐCØ×!Ò!¨¸5Ð!ÑAÔAÐAð	Bð 	Bð 	Bñ 	Bô 	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bøøøð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bó   �3AÁAÁAc                 ó¸   — t          ¦   «         5 }|                     t          d¦  «         |                      dd¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nrì  rå  Trí  rî  rð  s     rV   Útest_zero_phase_FIRz TestDecimate.test_zero_phase_FIRé	  s°   € ÝÑ Ô ð 	A CØ�JŠJ•Ð(BÑCÔCÐCØ×!Ò!¨¸4Ð!Ñ@Ô@Ð@ð	Að 	Að 	Añ 	Aô 	Að 	Að 	Að 	Að 	Að 	Að 	Að 	Aøøøð 	Að 	Að 	Að 	Að 	Að 	Arò  c                 ó4   — |                       dd¬¦  «         d S )NrÛ  Frí  ©rï  r  s    rV   Útest_phaseshift_IIRz TestDecimate.test_phaseshift_IIRî	  s!   € Ø×Ò U°uÐÑ=Ô=Ð=Ð=Ð=rX   c                 ó4   — |                       dd¬¦  «         d S )NrÛ  Trí  rö  r  s    rV   Útest_zero_phase_IIRz TestDecimate.test_zero_phase_IIRñ	  s!   € Ø×Ò U°tÐÑ<Ô<Ð<Ð<Ð<rX   c           	      ó°  — d}g d¢}d}t          j        ||z  dz   ¦  «        t          |¦  «        z  }t          j        |¦  «        dz  dz  }t          j        dt           j        z  |d d …t           j        f         z  |z  ¦  «        t          j         	                    |j
        d¦  «        z  }|D �]$}	||	z  }
t          j        |	|z  dz   ¦  «        t          |	¦  «        z  }t          j        dt           j        z  |d d …t           j        f         z  |z  ¦  «        t          j         	                    |j
        d¦  «        z  }|d	k    r3d
}t          j        t          j        |dz   d|
z  d¬¦  «        d¦  «        }nI|dk    rCd}dt           j        z  |
z  }t          j        t          j        |d|t           j        z  ¦  «        Ž }|du rNt          j        |j        |j        ||z  dz  t           j        z  ¦  «        \  }}|t          j        |¦  «        z  }nt          j        |¦  «        }t          j        |j        |
|||¬¦  «        }t          j        |                     ¦   «         |z  d¬¦  «        }|t          j        |¦  «        z  }|d|	z  k     }t/          t          j        |                     ¦   «         |z  ¦  «        |         ddd¬¦  «         �Œ&d S )NrÍ  )r[  rû   r‚   r!  rÂ   rH   çš™™™™™é?rI   rf   çš™™™™™¹?rå  r‚   rM  rÍ  r¾  rÛ  r�   gš™™™™™©?F©rÝ  rÞ  r�   ró  rô  r   ré   r  )rr   r   r\  r   r3  rú  rù  r   ÚwindowsÚtukeyrÚ   Údltirù  Úcheby1ÚfreqzrÊ  Údenr
  Ú	ones_likerØ  rÓ  r�  rE  r   Úangle)rR   rq   rÞ  r   r  Út_toträ   r  rŠ   r  r×  r  Úd_tosrô   ÚsystemÚwcÚ_Úh_respsr  Ú	h_resampsÚsubnyqs                        rV   rï  zTestDecimate._test_phaseshiftô	  sÃ  € ØˆØ#Ð#Ð#ˆàˆÝŒI�d˜5‘j ‘lÑ#Ô#¥e¨D¡k¤kÑ1ˆõ ”˜Ñ"Ô" SÑ(¨1Ñ,ˆÝŒV�F�RœU‘N U¨1¨1¨1­b¬j¨=Ô%9Ñ9¸AÑ=Ñ>Ô>ÝŒ~×#Ò# A¤F¨CÑ0Ô0ñ1ˆð  ð "	2ñ "	2ˆGØ˜‘ˆAÝ”9˜W U™]¨1™_Ñ-Ô-µ°g±´Ñ>ˆDÝ”V˜F¥R¤U™N¨U°1°1°1µb´j°=Ô-AÑAÀDÑHÑIÔIÝ”~×+Ò+¨D¬I°sÑ;Ô;ñ<ˆEð ˜ŠˆØ�Ýœ¥V¤]°1°q±5¸"¸q¹&Ø:Cð&Eñ &Eô &EØFHñJô J��à˜5’�Ø�Ø�œ‘Y˜q‘[�Ýœ¥f¤m°A°t¸RÅÄ¹XÑ&FÔ&FÐG�ð ˜UÐ"Ð"Ý#œ\¨&¬*°f´jØ*/°©*°Q©,µr´uÑ*<ñ>ô >‘
��7à�2œ6 '™?œ?Ñ*��åœ, uÑ-Ô-�åœ¨¬°°1¸FØ3=ð?ñ ?ô ?ˆIõ œ˜uŸzšz™|œ|¨iÑ7¸bÐAÑAÔAˆIØ�œ 	Ñ*Ô*Ñ*ˆIØ˜S ™[Ò(ˆFõ �BœH W§\¢\¡^¤^°IÑ%=Ñ>Ô>¸vÔFÈØ!%¨Dð2ñ 2ô 2ð 2ñ 2ðC"	2ð "	2rX   c                 ó¦  — d}d}t          j        |¦  «        |z  }t          j        d|z  ¦  «        t          j        dt           j        z  |dz  z  |z  ¦  «        z  }t          t           j                             |¦  «        dd¬¦  «         t          j	        |d	d
¬¦  «        }t          t           j                             |¦  «        d¦  «         d S )Ng      Y@rx  rK  rI   g      >@rM  ré   rß  r‚   rå  )rÝ  rÌ  )rr   r   ÚsqrtrÔ  rú  r   ÚlinalgÚnormr   rØ  r   )rR   Úsfreqrô   rä   rg   Úx_outs         rV   Útest_auto_nzTestDecimate.test_auto_n$
  s±   € ð ˆØˆÝŒI�a‰LŒL˜5Ñ ˆåŒG�B˜‘F‰OŒO�bœf Q­¬¡Y°%¸#±+Ñ%>ÀÑ%BÑCÔCÑCˆÝ�œ	Ÿš qÑ)Ô)¨2°DÐ9Ñ9Ô9Ð9Ý”  2¨UÐ3Ñ3Ô3ˆÝ�"œ)Ÿ.š.¨Ñ/Ô/°Ñ6Ô6Ð6Ð6Ð6rX   c                 ó²   — t          j        t          j        dt          j        ¬¦  «        d¦  «        }t          t          j        |¦  «        ¦  «        rJ ‚d S )Nrî  r  rJ   )r   rØ  rr   rR  rÎ   ró   Úisnanrî  s     rV   Útest_long_float32zTestDecimate.test_long_float320
  sH   € õ ŒO�BœG Fµ"´*Ð=Ñ=Ô=¸rÑBÔBˆÝ•r”x ‘{”{Ñ#Ô#Ð#Ð#Ð#Ð#Ð#rX   c                 ó¤   — t          j        t          j        dt          j        ¬¦  «        d¦  «        }|j        j        t          j        k    sJ ‚d S )NrÂ   r  rJ   )r   rØ  rr   rR  rÍ   rð   rL  rÏ   rî  s     rV   Útest_float16_upcastz TestDecimate.test_float16_upcast6
  sA   € åŒO�BœG C­r¬zÐ:Ñ:Ô:¸BÑ?Ô?ˆØŒwŒ|�rœzÒ)Ð)Ð)Ð)Ð)Ð)rX   c                 óÜ  — d}d}d}t          j        ddt          j        z  |z  dz  d|¬¦  «        \  }}}|                     t
          ¦  «        t          j        dt          j        z  |z  |z  ¦  «        z  }|                     t
          ¦  «        t          j        dt          j        z  |z  |z  ¦  «        z  }t          j        |||¦  «        }t          j        d¦  «        |z  }t          j        dt          j        z  |z  |z  ¦  «        d	t          j        d
t          j        z  |z  |z  ¦  «        z  z   }	t          j	        |	d|d¬¦  «        }
t          j
        g t          j        |||¦  «        ¢|	‘R Ž d d d…         }t          |
|¦  «         t          j	        |	d|d¬¦  «        }t          j        g t          j        |||¦  «        ¢|	‘R Ž d d d…         }t          ||dd¬¦  «         d S )Nrü   rE   ç     @�@rI   rq  )rš  Úfsrf   ró  rô  r`  Frý  TrÞ  ç‚vIhÂ%<=ræ   )r   r&   rr   rú  rò   r  r3  r   r   rØ  r#   r'   r
   r%   r   )rR   ÚfcentreÚfwidthr  ri   rÏ  rQ  r  rä   rÜ   ÚynzpÚynzprefÚyzpÚyzprefs                 rV   Útest_complex_iir_dltiz"TestDecimate.test_complex_iir_dlti;
  sò  € ð ˆàˆàˆå”-  1¥R¤U¡7¨6¡>°!Ñ#3¸EÀbÐIÑIÔI‰ˆˆ1ˆaØ�HŠH•WÑÔ¥¤ r­B¬E¡z°GÑ';¸BÑ'>Ñ ?Ô ?Ñ?ˆØ�HŠH•WÑÔ¥¤ r­B¬E¡z°GÑ';¸BÑ'>Ñ ?Ô ?Ñ?ˆÝ”˜Q  1Ñ%Ô%ˆåŒI�c‰NŒN˜RÑˆõ ŒV�B�œ‘J Ñ(¨1Ñ,Ñ-Ô-Ø•R”V˜C¥"¤%™K¨'Ñ1°AÑ5Ñ6Ô6Ñ6ñ7ˆõ Œ˜q !¨6¸eÐDÑDÔDˆÝ”.ð $¥&¤-°°1°aÑ"8Ô"8ð $Ø!"ð$ð $ð $Ø$' C a Cô)ˆõ 	�T˜7Ñ#Ô#Ð#åŒo˜a ¨&¸TÐBÑBÔBˆÝ”ð $¥&¤-°°1°aÑ"8Ô"8ð $Ø!"ð$ð $ð $Ø$' C a Cô)ˆõ 	˜˜V¨%°eÐ<Ñ<Ô<Ð<Ð<Ð<rX   c                 ó  — d}d}d}d}t          j        ||dz  |¬¦  «        }t          j        |¦  «        }|t          j        dt          j        z  |z  |z  ¦  «        z  }|d         t          j        |¦  «        z  }t          j        |d	¦  «        }	t          j        d
¦  «        |z  }
t          j        dt          j        z  |z  |
z  ¦  «        dt          j        dt          j        z  |z  |
z  ¦  «        z  z   }t          j	        |d|	d¬¦  «        }t          j
        ||d	d¬¦  «        d d…         }t          ||¦  «         t          j	        |d|	d¬¦  «        }t          j        |d	d|¬¦  «        }t          ||¦  «         d S )Nrü   rE   r  rû   rI   )r  rf   r   rH   ró  rô  r`  Frý  )r  r  rÂ   Tr¾  )r   rù  rr   Úrootsr3  rú  Úpolyr   r   rØ  Úupfirdnr
   rÈ  )rR   r  r  r  ÚnumtapsÚbbaseÚzbaseÚzrotÚbzr  rä   rÜ   r   r!  r"  r#  s                   rV   Útest_complex_fir_dltiz"TestDecimate.test_complex_fir_dlti[
  sx  € àˆàˆàˆØˆõ ”˜g v¨a¡x°BÐ7Ñ7Ô7ˆõ ”˜‘”ˆØ•r”v˜b¥2¤5™j¨7Ñ2°2Ñ5Ñ6Ô6Ñ6ˆà�1ŒX�œ ™œÑ%ˆå”˜R Ñ#Ô#ˆåŒI�c‰NŒN˜RÑˆõ ŒV�B�œ‘J Ñ(¨1Ñ,Ñ-Ô-Ø•R”V˜C¥"¤%™K¨'Ñ1°AÑ5Ñ6Ô6Ñ6ñ7ˆõ Œ˜q !¨6¸eÐDÑDÔDˆÝ”.  Q¨1°1Ð5Ñ5Ô5°d°s°dÔ;ˆå�T˜7Ñ#Ô#Ð#åŒo˜a ¨&¸TÐBÑBÔBˆÝÔ% a¨¨A°bÐ9Ñ9Ô9ˆå�S˜&Ñ!Ô!Ð!Ð!Ð!rX   N)r£   r¤   r¥   rÙ  râ  ræ  rê  rñ  rô  r÷  rù  rï  r  r  r  r$  r.  r¦   rX   rV   rÕ  rÕ  Ì	  sñ   € € € € € ðAð Að Að
&ð &ð &ð
&ð &ð &ð
)ð )ð )ðBð Bð Bð
Að Að Að
>ð >ð >ð=ð =ð =ð.2ð .2ð .2ð`
7ð 
7ð 
7ð$ð $ð $ð*ð *ð *ð
=ð =ð =ð@""ð ""ð ""ð ""ð ""rX   rÕ  c                   ó€   — e Zd Zd„ Zd„ Zd„ Zej                             de	j
        e	j        g¦  «        d„ ¦   «         ZdS )ÚTestHilbertc                 óÈ   — t          j        dg¦  «        }t          t          t          |¦  «         t          j        d¦  «        }t          t          t          |d¬¦  «         d S )Nr°   r¼  r   ©r‚  )rr   r   rŸ   r    r!   r   rî  s     rV   rÙ  zTestHilbert.test_bad_args‚
  sO   € ÝŒH�j�\Ñ"Ô"ˆÝ•j¥'¨1Ñ-Ô-Ð-ÝŒI�c‰NŒNˆÝ•j¥'¨1°Ð2Ñ2Ô2Ð2Ð2Ð2rX   c           	      ó"  — d}t           j        }t          j        dd|z  |dz  ¦  «        }t          j        |¦  «        }t          j        |¦  «        }t          j        d|z  ¦  «        }t          j        d|z  ¦  «        }t          j        ||||g¦  «        }t          |¦  «        }	t          j        |	¦  «        }
t          j        |	¦  «        }t          j	        |	¦  «        }t          |||¦  «         t          |
t          j        |j        ¦  «        |¦  «         t          |dd d…f         t          j        | dz  |dz  |dz  ¦  «        |¦  «         t          |dd d…f         t          j        d||dz  ¦  «        |¦  «         t          |dd d…f         t          j        | dz  |dz  |dz  ¦  «        |¦  «         t          |dd d…f         t          j        d||dz  ¦  «        |¦  «         t          |	d         j        ||¦  «         d S )Nr.  r   rI   rº  rH   r¹  rC   )rr   rú  r   rÔ  rÒ  rz  r!   r
  r  rÓ  r   rR  rz  rC  )rR   r­  rú  rä   rÒ  Úa1Úa2Úa3rS   r  Úh_absÚh_angleÚh_reals                rV   Útest_hilbert_theoreticalz$TestHilbert.test_hilbert_theoreticalˆ
  s  € àˆåŒUˆÝŒI�a˜˜R™  c¡Ñ*Ô*ˆÝŒV�A‰YŒYˆÝŒV�A‰YŒYˆÝŒV�A˜‘E‰]Œ]ˆÝŒV�A˜‘E‰]Œ]ˆÝŒI�r˜2˜r 2Ð&Ñ'Ô'ˆå�A‰JŒJˆÝ”�q‘	”	ˆÝ”(˜1‘+”+ˆÝ”˜‘”ˆõ 	˜F A wÑ/Ô/Ð/å˜E¥2¤7¨1¬7Ñ#3Ô#3°WÑ=Ô=Ð=õ 	˜G A t¨ t GÔ,ÝœI r c¨A¡g¨r°A©v°r¸C±xÑ@Ô@Ø#ñ	%ô 	%ð 	%õ
 	Ø�A�t˜�t�GÔ�bœi¨¨2¨r°C©xÑ8Ô8¸'ñ	Cô 	Cð 	Cõ 	˜G A t¨ t GÔ,ÝœI r c¨A¡g¨r°A©v°r¸C±xÑ@Ô@Ø#ñ	%ô 	%ð 	%õ 	Ø�A�t˜�t�GÔ�bœi¨¨2¨r°C©xÑ8Ô8¸'ñ	Cô 	Cð 	Cõ 	˜A˜aœDœI r¨7Ñ3Ô3Ð3Ð3Ð3rX   c                 ó$  — t          j        d¦  «                             dd¦  «        }t          |d¬¦  «        }t	          t          |j        d¬¦  «        |j        ¦  «         t          t          |d         ¦  «        |d         d¦  «         t          |dd¬	¦  «        }t	          |j        ddg¦  «         t	          t          |j        dd¬	¦  «        j        ddg¦  «         t          j        g d
¢¦  «        }t          |d         |dd¦  «         d S )NrW  rC   rF   r�   ró  r   r.  rû   )r‚  rÅ  )y        Bm}¶Ä…û¿y      ð?ðãâa Àyûÿÿÿÿÿÿ?¥®0fÓóÀy      @Wëa©94ô¿y      @"nÈWñ¿y      @‡hûIX@yš™™™™™™<ÃnmÑèÃ@yåFˆ8›¼ûO2k{…ï?yœ™™™™™©¼Ú‰o�íPõ?yÎÌÌÌÌÌ¼¼ùYC›à?y433333£<c4¸Qõeå?yðÈ’40¡¼òŒ³p$Î?yœ™™™™™©¼E¥SÐUÒ?yffffff¶<‚?Žüó7 ?y433333£<wE¶oÿ¼“¿y�!5P±¼àÐ{Ø3'Å¿y        _úN@Õ¿yš™™™™™¹<Ú}§ØÙ¿yš™™™™™™<§‚-cè¿yåFˆ8›<“Á2OW\é¿zN regression)	rr   r   rs   r!   r
   r4  r   rz  r   )rR   rS   ÚaaÚaanÚa0hilbs        rV   Útest_hilbert_axisNzTestHilbert.test_hilbert_axisN±
  s  € åŒI�b‰MŒM×!Ò! ! QÑ'Ô'ˆå�Q˜RÐ Ñ Ô ˆÝ•W˜QœS qÐ)Ñ)Ô)¨2¬4Ñ0Ô0Ð0å�G A a¤D™MœM¨2¨a¬5°"Ñ5Ô5Ð5õ �a˜2 BÐ'Ñ'Ô'ˆÝ�S”Y  B Ñ(Ô(Ð(Ý•W˜QœS B¨QÐ/Ñ/Ô/Ô5¸¸A°wÑ?Ô?Ð?õ ”ð Fð Fð Fñ Gô Gˆõ( 	˜C œF F¨B°Ñ?Ô?Ð?Ð?Ð?rX   rð   c                 ó¤   — t          j        d|¬¦  «        }t          t          j        t	          j        |¦  «        ¦  «        j        |¦  «         d S )Nr�   r  )rr   r~  r
   rÓ  r   r!   rð   rn  s      rV   Útest_hilbert_typeszTestHilbert.test_hilbert_typesÖ
  sC   € å”8˜A UÐ+Ñ+Ô+ˆÝ•R”W�Vœ^¨HÑ5Ô5Ñ6Ô6Ô<¸eÑDÔDÐDÐDÐDrX   N)r£   r¤   r¥   rÙ  r:  r?  rf  rg  rh  rr   rÎ   rÏ   rA  r¦   rX   rV   r0  r0  €
  sƒ   € € € € € ð3ð 3ð 3ð'4ð '4ð '4ðR#@ð #@ð #@ðJ „[×Ò˜W r¤z°2´:Ð&>Ñ?Ô?ðEð Eñ @Ô?ðEð Eð ErX   r0  c                   ót   — e Zd Zd„ Zej                             dej        ej	        g¦  «        d„ ¦   «         Z
dS )ÚTestHilbert2c                 óî  — t          j        dgg¦  «        }t          t          t          |¦  «         t          j        d¦  «                             ddd¦  «        }t          t          t          |¦  «         t          j        d¦  «                             dd¦  «        }t          t          t          |d¬¦  «         t          t          t          |d	¬¦  «         t          t          t          |d
¬¦  «         d S )Nr°   r  rI   rC   rD   r€   r   r2  )rI   r   )rI   )rr   r   rŸ   r    r"   r   rs   rî  s     rV   rÙ  zTestHilbert2.test_bad_argsÞ
  sÄ   € åŒH�z�l�^Ñ$Ô$ˆÝ•j¥(¨AÑ.Ô.Ð.õ ŒI�b‰MŒM×!Ò! ! Q¨Ñ*Ô*ˆÝ•j¥(¨AÑ.Ô.Ð.õ ŒI�b‰MŒM×!Ò! ! QÑ'Ô'ˆÝ•j¥(¨A°Ð3Ñ3Ô3Ð3Ý•j¥(¨A°Ð8Ñ8Ô8Ð8Ý•j¥(¨A°Ð6Ñ6Ô6Ð6Ð6Ð6rX   rð   c                 ó¤   — t          j        d|¬¦  «        }t          t          j        t	          j        |¦  «        ¦  «        j        |¦  «         d S )N)rI   rM   r  )rr   r~  r
   rÓ  r   r"   rð   rn  s      rV   Útest_hilbert2_typesz TestHilbert2.test_hilbert2_typesí
  sC   € å”8˜G¨5Ð1Ñ1Ô1ˆÝ•R”W�Vœ_¨XÑ6Ô6Ñ7Ô7Ô=¸uÑEÔEÐEÐEÐErX   N)r£   r¤   r¥   rÙ  rf  rg  rh  rr   rÎ   rÏ   rF  r¦   rX   rV   rC  rC  Ü
  s`   € € € € € ð7ð 7ð 7ð „[×Ò˜W r¤z°2´:Ð&>Ñ?Ô?ðFð Fñ @Ô?ðFð Fð FrX   rC  c                   ó€   — e Zd Zedd„¦   «         Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestPartialFractionExpansionr   c                 ó„  — t          j        |¦  «        }t          j        |¦  «        }t          j        t          |d d …d f         |z
  ¦  «        t          | d d …d f         |z
  ¦  «        ¦  «        }t	          |¦  «        \  }}t          ||         ||         |¬¦  «         t          | |         ||         |¬¦  «         d S )Nr¬  )rr   rI  Úhypotr
  r   r   )r}  rÏ  Úr_trueÚp_truer­  ÚdistanceÚrowsÚcolss           rV   Úassert_rp_almost_equalz3TestPartialFractionExpansion.assert_rp_almost_equalô
  s»   € å”˜FÑ#Ô#ˆÝ”˜FÑ#Ô#ˆå”8�C  ! ! ! T '¤
¨VÑ 3Ñ4Ô4Ý  ! ! ! T '¤
¨VÑ 3Ñ4Ô4ñ6ô 6ˆõ +¨8Ñ4Ô4‰
ˆˆdÝ˜A˜dœG V¨D¤\¸7ÐCÑCÔCÐCÝ˜A˜dœG V¨D¤\¸7ÐCÑCÔCÐCÐCÐCrX   c                 ó^  — t          g d¢g d¢¦  «        \  }}t          t          |¦  «        d¦  «         t          |d         t	          j        g d¢¦  «        ¦  «         t          |d         t	          j        g d¢¦  «        ¦  «         t          |d         t	          j        g d	¢¦  «        ¦  «         t          |t	          j        g d
¢¦  «        ¦  «         t          g d¢g d¢d¬¦  «        \  }}t          t          |¦  «        d¦  «         t          |d         t	          j        g d¢¦  «        ¦  «         t          |d         t	          j        g d¢¦  «        ¦  «         t          |d         t	          j        g d¢¦  «        ¦  «         t          |d         t	          j        g d¢¦  «        ¦  «         t          |d         t	          j        g d¢¦  «        ¦  «         t          |d         t	          j        g d	¢¦  «        ¦  «         t          |t	          j        g d
¢¦  «        ¦  «         d S )NrG   rÁ  rC   r   )rI   rI   rC   rH   )rH   rH   rH   rC   rI   )rH   rH   rH   rI   rI   )rH   rH   rH   rI   rI   rC   T)Úinclude_powersrF   )rH   rH   rI   rI   rC   )rH   rI   rI   rC   )rH   rH   rH   rI   rC   rD   rE   )r9   r
   r-  r   rr   r'  )rR   Úfactorsr'  s      rV   Útest_compute_factorsz1TestPartialFractionExpansion.test_compute_factors   sê  € Ý(¨¨¨°I°I°IÑ>Ô>‰ˆ�Ý•S˜‘\”\ 1Ñ%Ô%Ð%Ý˜G AœJ­¬°	°	°	Ñ(:Ô(:Ñ;Ô;Ð;Ý˜G AœJ­¬°°°Ñ(=Ô(=Ñ>Ô>Ð>Ý˜G AœJ­¬°°°Ñ(@Ô(@ÑAÔAÐAÝ˜D¥"¤'Ð*<Ð*<Ð*<Ñ"=Ô"=Ñ>Ô>Ð>å(¨¨¨°I°I°IØ8<ð>ñ >ô >‰ˆ�å•S˜‘\”\ 1Ñ%Ô%Ð%Ý˜G AœJ­¬°°°Ñ(@Ô(@ÑAÔAÐAÝ˜G AœJ­¬°°°Ñ(=Ô(=Ñ>Ô>Ð>Ý˜G AœJ­¬°	°	°	Ñ(:Ô(:Ñ;Ô;Ð;Ý˜G AœJ­¬°°°Ñ(@Ô(@ÑAÔAÐAÝ˜G AœJ­¬°°°Ñ(=Ô(=Ñ>Ô>Ð>Ý˜G AœJ­¬°°°Ñ(@Ô(@ÑAÔAÐAÝ˜D¥"¤'Ð*<Ð*<Ð*<Ñ"=Ô"=Ñ>Ô>Ð>Ð>Ð>rX   c                 óz   — t          g d¢dd¦  «        \  }}t          |g d¢¦  «         t          |g d¢¦  «         d S )N)rM  gj¼t“ð?g?5^ºIð?rK  g /Ý$ @rM  rü  Úminró  rÁ  )r:   r
   ©rR   ÚuniqueÚmultiplicitys      rV   Útest_group_polesz-TestPartialFractionExpansion.test_group_poles  sQ   € Ý+Ø0Ð0Ð0°#°uñ >ô  >Ñˆ�å�V˜_˜_˜_Ñ-Ô-Ð-Ý�\ 9 9 9Ñ-Ô-Ð-Ð-Ð-rX   c                 óÞ  — t          g d¢g d¢¦  «        \  }}}t          |g d¢d¬¦  «         t          |g d¢d¬¦  «         t          |dgd¬¦  «         t          dd	gg d
¢¦  «        \  }}}t          |d	dg¦  «         t          |ddg¦  «         t          |j        d¦  «         t          ddgg d¢¦  «        \  }}}t          |ddg¦  «         t          |ddg¦  «         t          |j        d¦  «         t          ddgg d¢¦  «        \  }}}|                      ||g d¢g d¢¦  «         t          |j        d¦  «         t          ddgg d¢¦  «        \  }}}|                      ||g d¢g d¢¦  «         t          |j        d¦  «         t          g d¢g d¢¦  «        \  }}}t          |g d¢¦  «         t          |g d¢¦  «         t          |ddg¦  «         t          dgg d¢¦  «        \  }}}t          |ddg¦  «         t          |dd g¦  «         t          |j        d¦  «         t          g d!¢g d"¢¦  «        \  }}}|                      ||g d#¢g d$¢¦  «         t          |j        d¦  «         t          g d%¢g d&¢¦  «        \  }}}|                      ||g d'¢g d(¢¦  «         t          |j        d¦  «         t          ddgg d)¢¦  «        \  }}}t          |dd*g¦  «         t          |ddg¦  «         t          |j        d¦  «         t          g d+¢g d)¢¦  «        \  }}}t          |dd,g¦  «         t          |ddg¦  «         t          |dg¦  «         t          g d-¢g d)¢¦  «        \  }}}t          |d.d/g¦  «         t          |ddg¦  «         t          |d0d1g¦  «         t          g d+¢g d2¢¦  «        \  }}}|                      ||g d3¢g d4¢¦  «         t          |j        d¦  «         d S )5N©rE   rC   r�  r   ©rå  r   r�   rC   )gZd;ßOõ?gîëÀ9#Jå¿g&äƒžÍªö¿rD   r¬  )gà-� ø1Ú¿gþe÷äa¡ò¿gvqà-ù?g      ô¿rå  r�   ©rH   rF   r�   iôÿÿÿr�  r   rH   )rH   r�   r�  rC   r�   rI   )rI   g333333Àg®Gáz®ÿ?g–C‹lçûÙ¿)y      2À     @*Ày      2À     @*@g      B@)y      à?š™™™™™É¿y      à?š™™™™™É?gffffffæ?)rH   rE   r�   rD   )r�   rH   rC   )r�   r�  r�  )rC   gš™™™™™ñ¿g)\�Âõ(ì?g^ºI+ÀgÅ °rh‘õ?)rH   gffffffæ¿gìQ¸…ëÁ¿gú~j¼t“¨?)éýÿÿÿrD   rH   )rô  g333333Ó¿rû  )rH   rI   r_  r�  ç      Ð¿r_  )rH   r   rv  )rH   r   r   r   r�   )rH   y              ø?y       €      ø¿r�   )r�   ù       €      ð¿rŽ   rH   )rC   r�   rF   ©rH   rC   rC   rH   rG   ©r�   r�   r�   )rH   r_  rI   rE   )rI   rC   r�   r]  )r   rI   rC   r�   rw  éE   r   rN   )rH   r_  rD   r�  )rD   y      ð¿      @y      ð¿      À)rH   ù      ð?      ð¿rc   )r5   r   r
   rÚ   rP  ©rR   r}  rÏ  rQ  s       rV   Útest_residue_generalz1TestPartialFractionExpansion.test_residue_general  s«  € õ ˜-˜-˜-¨¨¨Ñ7Ô7‰ˆˆ1ˆaÝ˜AÐ9Ð9Ð9À1ÐEÑEÔEÐEÝ˜AÐ9Ð9Ð9À1ÐEÑEÔEÐEÝ˜A ˜y°!Ð4Ñ4Ô4Ð4å˜2˜q˜' 9 9 9Ñ-Ô-‰ˆˆ1ˆaÝ˜A  3˜xÑ(Ô(Ð(Ý˜A  B˜xÑ(Ô(Ð(Ý�Q”V˜QÑÔÐå˜1˜a˜& + + +Ñ.Ô.‰ˆˆ1ˆaÝ˜A  1˜vÑ&Ô&Ð&Ý˜A  A˜wÑ'Ô'Ð'Ý�Q”V˜QÑÔÐå˜1˜a˜&Ð"9Ð"9Ð"9Ñ:Ô:‰ˆˆ1ˆaØ×#Ò#ØˆqÐ?Ð?Ð?Ø)Ð)Ð)ñ	+ô 	+ð 	+õ 	�Q”V˜QÑÔÐå˜1˜a˜& , , ,Ñ/Ô/‰ˆˆ1ˆaØ×#Ò# A q¨*¨*¨*°l°l°lÑCÔCÐCÝ�Q”V˜QÑÔÐåÐ8Ð8Ð8Ø1Ð1Ð1ñ3ô 3‰ˆˆ1ˆaå˜A˜z˜z˜zÑ*Ô*Ð*Ý˜AÐ/Ð/Ð/Ñ0Ô0Ð0Ý˜A  1˜vÑ&Ô&Ð&å˜1˜#˜z˜z˜zÑ*Ô*‰ˆˆ1ˆaÝ˜A  e˜}Ñ-Ô-Ð-Ý˜A  2˜wÑ'Ô'Ð'Ý�Q”V˜QÑÔÐå˜*˜*˜*Ð&6Ð&6Ð&6Ñ7Ô7‰ˆˆ1ˆaØ×#Ò# A qØ$8Ð$8Ð$8Ð:JÐ:JÐ:Jñ	Lô 	Lð 	Lå�Q”V˜QÑÔÐå˜)˜)˜) \ \ \Ñ2Ô2‰ˆˆ1ˆaØ×#Ò# A q¨)¨)¨)°\°\°\ÑBÔBÐBÝ�Q”V˜QÑÔÐå˜1˜b˜' : : :Ñ.Ô.‰ˆˆ1ˆaÝ˜A  A˜wÑ'Ô'Ð'Ý˜A  1˜vÑ&Ô&Ð&Ý�Q”V˜QÑÔÐå˜*˜*˜* j j jÑ1Ô1‰ˆˆ1ˆaÝ˜A  B˜xÑ(Ô(Ð(Ý˜A  1˜vÑ&Ô&Ð&Ý˜A ˜sÑ#Ô#Ð#å˜-˜-˜-¨¨¨Ñ4Ô4‰ˆˆ1ˆaÝ˜A  R˜yÑ)Ô)Ð)Ý˜A  1˜vÑ&Ô&Ð&Ý˜A  2˜wÑ'Ô'Ð'å˜*˜*˜* n n nÑ5Ô5‰ˆˆ1ˆaØ×#Ò# A qÐ*CÐ*CÐ*CØ$7Ð$7Ð$7ñ	9ô 	9ð 	9å˜AœF AÑ&Ô&Ð&Ð&Ð&rX   c                 óæ  — t          g d¢g d¢¦  «        \  }}}t          g d¢g d¢¦  «        \  }}}t          g d¢g d¢¦  «        \  }}}	t          g d¢g d¢¦  «        \  }
}}t          ||¦  «         t          ||¦  «         t          ||
¦  «         t          ||¦  «         t          ||¦  «         t          ||¦  «         t          ||¦  «         t          ||	¦  «         t          ||¦  «         d S )Nr\  r]  )r   rE   rC   r�  r   )r   rå  r   r�   rC   )r   r   rE   rC   r�  r   )r   r   r   rå  r   r�   rC   )r5   r   ©rR   Úr0Úp0Úk0Úr1Úp1Úk1Úr2Úp2Úk2Úr3Úp3Úk3s                rV   Útest_residue_leading_zerosz7TestPartialFractionExpansion.test_residue_leading_zeros]  s  € å˜]˜]˜]¨M¨M¨MÑ:Ô:‰
ˆˆB�ÝÐ-Ð-Ð-¨}¨}¨}Ñ=Ô=‰
ˆˆB�Ý˜]˜]˜]Ð,<Ð,<Ð,<Ñ=Ô=‰
ˆˆB�ÝÐ0Ð0Ð0Ð2HÐ2HÐ2HÑIÔI‰
ˆˆB�Ý˜B Ñ#Ô#Ð#Ý˜B Ñ#Ô#Ð#Ý˜B Ñ#Ô#Ð#Ý˜B Ñ#Ô#Ð#Ý˜B Ñ#Ô#Ð#Ý˜B Ñ#Ô#Ð#Ý˜B Ñ#Ô#Ð#Ý˜B Ñ#Ô#Ð#Ý˜B Ñ#Ô#Ð#Ð#Ð#rX   c                 óÖ  — t          ddgg d¢¦  «        \  }}}t          |ddg¦  «         t          |ddg¦  «         t          |j        d¦  «         t          dd¦  «        \  }}}t          |j        d¦  «         t          |j        d¦  «         t          |j        d¦  «         t	          j        t          d¬¦  «        5  t          dd¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   r^  r�  rå  rH   úDenominator `a` is zero.r*  )r5   r   r
   rÚ   rf  r	   r    rf  s       rV   Útest_resiude_degeneratez4TestPartialFractionExpansion.test_resiude_degeneratem  s)  € å˜1˜a˜& ) ) )Ñ,Ô,‰ˆˆ1ˆaÝ˜A  1˜vÑ&Ô&Ð&Ý˜A  B˜xÑ(Ô(Ð(Ý�Q”V˜QÑÔÐå˜!˜Q‘-”-‰ˆˆ1ˆaÝ�Q”V˜QÑÔÐÝ�Q”V˜QÑÔÐÝ�Q”V˜QÑÔÐåŒ]�:Ð-GÐHÑHÔHð 	ð 	Ý�A�q‰MŒMˆMð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   Ã CÃC"Ã%C"c                 ó*	  — t          g d¢g d¢¦  «        \  }}}|                      ||g d¢g d¢¦  «         t          |dg¦  «         t          g d¢g d¢¦  «        \  }}}|                      ||dd	gd
dgd¬¦  «         t          |dgd¬¦  «         t          ddgg d¢¦  «        \  }}}t          |ddg¦  «         t          |ddg¦  «         t          |j        d¦  «         t          g d¢g d¢¦  «        \  }}}|                      ||g d¢g d¢¦  «         t          |j        d¦  «         t          g d¢g d¢¦  «        \  }}}t          |ddg¦  «         t          |ddg¦  «         t          |ddg¦  «         t          dgg d¢¦  «        \  }}}|                      ||g d ¢g d!¢¦  «         t          |j        d¦  «         t          ddgt          j        dd"gdd#g¦  «        ¦  «        \  }}}t          |d$d%g¦  «         t          |d&dg¦  «         t          |j        d¦  «         t          g d'¢ddg¦  «        \  }}}t          |dg¦  «         t          |dg¦  «         t          |ddg¦  «         t          ddd(g¦  «        \  }}}t          |dg¦  «         t          |d)g¦  «         t          |j        d¦  «         t          dg d*¢¦  «        \  }}}t          |ddg¦  «         t          |ddg¦  «         t          |j        d¦  «         t          dg d+¢¦  «        \  }}}t          |ddg¦  «         t          |d#dg¦  «         t          |j        d¦  «         t          g d,¢g d'¢¦  «        \  }}}t          |d-d.g¦  «         t          |ddg¦  «         t          |dg¦  «         t          d/dgg d'¢¦  «        \  }}}t          |d0d1g¦  «         t          |ddg¦  «         t          |j        d¦  «         t          g d¢g d'¢¦  «        \  }}}t          |d2d3g¦  «         t          |ddg¦  «         t          |d4dg¦  «         t          g d5¢g d6¢¦  «        \  }}}|                      ||g d7¢g d8¢d¬¦  «         t          |j        d¦  «         d S )9N)rH   rF   rF   rI   )rH   y       À      ð¿r©  ra  )y       À      @y      @      @y      À      (À)rŽ   rH   rH   rf   )rH   rI   rH   )rH   r�   g'Â†§WÊÖ?y	Šcîì¿à-� øÀy	Šcîì¿à-� ø@y      à?*©ÐDØÔ?y      à?*©ÐDØÔ¿rD   r¬  g�Å�1w@rH   r�   )rH   rv  rF   rI   rC   r   r}   rb  )rD   rv  rC   rc  )rH   r^  rå  rD   )rI   r�  rå  rô  g      ø¿ç      ø?rW  )rW  rC   rå  r�   )g
×£p=
×?g¸…ëQ¸Î?çš™™™™™Ù?)rô  çUUUUUUÕ¿r}  rR  r�  g«ªªªªª
ÀgUUUUUU@r`  ©rH   r�  rH   ra  rŽ   )rH   r�   r�  )rH   g      è¿rv  )rH   rF   rI   r^  r  rF   r�  r�   ièÿÿÿr[  rJ   r;  )rH   r   r   r   r   r�   )yoð…ÉTÁÐ?cÙ=yXÈ?yoð…ÉTÁÐ?cÙ=yXÈ¿r|  yjMóŽ£?%uš¾¿yjMóŽ£?%uš¾?)yÙÎ÷Sãé¿s×òAÏâ?yÙÎ÷Sãé¿s×òAÏâ¿rM  y-²�ï§ÆÓ?8gDioî?y-²�ï§ÆÓ?8gDioî¿)r6   rP  r   r
   rÚ   rr   Úpolymulrf  s       rV   Útest_residuez_generalz2TestPartialFractionExpansion.test_residuez_general|  sg  € Ý˜<˜<˜<Ð)FÐ)FÐ)FÑGÔG‰ˆˆ1ˆaØ×#Ò# A qÐ*GÐ*GÐ*GØ$. J Jñ	0ô 	0ð 	0å˜A ˜tÑ$Ô$Ð$å˜9˜9˜9 o o oÑ6Ô6‰ˆˆ1ˆaØ×#Ò# A qØ%6Ð8IÐ$JØ%2°MÐ$BØ,-ð 	$ñ 	/ô 	/ð 	/õ 	˜A ˜x°Ð3Ñ3Ô3Ð3å˜A˜r˜7 J J JÑ/Ô/‰ˆˆ1ˆaÝ˜A  A˜wÑ'Ô'Ð'Ý˜A  1˜vÑ&Ô&Ð&Ý�Q”V˜QÑÔÐå˜9˜9˜9 l l lÑ3Ô3‰ˆˆ1ˆaØ×#Ò# A q¨*¨*¨*°l°l°lÑCÔCÐCÝ�Q”V˜QÑÔÐå˜?˜?˜?¨K¨K¨KÑ8Ô8‰ˆˆ1ˆaÝ˜A  T˜{Ñ+Ô+Ð+Ý˜A  A˜wÑ'Ô'Ð'Ý˜A  R˜yÑ)Ô)Ð)å˜B˜4   Ñ1Ô1‰ˆˆ1ˆaØ×#Ò# A qØ$5Ð$5Ð$5Ð7HÐ7HÐ7Hñ	Jô 	Jð 	Jå�Q”V˜QÑÔÐå˜A˜q˜6¥2¤:¨q°$¨i¸!¸S¸Ñ#BÔ#BÑCÔC‰ˆˆ1ˆaÝ˜A  t˜}Ñ-Ô-Ð-Ý˜A  s˜|Ñ,Ô,Ð,Ý�Q”V˜QÑÔÐå˜:˜:˜:¨¨2 wÑ/Ô/‰ˆˆ1ˆaÝ˜A ˜sÑ#Ô#Ð#Ý˜A ˜sÑ#Ô#Ð#Ý˜A  2˜wÑ'Ô'Ð'å˜1˜q #˜hÑ'Ô'‰ˆˆ1ˆaÝ˜A ˜sÑ#Ô#Ð#Ý˜A ˜tÑ$Ô$Ð$Ý�Q”V˜QÑÔÐå˜1˜m˜m˜mÑ,Ô,‰ˆˆ1ˆaÝ˜A  1˜vÑ&Ô&Ð&Ý˜A  S˜zÑ*Ô*Ð*Ý�Q”V˜QÑÔÐå˜1Ð.Ð.Ð.Ñ/Ô/‰ˆˆ1ˆaÝ˜A  A˜wÑ'Ô'Ð'Ý˜A  c˜{Ñ+Ô+Ð+Ý�Q”V˜QÑÔÐå˜9˜9˜9 j j jÑ1Ô1‰ˆˆ1ˆaÝ˜A  Q˜xÑ(Ô(Ð(Ý˜A  1˜vÑ&Ô&Ð&Ý˜A ˜sÑ#Ô#Ð#å˜A˜q˜6 : : :Ñ.Ô.‰ˆˆ1ˆaÝ˜A  A˜wÑ'Ô'Ð'Ý˜A  1˜vÑ&Ô&Ð&Ý�Q”V˜QÑÔÐå˜<˜<˜<¨¨¨Ñ4Ô4‰ˆˆ1ˆaÝ˜A  R˜yÑ)Ô)Ð)Ý˜A  1˜vÑ&Ô&Ð&Ý˜A  A˜wÑ'Ô'Ð'å˜9˜9˜9Ð&9Ð&9Ð&9Ñ:Ô:‰ˆˆ1ˆaØ×#Ò# A qð%Nð %Nð %Nð%Nð %Nð %Nà,-ð 	$ñ 	/ô 	/ð 	/õ 	�Q”V˜QÑÔÐÐÐrX   c                 óæ  — t          g d¢g d¢¦  «        \  }}}t          g d¢g d¢¦  «        \  }}}t          g d¢g d¢¦  «        \  }}}	t          g d¢g d¢¦  «        \  }
}}t          ||¦  «         t          ||¦  «         t          ||
¦  «         t          ||¦  «         t          ||¦  «         t          ||¦  «         t          ||¦  «         t          ||	¦  «         t          ||¦  «         d S )Nr\  r]  )rE   rC   r�  r   r   )rå  r   r�   rC   r   )rE   rC   r�  r   r   r   )rå  r   r�   rC   r   r   r   )r6   r   ri  s                rV   Útest_residuez_trailing_zerosz9TestPartialFractionExpansion.test_residuez_trailing_zerosÍ  s  € õ ˜m˜m˜m¨]¨]¨]Ñ;Ô;‰
ˆˆB�ÝÐ.Ð.Ð.°°°Ñ>Ô>‰
ˆˆB�Ý˜m˜m˜mÐ-=Ð-=Ð-=Ñ>Ô>‰
ˆˆB�ÝÐ1Ð1Ð1Ð3IÐ3IÐ3IÑJÔJ‰
ˆˆB�Ý˜B Ñ#Ô#Ð#Ý˜B Ñ#Ô#Ð#Ý˜B Ñ#Ô#Ð#Ý˜B Ñ#Ô#Ð#Ý˜B Ñ#Ô#Ð#Ý˜B Ñ#Ô#Ð#Ý˜B Ñ#Ô#Ð#Ý˜B Ñ#Ô#Ð#Ý˜B Ñ#Ô#Ð#Ð#Ð#rX   c                 ó`  — t          ddgg d¢¦  «        \  }}}t          |ddg¦  «         t          |ddg¦  «         t          |j        d¦  «         t          dd¦  «        \  }}}t          |j        d¦  «         t          |j        d¦  «         t          |j        d¦  «         t	          j        t          d¬¦  «        5  t          dd¦  «         d d d ¦  «         n# 1 swxY w Y   t	          j        t          d¬¦  «        5  t          dg d	¢¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )
Nr   r^  r�  rå  rH   rx  r*  z6First coefficient of determinant `a` must be non-zero.r½  )r6   r   r
   rÚ   rf  r	   r    rf  s       rV   Útest_residuez_degeneratez5TestPartialFractionExpansion.test_residuez_degenerateÞ  s´  € Ý˜A˜q˜6 9 9 9Ñ-Ô-‰ˆˆ1ˆaÝ˜A  1˜vÑ&Ô&Ð&Ý˜A  B˜xÑ(Ô(Ð(Ý�Q”V˜QÑÔÐå˜1˜a‘.”.‰ˆˆ1ˆaÝ�Q”V˜QÑÔÐÝ�Q”V˜QÑÔÐÝ�Q”V˜QÑÔÐåŒ]�:Ð-GÐHÑHÔHð 	ð 	Ý�Q˜‰NŒNˆNð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ Œ]�:ð"0ð1ñ 1ô 1ð 	&ð 	&õ �Q˜˜˜Ñ%Ô%Ð%ð	&ð 	&ð 	&ñ 	&ô 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&øøøð 	&ð 	&ð 	&ð 	&ð 	&ð 	&s$   Ã CÃC!Ã$C!ÄD#Ä#D'Ä*D'c                 ó  — g d¢}g d¢}g }g d¢}g d¢}dD ]n}t          ||||¬¦  «        \  }}t          ||¦  «         t          ||¦  «         t          ||||¬¦  «        \  }}t          ||¦  «         t          ||¦  «         Œod S )N)rö  çUUUUUUÅ¿gÁ¿)r   r�  rv  )r   rH   rC   )rH   r   rJ   r   ©Úavgr±  rV  r³  rû  r´  ©Úrtype©r)   r   r*   )	rR   r}  rÏ  rQ  Ú
b_expectedÚ
a_expectedrŠ  rT   rS   s	            rV   Ú*test_inverse_unique_roots_different_rtypeszGTestPartialFractionExpansion.test_inverse_unique_roots_different_rtypesñ  sÀ   € à%Ð%Ð%ˆØˆKˆKˆØˆØ�Y�Yˆ
Ø"�]�]ˆ
ð Ið 	+ð 	+ˆEÝ˜!˜Q ¨Ð/Ñ/Ô/‰DˆAˆqÝ˜A˜zÑ*Ô*Ð*Ý˜A˜zÑ*Ô*Ð*å˜1˜a ¨%Ð0Ñ0Ô0‰DˆAˆqÝ˜A˜zÑ*Ô*Ð*Ý˜A˜zÑ*Ô*Ð*Ð*ð	+ð 	+rX   c                 ó  — g d¢}g d¢}g }g d¢}g d¢}g d¢}dD ]r}t          ||||¬¦  «        \  }}	t          ||d¬	¦  «         t          |	|¦  «         t          ||||¬¦  «        \  }}	t          ||d¬	¦  «         t          |	|¦  «         Œsd S )
N©g333333Ã?g9Žã8ŽãÈ¿r†  glÁlÁ¦?©r   r�  r�  rv  )r   r   rH   rC   )r†  gUUUUUUå¿gUUUUUUý?rC   )rH   r  r  rû   r   r‡  r‰  r‰  rð  r‹  )
rR   r}  rÏ  rQ  rŒ  Úb_expected_zr�  rŠ  rT   rS   s
             rV   Ú,test_inverse_repeated_roots_different_rtypeszITestPartialFractionExpansion.test_inverse_repeated_roots_different_rtypes  sÔ   € Ø-Ð-Ð-ˆØˆOˆOˆØˆØ!�\�\ˆ
Ø,Ð,Ð,ˆØ&Ð&Ð&ˆ
àHð 	+ð 	+ˆEÝ˜!˜Q ¨Ð/Ñ/Ô/‰DˆAˆqÝ˜A˜z°Ð6Ñ6Ô6Ð6Ý˜A˜zÑ*Ô*Ð*å˜1˜a ¨%Ð0Ñ0Ô0‰DˆAˆqÝ˜A˜|°%Ð8Ñ8Ô8Ð8Ý˜A˜zÑ*Ô*Ð*Ð*ð	+ð 	+rX   c                 ó4  — g d¢}g d¢}g }t          j        t          d¬¦  «        5  t          |||d¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  t	          |||d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr�  r‘  z`rtype` must be one ofr*  r²  r‰  )rf  r	   r    r)   r*   rf  s       rV   Útest_inverse_bad_rtypez3TestPartialFractionExpansion.test_inverse_bad_rtype  s.  € Ø-Ð-Ð-ˆØˆOˆOˆØˆÝŒ]�:Ð-EÐFÑFÔFð 	,ð 	,Ý�1�a˜ (Ð+Ñ+Ô+Ð+ð	,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,øøøð 	,ð 	,ð 	,ð 	,åŒ]�:Ð-EÐFÑFÔFð 	-ð 	-Ý�A�q˜! 8Ð,Ñ,Ô,Ð,ð	-ð 	-ð 	-ñ 	-ô 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-øøøð 	-ð 	-ð 	-ð 	-ð 	-ð 	-s#   ¦AÁA
ÁA
Á,BÂBÂBc                 ó†   — dg}dg}dg}t          |||¦  «        \  }}t          |dg¦  «         t          |ddg¦  «         d S )NrH   rI   r   rM  g       À)r*   r   )rR   r}  rÏ  rQ  rT   rS   s         rV   Ú test_invresz_one_coefficient_bugz=TestPartialFractionExpansion.test_invresz_one_coefficient_bug  sX   € àˆCˆØˆCˆØˆCˆÝ�q˜!˜QÑÔ‰ˆˆ1Ý˜˜C˜5Ñ!Ô!Ð!Ý˜˜C ˜;Ñ'Ô'Ð'Ð'Ð'rX   c                 ó`  — t          dgdgg ¦  «        \  }}t          |dg¦  «         t          |ddg¦  «         t          g d¢g d¢g ¦  «        \  }}t          |g d¢¦  «         t          |g d¢¦  «         t          ddgdd	gg d
¢¦  «        \  }}t          |g d¢¦  «         t          |g d¢¦  «         t          g d¢g d¢g ¦  «        \  }}t          |g d¢¦  «         t          |g d¢¦  «         t          ddgddgddg¦  «        \  }}t          |g d¢¦  «         t          |g d¢¦  «         d S )NrH   r�   ©re  rI   ù      à?      À©rH   rÝ   rc   ©y      @      Ày      !À      Ð?y      @      
@©rH   y       À      ø¿y      à?       @y      à?      à¿rô  re  r™  rG   )rH   ù      ð¿      ð¿ù      ð?       Àrš  rJ   ©rH   ù      À      ð¿rD   ©r�   rI   rŽ   rË  rD   r�  ©r�   r®   r®   rC   rC   rC   )y      @      ð¿y      <À      0@y      D@      OÀy      Y@      8@y     @rÀ     `k@y      h@     ÀpÀ©rH   y      (À       @y     €J@      4Ày      XÀ      Q@y      ;@      RÀy      [@      KÀy     @TÀ      [@rŽ   rI   )rH   r   rå  re   r~  )r)   r   ©rR   rT   rS   s      rV   Útest_invresz(TestPartialFractionExpansion.test_invres'  s   € Ý�q�c˜A˜3 Ñ#Ô#‰ˆˆ1Ý˜A ˜sÑ#Ô#Ð#Ý˜A  2˜wÑ'Ô'Ð'åÐ+Ð+Ð+Ð->Ð->Ð->ÀÑCÔC‰ˆˆ1Ý˜AÐDÐDÐDÑEÔEÐEÝ˜AÐCÐCÐCÑDÔDÐDå�s˜A�h ¨Ð 0°)°)°)Ñ<Ô<‰ˆˆ1Ý˜AÐAÐAÐAÑBÔBÐBÝ˜A˜˜˜Ñ/Ô/Ð/åÐ0Ð0Ð0Ø3Ð3Ð3°Rñ9ô 9‰ˆˆ1å˜Að  9ð  9ð  9ñ 	:ô 	:ð 	:å˜Að  7ð  7ð  7ñ 	8ô 	8ð 	8õ �r˜2�h  A ¨¨A¨Ñ/Ô/‰ˆˆ1Ý˜AÐ1Ð1Ð1Ñ2Ô2Ð2Ý˜A˜z˜z˜zÑ*Ô*Ð*Ð*Ð*rX   c                 ó`  — t          dgdgg ¦  «        \  }}t          |dg¦  «         t          |ddg¦  «         t          g d¢g d¢g ¦  «        \  }}t          |g d¢¦  «         t          |g d¢¦  «         t          ddgdd	gg d
¢¦  «        \  }}t          |g d¢¦  «         t          |g d¢¦  «         t          g d¢g d¢g ¦  «        \  }}t          |g d¢¦  «         t          |g d¢¦  «         t          ddgddgddg¦  «        \  }}t          |g d¢¦  «         t          |g d¢¦  «         d S )NrH   r�   r™  r›  rœ  r�  rô  re  r™  rG   )g      @r¡  rŸ  y      ð¿      ÀrO   r   r¢  r£  )rF   y      IÀ      &@y      Y@      RÀy      T@      M@y      vÀ     €l@y     @m@     �rÀr¤  rŽ   rI   )rŽ   rH   r_  rI   r~  )r*   r   r¥  s      rV   Útest_invreszz)TestPartialFractionExpansion.test_invresz?  s�  € Ý˜�s˜Q˜C Ñ$Ô$‰ˆˆ1Ý˜A ˜sÑ#Ô#Ð#Ý˜A  2˜wÑ'Ô'Ð'åÐ,Ð,Ð,Ð.?Ð.?Ð.?ÀÑDÔD‰ˆˆ1Ý˜AÐDÐDÐDÑEÔEÐEÝ˜AÐCÐCÐCÑDÔDÐDå˜˜Q�x &¨&Ð!1°9°9°9Ñ=Ô=‰ˆˆ1Ý˜AÐBÐBÐBÑCÔCÐCÝ˜A˜˜˜Ñ/Ô/Ð/åÐ1Ð1Ð1Ø4Ð4Ð4°bñ:ô :‰ˆˆ1å˜Að  9ð  9ð  9ñ 	:ô 	:ð 	:å˜Að  7ð  7ð  7ñ 	8ô 	8ð 	8õ ˜˜B�x ! Q ¨!¨Q¨Ñ0Ô0‰ˆˆ1Ý˜A˜~˜~˜~Ñ.Ô.Ð.Ý˜A˜z˜z˜zÑ*Ô*Ð*Ð*Ð*rX   c                 óæ   — t          ddd¦  «        \  }}t          |ddg¦  «         t          |ddg¦  «         t          ddd¦  «        \  }}t          |ddg¦  «         t          |ddg¦  «         d S )NrH   r   r�   rI   )r)   r   r*   r¥  s      rV   Útest_inverse_scalar_argumentsz:TestPartialFractionExpansion.test_inverse_scalar_argumentsW  s€   € Ý�a˜˜A‰Œ‰ˆˆ1Ý˜A  1˜vÑ&Ô&Ð&Ý˜A  2˜wÑ'Ô'Ð'å�q˜!˜QÑÔ‰ˆˆ1Ý˜A  2˜wÑ'Ô'Ð'Ý˜A  2˜wÑ'Ô'Ð'Ð'Ð'rX   N)r   )r£   r¤   r¥   ÚstaticmethodrP  rT  rZ  rg  rv  ry  r€  r‚  r„  rŽ  r“  r•  r—  r¦  r¨  rª  r¦   rX   rV   rH  rH  ó
  s  € € € € € Øð	Dð 	Dð 	Dñ „\ð	Dð?ð ?ð ?ð&.ð .ð .ðB'ð B'ð B'ðH$ð $ð $ð ð ð ðO ð O ð O ðb$ð $ð $ð"&ð &ð &ð&+ð +ð +ð&+ð +ð +ð"-ð -ð -ð(ð (ð (ð+ð +ð +ð0+ð +ð +ð0(ð (ð (ð (ð (rX   rH  c                   ób   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestVectorstrengthc                 ó  — t          j        dg¦  «        }d}d}d}t          ||¦  «        \  }}t          |j        d¦  «         t          |j        d¦  «         t          ||¦  «         t          |dt           j        z  |z  ¦  «         d S )Nrô  rz  rM  rü  r   rI   ©rr   r   r+   r
   r‰  r   rú  ©rR   ÚeventsÚperiodÚtarg_strengthÚ
targ_phaseÚstrengthÚphases          rV   Útest_single_1dperiodz'TestVectorstrength.test_single_1dperiodc  sˆ   € Ý”˜2˜$‘”ˆØˆØˆØˆ
å(¨°Ñ8Ô8‰ˆ�%å�X”] AÑ&Ô&Ð&Ý�U”Z Ñ#Ô#Ð#Ý˜H mÑ4Ô4Ð4Ý˜E 1¥r¤u¡9¨zÑ#9Ñ:Ô:Ð:Ð:Ð:rX   c                 óJ  — t          j        dg¦  «        }g d¢}dgdz  }t          j        g d¢¦  «        }t          ||¦  «        \  }}t          |j        d¦  «         t          |j        d¦  «         t          ||¦  «         t          |dt           j        z  |z  ¦  «         d S )Nrô  )rH   rI   rz  rM  rC   )rô  r�  rü  rH   rI   )rr   r   r+   r
   r‰  r   r   rú  r°  s          rV   Útest_single_2dperiodz'TestVectorstrength.test_single_2dperiodp  s    € Ý”˜2˜$‘”ˆØ��ˆØ˜˜q™ˆÝ”X˜m˜m˜mÑ,Ô,ˆ
å(¨°Ñ8Ô8‰ˆ�%å�X”] AÑ&Ô&Ð&Ý�U”Z Ñ#Ô#Ð#Ý! (¨MÑ:Ô:Ð:Ý˜E 1¥r¤u¡9¨zÑ#9Ñ:Ô:Ð:Ð:Ð:rX   c                 ó  — t          j        g d¢¦  «        }d}d}d}t          ||¦  «        \  }}t          |j        d¦  «         t          |j        d¦  «         t          ||¦  «         t          |dt           j        z  |z  ¦  «         d S )N©r�  r�  r�  r�  r�  r�  rI   rM  rv  r   r¯  r°  s          rV   Útest_equal_1dperiodz&TestVectorstrength.test_equal_1dperiod}  s�   € Ý”Ð8Ð8Ð8Ñ9Ô9ˆØˆØˆØˆ
å(¨°Ñ8Ô8‰ˆ�%å�X”] AÑ&Ô&Ð&Ý�U”Z Ñ#Ô#Ð#Ý˜H mÑ4Ô4Ð4Ý˜E 1¥r¤u¡9¨zÑ#9Ñ:Ô:Ð:Ð:Ð:rX   c                 óL  — t          j        g d¢¦  «        }ddg}dgdz  }t          j        ddg¦  «        }t          ||¦  «        \  }}t          |j        d¦  «         t          |j        d¦  «         t          ||¦  «         t          |dt           j        z  |z  ¦  «         d S )Nr»  rH   rI   rM  r�  rv  r¯  r°  s          rV   Útest_equal_2dperiodz&TestVectorstrength.test_equal_2dperiodŠ  s§   € Ý”Ð8Ð8Ð8Ñ9Ô9ˆØ�Q�ˆØ˜˜q™ˆÝ”X˜s D˜kÑ*Ô*ˆ
å(¨°Ñ8Ô8‰ˆ�%å�X”] AÑ&Ô&Ð&Ý�U”Z Ñ#Ô#Ð#Ý˜H mÑ4Ô4Ð4Ý˜E 1¥r¤u¡9¨zÑ#9Ñ:Ô:Ð:Ð:Ð:rX   c                 ó  — t          j        g d¢¦  «        }d}d}d}t          ||¦  «        \  }}t          |j        d¦  «         t          |j        d¦  «         t          ||¦  «         t          |dt           j        z  |z  ¦  «         d S )N©rü  gš™™™™™ñ?gÍÌÌÌÌÌ @gffffff@g333333$@rH   rM  rü  r   rI   r¯  r°  s          rV   Útest_spaced_1dperiodz'TestVectorstrength.test_spaced_1dperiod—  s�   € Ý”Ð3Ð3Ð3Ñ4Ô4ˆØˆØˆØˆ
å(¨°Ñ8Ô8‰ˆ�%å�X”] AÑ&Ô&Ð&Ý�U”Z Ñ#Ô#Ð#Ý˜H mÑ4Ô4Ð4Ý˜E 1¥r¤u¡9¨zÑ#9Ñ:Ô:Ð:Ð:Ð:rX   c                 óL  — t          j        g d¢¦  «        }ddg}dgdz  }t          j        ddg¦  «        }t          ||¦  «        \  }}t          |j        d¦  «         t          |j        d¦  «         t          ||¦  «         t          |dt           j        z  |z  ¦  «         d S )NrÀ  rH   rô  rM  rI   rü  rô  r¯  r°  s          rV   Útest_spaced_2dperiodz'TestVectorstrength.test_spaced_2dperiod¤  s§   € Ý”Ð3Ð3Ð3Ñ4Ô4ˆØ�R�ˆØ˜˜q™ˆÝ”X˜r 2˜hÑ'Ô'ˆ
å(¨°Ñ8Ô8‰ˆ�%å�X”] AÑ&Ô&Ð&Ý�U”Z Ñ#Ô#Ð#Ý˜H mÑ4Ô4Ð4Ý˜E 1¥r¤u¡9¨zÑ#9Ñ:Ô:Ð:Ð:Ð:rX   c                 ó  — t          j        g d¢¦  «        }d}d}d}t          ||¦  «        \  }}t          |j        d¦  «         t          |j        d¦  «         t          ||¦  «         t          |dt           j        z  |z  ¦  «         d S )N©r�  rô  ç      è?rH   çUUUUUUÕ?rô  r   rI   r¯  r°  s          rV   Útest_partial_1dperiodz(TestVectorstrength.test_partial_1dperiod±  sŒ   € Ý”˜.˜.˜.Ñ)Ô)ˆØˆØˆØˆ
å(¨°Ñ8Ô8‰ˆ�%å�X”] AÑ&Ô&Ð&Ý�U”Z Ñ#Ô#Ð#Ý˜H mÑ4Ô4Ð4Ý˜E 1¥r¤u¡9¨zÑ#9Ñ:Ô:Ð:Ð:Ð:rX   c                 óL  — t          j        g d¢¦  «        }g d¢}dgdz  }t          j        g d¢¦  «        }t          ||¦  «        \  }}t          |j        d¦  «         t          |j        d¦  «         t          ||¦  «         t          |dt           j        z  |z  ¦  «         d S )NrÅ  )rM  rM  rM  rM  rÇ  rD   )rô  rô  rô  rô  rH   rI   r¯  r°  s          rV   Útest_partial_2dperiodz(TestVectorstrength.test_partial_2dperiod¾  s©   € Ý”˜.˜.˜.Ñ)Ô)ˆØ!Ð!Ð!ˆØ ˜	 A™ˆÝ”XÐ.Ð.Ð.Ñ/Ô/ˆ
å(¨°Ñ8Ô8‰ˆ�%å�X”] AÑ&Ô&Ð&Ý�U”Z Ñ#Ô#Ð#Ý˜H mÑ4Ô4Ð4Ý˜E 1¥r¤u¡9¨zÑ#9Ñ:Ô:Ð:Ð:Ð:rX   c                 óÔ   — t          j        g d¢¦  «        }d}d}t          ||¦  «        \  }}t          |j        d¦  «         t          |j        d¦  «         t          ||¦  «         d S )N©r   r�  rô  rÆ  rM  r   ©rr   r   r+   r
   r‰  r   ©rR   r±  r²  r³  rµ  r¶  s         rV   Útest_opposite_1dperiodz)TestVectorstrength.test_opposite_1dperiodË  so   € Ý”Ð+Ð+Ð+Ñ,Ô,ˆØˆØˆå(¨°Ñ8Ô8‰ˆ�%å�X”] AÑ&Ô&Ð&Ý�U”Z Ñ#Ô#Ð#Ý˜H mÑ4Ô4Ð4Ð4Ð4rX   c                 óä   — t          j        g d¢¦  «        }dgdz  }dgdz  }t          ||¦  «        \  }}t          |j        d¦  «         t          |j        d¦  «         t          ||¦  «         d S )NrÌ  rM  rJ   rõ  rH   rÍ  rÎ  s         rV   Útest_opposite_2dperiodz)TestVectorstrength.test_opposite_2dperiodÖ  s{   € Ý”Ð+Ð+Ð+Ñ,Ô,ˆØ�˜‘ˆØ˜˜r™	ˆå(¨°Ñ8Ô8‰ˆ�%å�X”] AÑ&Ô&Ð&Ý�U”Z Ñ#Ô#Ð#Ý˜H mÑ4Ô4Ð4Ð4Ð4rX   c                 óp   — t          j        ddgg¦  «        }d}t          t          t          ||¦  «         d S )NrH   rI   rM  ©rr   r   rŸ   r    r+   ©rR   r±  r²  s      rV   Útest_2d_events_ValueErrorz,TestVectorstrength.test_2d_events_ValueErrorá  s6   € Ý”˜A˜q˜6˜(Ñ#Ô#ˆØˆÝ•j¥.°&¸&ÑAÔAÐAÐAÐArX   c                 ón   — d}t          j        dgg¦  «        }t          t          t          ||¦  «         d S )NrM  rH   rÓ  rÔ  s      rV   Útest_2d_period_ValueErrorz,TestVectorstrength.test_2d_period_ValueErroræ  s2   € ØˆÝ”˜A˜3˜%‘”ˆÝ•j¥.°&¸&ÑAÔAÐAÐAÐArX   c                 óF   — d}d}t          t          t          ||¦  «         d S )NrM  r   ©rŸ   r    r+   rÔ  s      rV   Útest_zero_period_ValueErrorz.TestVectorstrength.test_zero_period_ValueErrorë  s&   € ØˆØˆÝ•j¥.°&¸&ÑAÔAÐAÐAÐArX   c                 óF   — d}d}t          t          t          ||¦  «         d S )NrM  r�   rÙ  rÔ  s      rV   Útest_negative_period_ValueErrorz2TestVectorstrength.test_negative_period_ValueErrorð  s&   € ØˆØˆÝ•j¥.°&¸&ÑAÔAÐAÐAÐArX   N)r£   r¤   r¥   r·  r¹  r¼  r¾  rÁ  rÃ  rÈ  rÊ  rÏ  rÑ  rÕ  r×  rÚ  rÜ  r¦   rX   rV   r­  r­  a  sô   € € € € € ð;ð ;ð ;ð;ð ;ð ;ð;ð ;ð ;ð;ð ;ð ;ð;ð ;ð ;ð;ð ;ð ;ð;ð ;ð ;ð;ð ;ð ;ð	5ð 	5ð 	5ð	5ð 	5ð 	5ðBð Bð Bð
Bð Bð Bð
Bð Bð Bð
Bð Bð Bð Bð BrX   r­  r  c                 óæ   — | j         j        dk    rNt          j        | j        d         ¦  «        j         }|                      |¦  «        |                     |¦  «        }} t          | |||¦  «         dS )z1Wrap assert_allclose while casting object arrays.rD  r   N)rð   rñ   rr   r   Úflatrò   r   )ÚactualÚdesiredrç   rè   rð   s        rV   Úassert_allclose_castrá  ö  se   € à„|Ô˜CÒÐÝ”˜œ QœÑ(Ô(Ô.ˆØ Ÿ-š-¨Ñ.Ô.°·²¸uÑ0EÔ0E�ˆÝ�F˜G T¨4Ñ0Ô0Ð0Ð0Ð0rX   rE  c                 óÖ  — t          d¦  «        t          d¦  «        t          d¦  «        g}t          d¦  «        t          d¦  «        t          d¦  «        g}t          d¦  «        t          d¦  «        t          d¦  «        g}t          j        |¦  «        }|j        j        dk    sJ ‚t          t          j        |t          ¦  «        t          j        |t          ¦  «        |                     t          ¦  «        ¦  «        }| t          u rt          ||z   g|¦  «        }nt          |||¦  «        }t          d„ |D ¦   «         ¦  «        sJ ‚t          |                     t          ¦  «        |                     t          ¦  «        ¦  «         | t
          u rddg}nt          dd¦  «        g}t          j        t          d¬¦  «        5   | |d	diŽ d d d ¦  «         d S # 1 swxY w Y   d S )
NrH   rI   rC   rD  c              3   ó@   K  — | ]}t          |t          ¦  «        V — Œd S r$  )rÃ  r   )rÓ   rg   s     rV   ú	<genexpr>z)test_nonnumeric_dtypes.<locals>.<genexpr>
  s,   è è € Ð6Ð6¨!�z˜!�WÑ%Ô%Ð6Ð6Ð6Ð6Ð6Ð6rX   rM  zmust be at least 1-Dr*  rg   )r   rr   r   rð   rñ   r#   r\  rò   r.   Úallr   r-   rf  r	   r    )rE  rg   rT   rS   rà  rß  rõ   s          rV   Útest_nonnumeric_dtypesræ  þ  sà  € å	�‰Œ•W˜Q‘Z”Z¥¨¡¤Ð,€AÝ	�‰Œ•W˜Q‘Z”Z¥¨¡¤Ð,€AÝ	�‰Œ•W˜Q‘Z”Z¥¨¡¤Ð,€AÝ
Œ�‰Œ€AØŒ7Œ<˜3ÒÐÐÐÝ•b”h˜q¥%Ñ(Ô(­"¬(°1µeÑ*<Ô*<¸a¿hºhÅu¹o¼oÑNÔN€GØ�w€€Ý˜!˜a™%˜ !Ñ$Ô$ˆˆå˜˜A˜qÑ!Ô!ˆÝÐ6Ð6¨vÐ6Ñ6Ô6Ñ6Ô6Ð6Ð6Ð6Ý�F—M’M¥%Ñ(Ô(¨'¯.ª.½Ñ*?Ô*?Ñ@Ô@Ð@à�w€€Ø�Bˆxˆˆå�r˜2‘”Ðˆå	Œ•zÐ)?Ð	@Ñ	@Ô	@ð ð ØˆˆdÐ�bÐÐÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   Ç	GÇG"Ç%G"ÚfdFDc                   ó8   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	dS )	ÚTestSOSFiltc                 óÊ  — t          j        ddd¦  «                             |¦  «        }t          j        ddg¦  «                             |¦  «        }t          j        ddg¦  «                             |¦  «        }t          j        g d¢¦  «                             |¦  «        }t	          ||¦  «        }t          t          t	          ||¦  «        |¦  «        |¦  «         t          j        ddg¦  «                             |¦  «        }t          j        ddg¦  «                             |¦  «        }t          j        g d	¢¦  «                             |¦  «        }t          t          t	          ||¦  «        |¦  «        |¦  «         g d
¢}g d¢}t          j        d¦  «        }t          j        ||f¦  «        }d|_	        t          ||¦  «        }t          |g d¢¦  «         d S )Nr   rE   rF   rH   r�   rô  rR  rS  rY  )rH   rH   r   r±  r�   )rH   rF   )rH   rI   rI   rI   rI   rI   rI   rI   )rr   rÑ  rò   r   r-   r   r.   rR  r4  rz  r   )rR   rû  rg   rT   rS   rV  ro  rh   s           rV   Ú
test_rank1zTestSOSFilt.test_rank1  s§  € ÝŒK˜˜1˜aÑ Ô ×'Ò'¨Ñ+Ô+ˆÝŒH�a˜�WÑÔ×$Ò$ RÑ(Ô(ˆÝŒH�c˜4�[Ñ!Ô!×(Ò(¨Ñ,Ô,ˆõ ŒhÐ+Ð+Ð+Ñ,Ô,×3Ò3°BÑ7Ô7ˆÝ�Q˜‰lŒlˆÝ!¥'­&°°A©,¬,¸Ñ":Ô":¸CÑ@Ô@Ð@õ ŒH�a˜�VÑÔ×#Ò# BÑ'Ô'ˆåŒH�a˜�VÑÔ×#Ò# BÑ'Ô'ˆÝŒhÐ*Ð*Ð*Ñ+Ô+×2Ò2°2Ñ6Ô6ˆÝ!¥'­&°°A©,¬,¸Ñ":Ô":¸CÑ@Ô@Ð@àˆIˆIˆØˆIˆIˆÝŒG�A‰JŒJˆÝŒn˜a ˜VÑ$Ô$ˆØˆŒ	Ý�C˜‰OŒOˆÝ˜Ð3Ð3Ð3Ñ4Ô4Ð4Ð4Ð4rX   c                 óÀ  — d}t          j        dt          j        |¦  «        dz
  t          j        |¦  «        ¦  «                             |¦  «        }|                     |¦  «        }t          j        ddg¦  «                             |¦  «        }t          j        ddg¦  «                             |¦  «        }t          j        g d¢g d¢g d¢g d¢g|¬¦  «        }t          j        g d	¢g d
¢g d¢g d¢g|¬¦  «        }t          t          ||¦  «        |d¬¦  «        }t          ||¦  «         t          t          ||¦  «        |d¬¦  «        }t          ||¦  «         d S )Nri  r   rH   r�   rô  rj  rk  r  ro  rp  rq  rr  ró  )	rr   rÑ  r@  rs   rò   r   r.   r-   r   )	rR   rû  rz  rg   rT   rS   rl  rs  rh   s	            rV   Ú
test_rank2zTestSOSFilt.test_rank23  s[  € ØˆÝŒK˜�2œ7 5™>œ>¨AÑ-­r¬w°u©~¬~Ñ>Ô>×FÒFÀuÑMÔMˆØ�HŠH�R‰LŒLˆåŒH�a˜�WÑÔ×$Ò$ RÑ(Ô(ˆÝŒH�c˜3�ZÑ Ô ×'Ò'¨Ñ+Ô+ˆå”(˜I˜I˜I y y y°)°)°)¸Y¸Y¸YÐGØ!#ð%ñ %ô %ˆõ ”(˜I˜I˜I z z z°=°=°=Ø)˜M˜Mð+Ø24ð6ñ 6ô 6ˆõ •F˜1˜a‘L”L !¨!Ð,Ñ,Ô,ˆÝ! '¨1Ñ-Ô-Ð-å•F˜1˜a‘L”L !¨!Ð,Ñ,Ô,ˆÝ! '¨1Ñ-Ô-Ð-Ð-Ð-rX   c                 ó\  — d}t          j        dt          j        |¦  «        dz
  t          j        |¦  «        ¦  «                             |¦  «        }t          j        ddg¦  «                             |¦  «        }t          j        ddg¦  «                             |¦  «        }t          t          ||¦  «        |¦  «        }t          |j	        d         ¦  «        D ]N}t          |j	        d         ¦  «        D ]1}t          |||f         t          |||||f         ¦  «        ¦  «         Œ2ŒOd S )Nr�  r   rH   r�   rô  )rr   rÑ  r@  rs   r   rò   r.   r-   rt   rz  r   r#   )	rR   rû  rz  rg   rT   rS   rh   ru   Újs	            rV   rV  zTestSOSFilt.test_rank3G  s  € ØˆÝŒK˜�2œ7 5™>œ>¨AÑ-­r¬w°u©~¬~Ñ>Ô>×FÒFÀuÑMÔMˆåŒH�a˜�WÑÔ×$Ò$ RÑ(Ô(ˆÝŒH�c˜3�ZÑ Ô ×'Ò'¨Ñ+Ô+ˆõ •F˜1˜a‘L”L !Ñ$Ô$ˆÝ�q”w˜q”zÑ"Ô"ð 	Kð 	KˆAÝ˜1œ7 1œ:Ñ&Ô&ð Kð K�Ý)¨!¨A¨q¨D¬'µ7¸1¸aÀÀ1ÀaÀ4ÄÑ3IÔ3IÑJÔJÐJÐJðKð	Kð 	KrX   c                 óÐ  — t          j        ddd¦  «        \  }}t          j        ddd¦  «        \  }}t          j        ddd¦  «        \  }}t          j        t          j        ||¦  «        |¦  «        }t          j        t          j        ||¦  «        |¦  «        }	t          j        t          j        ||f         t          j        ||f         t          j        ||f         f¦  «        }
t          j                             d¦  «                             |¦  «        }t          ||	|d d…         t          j
        d¦  «        ¬¦  «        \  }}t          j        |t          ||	|dd …         |¬¦  «        d	         f         }t          |t          ||	|¦  «        ¦  «         t          |
|d d…         t          j
        d
¦  «        ¬¦  «        \  }}t          j        |t          |
|dd …         |¬¦  «        d	         f         }t          ||¦  «         t          |
¦  «        }t          j        d|¦  «        }t          |
||¬¦  «        \  }}t          |t          j        d¦  «        ¦  «         t          ||¦  «         d|j        z   |_        t!          t"          t          |
||¬¦  «         |                     ¦   «         }|j        d	         dd|j        d         f|_        t!          t"          t          |
||d d …d d …d d …g d¢f         ¬¦  «         t          |
||¬¦  «        \  }}t          |d         t          j        d¦  «        ¦  «         t          |d d …d	d	d d …f         |¦  «         d S )NrI   r�  ÚlowrÆ  rü   rû   rF   r_  r   rÀ   r�   r”  rH   r�   )r   rH   rH   r’  )r   r&   rr   r   r   Úr_rì   rà  rò   r#   r~  rá  r.   r0   rR  rz  rŸ   r    rä  )rR   rû  Úb1r4  Úb2r5  Úb3r6  rT   rS   ro  rg   Úy_truer`  r™  rh   rd  Úzi_nds                     rV   Útest_initial_conditionsz#TestSOSFilt.test_initial_conditionsT  s   € Ý”˜q $¨Ñ.Ô.‰ˆˆBÝ”˜q $¨Ñ.Ô.‰ˆˆBÝ”˜q $¨Ñ.Ô.‰ˆˆBÝŒK�œ B¨Ñ+Ô+¨RÑ0Ô0ˆÝŒK�œ B¨Ñ+Ô+¨RÑ0Ô0ˆÝŒh�œ˜b "˜fœ¥r¤u¨R°¨V¤}µb´e¸BÀ¸F´mÐDÑEÔEˆåŒI�NŠN˜2ÑÔ×%Ò% bÑ)Ô)ˆõ ˜Q  1 S b S¤6­b¬h°q©k¬kÐ:Ñ:Ô:‰
ˆ�Ý”�v�w q¨!¨Q¨r¨s¨s¬V¸Ð;Ñ;Ô;¸AÔ>Ð>Ô?ˆÝ˜V¥W¨Q°°1Ñ%5Ô%5Ñ6Ô6Ð6å˜C  3 B 3¤­B¬H°VÑ,<Ô,<Ð=Ñ=Ô=‰	ˆˆrÝ”�e�W S¨!¨B¨C¨C¬&°RÐ8Ñ8Ô8¸Ô;Ð;Ô<ˆÝ˜V UÑ+Ô+Ð+õ ˜‰_Œ_ˆÝŒG�A�r‰NŒNˆÝ˜˜Q 2Ð&Ñ&Ô&‰ˆˆ2å˜Q¥¤¨¡
¤
Ñ+Ô+Ð+Ý˜R Ñ$Ô$Ð$ð ˜1œ7Ñ"ˆŒÝ•j¥'¨3°°bÐ9Ñ9Ô9Ð9Ø—’‘	”	ˆØ”x ”{ A q¨"¬(°2¬,Ð7ˆŒÝ•j¥'¨3°Ø˜q˜q˜q ! ! ! Q Q Q¨	¨	¨	Ð1Ô2ð	4ñ 	4ô 	4ð 	4å˜˜Q 5Ð)Ñ)Ô)‰ˆˆ2Ý˜Q˜tœW¥b¤g¨a¡j¤jÑ1Ô1Ð1Ý˜R    1 a¨¨¨ 
œ^¨RÑ0Ô0Ð0Ð0Ð0rX   c                 ó   — t           j                             d¦  «                             ddd¬¦  «        }|                     |¦  «        }t          j        ddd¬	¦  «        }t          |Ž }|j        d         }d
}t          |j        ¦  «        }d||<   |g|z   }t          j
        |¦  «        }t          ||||¬¦  «        \  }	}
t          ||d d …d d…d d …f         ||¬¦  «        \  }}t          ||d d …dd …d d …f         ||¬¦  «        \  }}t          j        ||f|¬¦  «        }t          ||	dd¬¦  «         t          ||
dd¬¦  «         t          |¦  «        }|d
dd
g|_        ||d d …dd
…d d …f         z  }t          ||||¬¦  «        d         }t          |Ž \  }}t!          ||¦  «        }d
|j        d
g|_        ||d d …dd
…d d …f         z  }t%          |||||¬¦  «        d         }t          ||dd¬¦  «         d S )NéŸ   r   rE   )rI   r[  rC   rÙ   rF   r—  rq  r¤  rH   rI   ry  ró  rÞ  r  ræ   )rr   rì   r  r  rò   r   r&   r(   rz  r  r~  r.   r4  rá  r0   r'   r$   rÚ   r#   )rR   rû  rg   rq  ro  Ú	nsectionsrÅ  ÚshpÚz0r  rd  r†  rŽ  r1  r�  rh   r`  rT   rS   Úy_tfs                       rV   Ú test_initial_conditions_3d_axis1z,TestSOSFilt.test_initial_conditions_3d_axis1z  sD  € õ ŒI×!Ò! #Ñ&Ô&×.Ò.¨q°!¸*Ð.ÑEÔEˆØ�HŠH�R‰LŒLˆõ Œm˜A˜t¨EÐ2Ñ2Ô2ˆÝ�sˆmˆØ”I˜a”Lˆ	ð ˆõ �1”7‰mŒmˆØˆˆD‰	Øˆk˜CÑˆÝŒX�c‰]Œ]ˆõ ˜˜a d¨rÐ2Ñ2Ô2‰ˆˆBõ ˜˜a    2 A 2 q q q œk°¸Ð<Ñ<Ô<‰ˆˆBÝ˜˜a    1 2 2 q q q œk°¸Ð<Ñ<Ô<‰ˆˆBõ ŒN˜B ˜8¨$Ð/Ñ/Ô/ˆÝ˜Q ¨°UÐ;Ñ;Ô;Ð;Ý˜R ¨%°eÐ<Ñ<Ô<Ð<õ ˜‰_Œ_ˆØ˜q ! QÐ'ˆŒØ�!�A�A�A�q˜�s˜A˜A˜A�I”,ÑˆÝ�C˜ ¨"Ð-Ñ-Ô-¨aÔ0ˆå�sˆ|‰ˆˆ1Ý˜˜1ÑÔˆØ�r”w �?ˆŒØ�!�A�A�A�q˜�s˜A˜A˜A�I”,ÑˆÝ�q˜!˜Q T¨bÐ1Ñ1Ô1°!Ô4ˆÝ˜Q ¨5°uÐ=Ñ=Ô=Ð=Ð=Ð=rX   c                 ó¬  — t          j        d|¦  «        }t          j        d¦  «        }t          j        d¦  «        }t          j        t
          d¬¦  «        5  t          |||d¬¦  «         d d d ¦  «         n# 1 swxY w Y   d|d d …d	f<   t          j        t
          d
¬¦  «        5  t          |||d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N)rC   r[  rC   )rD   rF   )rD   rC   rC   rI   zshould be all onesr*  rH   )r`  rÅ  rM  rC   zInvalid zi shape)rr   rJ  r~  rf  r	   r    r.   )rR   rû  rg   ro  r`  s        rV   Útest_bad_zi_shapezTestSOSFilt.test_bad_zi_shape¨  sW  € õ ŒH�Z Ñ$Ô$ˆÝŒh�vÑÔˆÝŒX�lÑ#Ô#ˆÝŒ]�:Ð-AÐBÑBÔBð 	+ð 	+Ý�C˜˜r¨Ð*Ñ*Ô*Ð*ð	+ð 	+ð 	+ñ 	+ô 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+øøøð 	+ð 	+ð 	+ð 	+àˆˆAˆAˆAˆqˆD‰	ÝŒ]�:Ð-?Ð@Ñ@Ô@ð 	+ð 	+Ý�C˜˜r¨Ð*Ñ*Ô*Ð*ð	+ð 	+ð 	+ñ 	+ô 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+øøøð 	+ð 	+ð 	+ð 	+ð 	+ð 	+s$   ÁA9Á9A=Â A=Â(C	Ã	CÃCc                 ó0  — t          j        ddd¬¦  «        }t          |¦  «        }t          |t	          j        d|¦  «        |¬¦  «        \  }}t          ||d¬¦  «         t	          j        |d d …d d	…f                              d
¬¦  «        |d d …d	d …f                              d
¬¦  «        z  ¦  «        }t          ||d¬¦  «         t          |t	          j        d|¦  «        | 	                    ¦   «         ¬¦  «        \  }}t          ||d¬¦  «         d S )NrF   rô  ro  r¤  r!  r_  r  rß  rC   r�   ró  )
r   r&   r0   r.   rr   rR  rá  r@  r�  r  )rR   rû  ro  r`  rh   rd  Ússr
  s           rV   Útest_sosfilt_zizTestSOSFilt.test_sosfilt_zi´  s  € ÝŒm˜A˜s¨5Ð1Ñ1Ô1ˆÝ˜‰_Œ_ˆå˜�RœW R¨™_œ_°Ð4Ñ4Ô4‰ˆˆ2Ý˜R ¨%Ð0Ñ0Ô0Ð0õ ŒW�S˜˜˜˜B˜Q˜B˜”Z—^’^¨�^Ñ,Ô,¨s°1°1°1°a°b°b°5¬z¯~ª~À2¨~Ñ/FÔ/FÑFÑGÔGˆÝ˜Q ¨Ð/Ñ/Ô/Ð/õ ˜�RœW R¨™_œ_°·²±´Ð=Ñ=Ô=‰ˆˆ2Ý˜R ¨%Ð0Ñ0Ô0Ð0Ð0Ð0rX   N)
r£   r¤   r¥   rë  rí  rV  rø  rÿ  r  r  r¦   rX   rV   ré  ré    s‚   € € € € € ð5ð 5ð 5ð2.ð .ð .ð(Kð Kð Kð$1ð $1ð $1ðL,>ð ,>ð ,>ð\
+ð 
+ð 
+ð1ð 1ð 1ð 1ð 1rX   ré  c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )ÚTestDeconvolvec                 ón   — g d¢}ddg}g d¢}t          j        ||¦  «        \  }}t          ||¦  «         d S )N)r   rH   r   r   rH   rH   r   r   rI   rH   )	r   rI   rH   r   rI   rC   rH   r   r   )r   Ú
deconvolver   )rR   ÚoriginalÚimpulse_responseÚrecordedÚ	recoveredÚ	remainders         rV   rW   zTestDeconvolve.test_basicÆ  sP   € à+Ð+Ð+ˆØ˜q˜6ÐØ.Ð.Ð.ˆÝ%Ô0°Ð;KÑLÔLÑˆ	�9Ý˜	 8Ñ,Ô,Ð,Ð,Ð,rX   c                 ó¶   — ddgddgg}ddg}t          j        t          d¬¦  «        5  t          j        ||¦  «        \  }}d d d ¦  «         d S # 1 swxY w Y   d S )Nr   zsignal must be 1-D.r*  ©rf  r	   r    r   r  ©rR   r  r
  Úquotientr  s        rV   Útest_n_dimensional_signalz(TestDeconvolve.test_n_dimensional_signalÎ  sÄ   € Ø˜�F˜Q ˜FÐ#ˆØ˜q˜6ÐÝŒ]�:Ð-BÐCÑCÔCð 	Pð 	PÝ"(Ô"3°HÐ>NÑ"OÔ"OÑˆH�ið	Pð 	Pð 	Pñ 	Pô 	Pð 	Pð 	Pð 	Pð 	Pð 	Pð 	Pð 	Pøøøð 	Pð 	Pð 	Pð 	Pð 	Pð 	Pó   ¨AÁAÁAc                 ó¶   — ddg}ddgddgg}t          j        t          d¬¦  «        5  t          j        ||¦  «        \  }}d d d ¦  «         d S # 1 swxY w Y   d S )Nr   zdivisor must be 1-D.r*  r  r  s        rV   Útest_n_dimensional_divisorz)TestDeconvolve.test_n_dimensional_divisorÔ  sÄ   € Ø�q�6ˆØ ˜F Q¨ FÐ+ÐÝŒ]�:Ð-CÐDÑDÔDð 	Pð 	PÝ"(Ô"3°HÐ>NÑ"OÔ"OÑˆH�ið	Pð 	Pð 	Pñ 	Pô 	Pð 	Pð 	Pð 	Pð 	Pð 	Pð 	Pð 	Pøøøð 	Pð 	Pð 	Pð 	Pð 	Pð 	Pr  N)r£   r¤   r¥   rW   r  r  r¦   rX   rV   r  r  Ä  sI   € € € € € ð-ð -ð -ðPð Pð PðPð Pð Pð Pð PrX   r  c                   ó"  — e Zd Zd„ Zd„ Zej                             dddg¦  «        ej                             dg d¢¦  «        d„ ¦   «         ¦   «         Zd	„ Z	ej                             d
 e
j        ddg¦  «        ddgg¦  «        d„ ¦   «         ZdS )ÚTestDetrendc                 ó„   — t          t          g d¢¦  «        ¦  «        }t          g d¢¦  «        }t          ||¦  «         d S )NrG   )r   r   r   )r3   r   r   )rR   Ú	detrendedÚdetrended_exacts      rV   rW   zTestDetrend.test_basicÝ  sB   € Ý�E ) ) )Ñ,Ô,Ñ-Ô-ˆ	Ý 	 	 	Ñ*Ô*ˆÝ! )¨_Ñ=Ô=Ð=Ð=Ð=rX   c                 óŒ   — t          g d¢¦  «        }t          |d¬¦  «        }t          |d¬¦  «        }t          ||¦  «         d S )N)rH   ç333333ó?r{  gš™™™™™ù?g333333@F)Úoverwrite_dataT)r   r3   r   )rR   rg   Ú
copy_arrayÚinplaces       rV   Ú	test_copyzTestDetrend.test_copyâ  sP   € ÝÐ)Ð)Ð)Ñ*Ô*ˆÝ˜Q¨uÐ5Ñ5Ô5ˆ
Ý˜!¨DÐ1Ñ1Ô1ˆÝ! *¨gÑ6Ô6Ð6Ð6Ð6rX   rñ   Úlinearr  rÅ  r¼  c                 ó    — t          j        d¦  «                             ddd¦  «        }t          |||¬¦  «        }|j        |j        k    sJ ‚d S )NéÒ   rE   rF   r   )rL  rÅ  )rr   r   rs   r3   rz  )rR   rÅ  rñ   rž  r  s        rV   r‡  zTestDetrend.test_axisè  sT   € õ Œy˜ÑÔ×'Ò'¨¨1¨aÑ0Ô0ˆÝ˜D t°$Ð7Ñ7Ô7ˆ	ØŒ $¤*Ò,Ð,Ð,Ð,Ð,Ð,rX   c                 óf  — g d¢g d¢z   }t          |dd¬¦  «        }t          |dd¬¦  «         t          j        |¦  «        d d d …d f         }t          |ddd	¬
¦  «        }t          |dd¬¦  «         t	          t
          ¦  «        5  t          |dd¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr¼  )rE   r   rv  r^  r!  rC   )rL  Úbpr   r‰  rð  rH   )rL  r%  rÅ  )r3   r   rr   rI  rŸ   r    )rR   rž  r  s      rV   Útest_bpzTestDetrend.test_bpï  s  € Øˆyˆy˜?˜?˜?Ñ*ˆÝ˜D x°AÐ6Ñ6Ô6ˆ	Ý˜	 1¨5Ð1Ñ1Ô1Ð1õ Œz˜$ÑÔ  a a a¨ Ô.ˆå˜D x°A¸AÐ>Ñ>Ô>ˆ	Ý˜	 1¨5Ð1Ñ1Ô1Ð1õ �:Ñ&Ô&ð 	/ð 	/Ý�D˜x¨AÐ.Ñ.Ô.Ð.ð	/ð 	/ð 	/ñ 	/ô 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/øøøð 	/ð 	/ð 	/ð 	/ð 	/ð 	/s   ÂB&Â&B*Â-B*r%  r   rI   c                 óà   — t           j                             d¦  «        }|                     d¦  «        }t	          ||¬¦  «        }t          j        g d¢¦  «        }t          ||d¬¦  «         d S )Ni90  rJ   )r%  )
g¢3   À¼g¢3   °¼gÿ_ìòêr¼¿g�b	6±Å¿gq üç­]½?g=~¹›D°?g@âzI Ö?gØñòƒÙÕ¢¿gˆ»Ý?Ô…”¿g1ï
ÛàÈ¿r‰  rð  )rr   rì   r  rà  r3   r   r   )rR   r%  rü  rg   rQ  Úres_scipy_191s         rV   Útest_detrend_array_bpz!TestDetrend.test_detrend_array_bpþ  s~   € õ Œi×#Ò# EÑ*Ô*ˆØ�HŠH�R‰LŒLˆõ �a˜BÐÑÔˆÝœð "Oð "Oð "Oñ Pô Pˆõ 	˜˜]°Ð7Ñ7Ô7Ð7Ð7Ð7rX   N)r£   r¤   r¥   rW   r   rf  rg  rh  r‡  r&  rr   r   r)  r¦   rX   rV   r  r  Û  sÜ   € € € € € ð>ð >ð >ð
7ð 7ð 7ð „[×Ò˜V h°
Ð%;Ñ<Ô<Ø„[×Ò˜V Y Y YÑ/Ô/ð-ð -ñ 0Ô/ñ =Ô<ð-ð
/ð /ð /ð „[×Ò˜T H B¤H¨a°¨VÑ$4Ô$4°q¸!°fÐ#=Ñ>Ô>ð8ð 8ñ ?Ô>ð8ð 8ð 8rX   r  c                   ó8   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	dS )	ÚTestUniqueRootsc                 ó´   — g d¢}t          |¦  «        \  }}t          ||d¬¦  «         t          |t          j        t          |¦  «        ¦  «        ¦  «         d S )N)rL  rR  rö  r  rò  r[  r¬  ©r4   r   r
   rr   rR  r-  ©rR   rÏ  rX  rY  s       rV   Útest_real_no_repeatz#TestUniqueRoots.test_real_no_repeat  sV   € Ø(Ð(Ð(ˆÝ+¨A™œÑˆ�Ý˜F A¨rÐ2Ñ2Ô2Ð2Ý�\¥2¤7­3¨q©6¬6¡?¤?Ñ3Ô3Ð3Ð3Ð3rX   c                 óp  — g d¢}t          |dd¬¦  «        \  }}t          |g d¢d¬¦  «         t          |g d¢¦  «         t          |dd	¬¦  «        \  }}t          |g d
¢d¬¦  «         t          |g d¢¦  «         t          |dd¬¦  «        \  }}t          |g d¢d¬¦  «         t          |g d¢¦  «         d S )N)rL  çffffffî¿ç{®Gázì¿çš™™™™™é¿rô  rM  çÍÌÌÌÌÌð?rü  rV  ©ÚtolrŠ  )rL  r2  rô  rM  r[  r¬  ©rI   rI   rH   rI   rû  )r1  r3  rô  r4  rˆ  )g333333ï¿g
×£p=
ë¿rô  gffffffð?©r4   r   r
   r.  s       rV   Útest_real_repeatz TestUniqueRoots.test_real_repeat  sî   € Ø6Ð6Ð6ˆå+¨A°4¸uÐEÑEÔEÑˆ�Ý˜FÐ$;Ð$;Ð$;ÀRÐHÑHÔHÐHÝ�\ < < <Ñ0Ô0Ð0å+¨A°4¸uÐEÑEÔEÑˆ�Ý˜FÐ$<Ð$<Ð$<ÀbÐIÑIÔIÐIÝ�\ < < <Ñ0Ô0Ð0å+¨A°4¸uÐEÑEÔEÑˆ�Ý˜FÐ$@Ð$@Ð$@È"ÐMÑMÔMÐMÝ�\ < < <Ñ0Ô0Ð0Ð0Ð0rX   c                 ó´   — g d¢}t          |¦  «        \  }}t          ||d¬¦  «         t          |t          j        t          |¦  «        ¦  «        ¦  «         d S )N)rL  rŽ   ù      à?      à?rž  rn  r[  r¬  r-  r.  s       rV   Útest_complex_no_repeatz&TestUniqueRoots.test_complex_no_repeat#  sV   € Ø=Ð=Ð=ˆÝ+¨A™œÑˆ�Ý˜F A¨rÐ2Ñ2Ô2Ð2Ý�\¥2¤7­3¨q©6¬6¡?¤?Ñ3Ô3Ð3Ð3Ð3rX   c                 óp  — g d¢}t          |dd¬¦  «        \  }}t          |g d¢d¬¦  «         t          |g d¢¦  «         t          |dd	¬¦  «        \  }}t          |g d
¢d¬¦  «         t          |g d¢¦  «         t          |dd¬¦  «        \  }}t          |g d¢d¬¦  «         t          |g d¢¦  «         d S )N)rL  ù      ð¿š™™™™™©?ùffffffî¿333333Ã?ùÍÌÌÌÌÌì¿333333Ã?rõ  r;  ùÍÌÌÌÌÌÜ?š™™™™™á?rü  rV  r5  )rL  r?  rõ  rA  r[  r¬  r7  rû  )r>  r@  rõ  r;  rˆ  )y      ð¿š™™™™™™?yš™™™™™í¿333333Ã?rõ  yffffffÞ?ÍÌÌÌÌÌà?r8  r.  s       rV   Útest_complex_repeatz#TestUniqueRoots.test_complex_repeat)  s  € ð'ð 'ð 'ˆõ  ,¨A°4¸uÐEÑEÔEÑˆ�Ý˜FÐ$LÐ$LÐ$LØ$&ð	(ñ 	(ô 	(ð 	(å�\ < < <Ñ0Ô0Ð0å+¨A°4¸uÐEÑEÔEÑˆ�Ý˜FØJÐJÐJØ$&ð	(ñ 	(ô 	(ð 	(õ 	�\ < < <Ñ0Ô0Ð0å+¨A°4¸uÐEÑEÔEÑˆ�ÝØÐHÐHÐHØð	ñ 	ô 	ð 	õ 	�\ < < <Ñ0Ô0Ð0Ð0Ð0rX   c                 ó\  — t          j        t          j        t          j        d¦  «        t          j        d¦  «        ¦  «        ¦  «        }g d¢}t	          |¦  «        \  }}t          j        |¦  «        }t          t          j        |¦  «        |d¬¦  «         t          |g d¢¦  «         d S )NrE   )y¨ô—›wãé¿^Zu#Ïâ¿y§ô—›wãé¿_Zu#Ïâ?yNé/7ïÆÓ? UDoî¿yPé/7ïÆÓ?ÿTDoî?r   r¬  )rI   rI   rI   rI   )rr   r&  r   rR  r4   Úsortr   r
   )rR   rÏ  Ú
true_rootsrX  rY  s        rV   Útest_gh_4915zTestUniqueRoots.test_gh_4915>  sŒ   € ÝŒH•R”[¥¤¨¡¤­R¬W°Q©Z¬ZÑ8Ô8Ñ9Ô9ˆØKÐKÐKˆ
å+¨A™œÑˆ�Ý”˜‘”ˆå�BœG F™OœO¨ZÀÐCÑCÔCÐCÝ�\ < < <Ñ0Ô0Ð0Ð0Ð0rX   c                 óò   — t          g d¢¦  «        \  }}t          |ddgd¬¦  «         t          |ddg¦  «         t          g d¢d	¬
¦  «        \  }}t          |ddgd¬¦  «         t          |ddg¦  «         d S )N)rM  rŽ   rM  rM  rŽ   r[  r¬  rI   rH   )rH   g_p‰   ð?ù•Ö&è.>      ð?rü  )r6  rH  r8  rW  s      rV   Útest_complex_roots_extraz(TestUniqueRoots.test_complex_roots_extraH  sš   € Ý+Ð,<Ð,<Ð,<Ñ=Ô=Ñˆ�Ý˜F S¨$ K¸Ð<Ñ<Ô<Ð<Ý�\ A q 6Ñ*Ô*Ð*å+Ð,DÐ,DÐ,DÈ#ÐNÑNÔNÑˆ�Ý˜F S¨+Ð$6ÀÐCÑCÔCÐCÝ�\ A q 6Ñ*Ô*Ð*Ð*Ð*rX   c                 ó  — t           j                             d¦  «        dt           j                             d¦  «        z  z   }t          |d¦  «        \  }}t	          |t          j        |¦  «        gd¬¦  «         t          |dg¦  «         d S )NrÂ   rŽ   rI   r[  r¬  )rr   rì   rà  r4   r   rV  r
   r.  s       rV   Útest_single_unique_rootz'TestUniqueRoots.test_single_unique_rootQ  sx   € ÝŒI�NŠN˜3ÑÔ "¥r¤y§~¢~°cÑ':Ô':Ñ":Ñ:ˆÝ+¨A¨qÑ1Ô1Ñˆ�Ý˜F¥R¤V¨A¡Y¤Y K¸Ð<Ñ<Ô<Ð<Ý�\ C 5Ñ)Ô)Ð)Ð)Ð)rX   N)
r£   r¤   r¥   r/  r9  r<  rB  rF  rI  rK  r¦   rX   rV   r+  r+    s}   € € € € € ð4ð 4ð 4ð1ð 1ð 1ð4ð 4ð 4ð1ð 1ð 1ð*1ð 1ð 1ð+ð +ð +ð*ð *ð *ð *ð *rX   r+  r$  )r  r   )‘rõ  Úconcurrent.futuresr   r   r­  r   Ú	itertoolsr   Úmathr   rf  r	   rŸ   Únumpy.testingr
   r   r   r   r   r   r   r   Únumpyr   r   rr   Ú	scipy.fftr   rZ  r   Úscipy.optimizer   r   Úscipyr   Úscipy.signalr   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   Úscipy.signal.windowsr7   Úscipy.signal._signaltoolsr8   r9   r:   Úscipy.signal._upfirdnr;   Ú
scipy._libr<   Úscipy._lib._utilr=   r>   r?   rA   r¨   r	  rj  r‰  r  r  r  r   r"  rC  rV  rª  r'  r·  r)  r9  r>  rÚ  rÞ  rà  râ  rå  rè  rë  rð  r÷  rú  rg  rh  r¢  r£  r¤  r¥  r¦  rÎ   rÏ   rS  rý  r(  r<  Úcsingler@  rT  r>  r[  rc  rk  r•  r²  r¾  Ú	fail_slowrÊ  rÓ  rÕ  r0  rC  rH  r­  rá  ræ  ré  r  r  r+  r¦   rX   rV   ú<module>r\     s_  ðØ 
€
€
€
à ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à €€€Ø *Ð *Ð *Ð *Ð *Ð *ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð
  Ð Ð Ð Ð Ð Ð Ð Ø Ð Ð Ð à Ð Ð Ð Ð Ð Ø %Ð %Ð %Ð %Ð %Ð %Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð &Ð %Ð %Ð %Ð %Ð %ð4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4à 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø !Ð !Ð !Ð !Ð !Ð !Ø >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >ðeOð eOð eOð eOð eOñ eOô eOð eOðPm4ð m4ð m4ð m4ð m4�=ñ m4ô m4ð m4ð`Lð Lð Lð Lð Lñ Lô Lð LðD?"ð ?"ð ?"ð ?"ð ?"�_ñ ?"ô ?"ð ?"ðDiLð iLð iLð iLð iLñ iLô iLð iLðV3ð 3ð 3ðð ð ð

Cð 
Cð 
Cðð ð ð
E!ð E!ð E!ð E!ð E!ñ E!ô E!ð E!ðPM"ð M"ð M"ð M"ð M"ñ M"ô M"ð M"ð`-ð -ð -ð -ð -ñ -ô -ð -ðDLð Lð Lð Lð Lñ Lô Lð Lð CÐBÐB€Ø �>Ñ !€ðK6ð K6ð K6ð K6ð K6ñ K6ô K6ð K6ð\*ð *ð *ð *ð *ñ *ô *ð *ð>&ð &ð &ð &ð &ñ &ô &ð &ðM!ð M!ð M!ð M!ð M!ñ M!ô M!ð M!ð`ð ð ð ð Ð/ñ ô ð ðð ð ð ð Ð/ñ ô ð ðð ð ð ð Ð$5ñ ô ð ðð ð ð ð Ð 1ñ ô ð ðð ð ð ð Ð!2ñ ô ð ðð ð ð ð Ð&7ñ ô ð ðð ð ð ð Ð/ñ ô ð ðð ð ð ð Ð.ñ ô ð ð
Fð Fð FðKð Kð Kð
 „×Ò˜ ¤¨"¬'°2´9¸b¼hØ (¨'°2´<ÀÄØ "¤
¨B¬J¸¼Ø 'ð )ñ *ô *ðw"ð w"ð w"ð w"ð w"ñ w"ô w"ñ	*ô *ðw"ðt*=ð *=ð *=ð *=ð *=ñ *=ô *=ð *=ðZ „×Ò˜Ð!:Ð!:Ð!:Ñ;Ô;Ø„×Ò˜ D¨% =Ñ1Ô1Ø„×Ò˜Ð'KÐ'KÐ'KÑLÔLð0ð 0ñ MÔLñ 2Ô1ñ <Ô;ð0ð2 „×Ò˜ ¤
¨B¬J¸¼ÐGÑHÔHð\=ð \=ð \=ð \=ð \=ñ \=ô \=ñ IÔHð\=ð~$=ð $=ð $=ð $=ð $=ñ $=ô $=ð $=ðNDð Dð Dð Dð Dñ Dô Dð Dð2]%ð ]%ð ]%ð ]%ð ]%ñ ]%ô ]%ð ]%ð@Nð Nð Nð Nð N�lñ Nô Nð Nð)ð )ð )ðX4ð 4ð 4ð 4ð@ „×Ò�qÑÔðDð Dñ ÔðDð> „×Ò�qÑÔð@ð @ñ Ôð@ð>q"ð q"ð q"ð q"ð q"ñ q"ô q"ð q"ðhYEð YEð YEð YEð YEñ YEô YEð YEðxFð Fð Fð Fð Fñ Fô Fð Fð.k(ð k(ð k(ð k(ð k(ñ k(ô k(ð k(ð\RBð RBð RBð RBð RBñ RBô RBð RBðj1ð 1ð 1ð 1ð „×Ò˜ '¨7Ð!3Ñ4Ô4ðð ñ 5Ô4ðð. „×Ò˜˜vÑ&Ô&ðj1ð j1ð j1ð j1ð j1ñ j1ô j1ñ 'Ô&ðj1ðZPð Pð Pð Pð Pñ Pô Pð Pð./8ð /8ð /8ð /8ð /8ñ /8ô /8ð /8ðdH*ð H*ð H*ð H*ð H*ñ H*ô H*ð H*ð H*ð H*rX   