+
    LV-jÓ2  ã                   ó"  € ^ RI t^ RIHt ^ RIHt ^ RIt^ RIHt	 ^ RI
HtHtHtHtHt ^ RIH t ^ RIHtHt ^ RIHtHt ^ R	IHt ]P4                  P6                  tRR
 lt ! R R4      tRt]! ]4       ! R R4      4       t]! ]4      R 4       t R# )é    N)Úproduct)Úraises)Úarray_api_extra)Úxp_assert_closeÚarray_namespaceÚ_xp_copy_to_numpyÚis_cupyÚmake_xp_test_case)Únumpy)ÚupfirdnÚfirwin)Ú_output_lenÚ_upfirdn_modes)Ú	_pad_testc                óN  € \         P                  ! V 4      p \         P                  ! V4      p\         P                  ! \        V 4      V,          V P                  4      pWRRV1&   \         P
                  ! W4      RRV1,          R\        \        V4      \        V 4      W#4       pV# )zhNaive upfirdn processing in Python.

Note: arg order (x, h) differs to facilitate apply_along_axis use.
N)ÚnpÚasarrayÚzerosÚlenÚdtypeÚconvolver   )ÚxÚhÚupÚdownÚouts   &&&& Úp/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/scipy/signal/tests/test_upfirdn.pyÚupfirdn_naiver   7   sz   € ô
 	�
Š
�1‹€AÜ
�
Š
�1‹€AÜ
�(Š(”3�q“6˜B•; §¡Ó
(€CØ‰ˆ"ˆ�IÜ
�+Š+�aÓ
™f ˜fÕ
%Ð&L¤{´3°q³6¼3¸q»6À2Ó'LÐ
M€CØ€Jó    c                   óB   a € ] tR t^Dt o RtRR/R ltR tRR ltRtV t	R# )	ÚUpFIRDnCasezTest _UpFIRDn objectÚxpNc               óÈ   € Vf   \         pWn        W n        \        P                  ! V4      V n        W@n        \        P                  P                  ^4      V n	        WPn
        R # ©N)Ú	np_compatr   r   r   Ú
atleast_1dr   Úx_dtypeÚrandomÚRandomStateÚrngr"   )Úselfr   r   r   r'   r"   s   &&&&&$r   Ú__init__ÚUpFIRDnCase.__init__F   sF   € ØŠ:ÜˆBØŒØŒ	Ü—’˜qÓ!ˆŒØŒÜ—9‘9×(Ñ(¨Ó,ˆŒØŽr   c                ó¨  € V P                  \        P                  ! ^V P                  4      4       V P                  \        P                  ! ^
V P                  4      4       V P                  P                  ^
4      P                  V P                  4      pV P                  \        P                  \        P                  39   d*   VRV P                  P                  ^
4      ,          ,          pV P                  V4       V P                  \        P                  ! ^
4      P                  V P                  4      4       \        V P                  4      '       d   R# RpV P                  P
                  ! V!  P                  V P                  4      pV P                  \        P                  \        P                  39   d)   VRV P                  P
                  ! V!  ,          ,          p\        \        V4      4       F  pV P                  WR7       K  	  VR,          P                  p\        \        V4      4       F  pV P                  WR7       K  	  R# )é   ù              ð?N©Úaxis)é   é   é   ):NNN:NNr3   :r/   Nr4   )Úscrubr   Úonesr'   r*   ÚrandnÚastypeÚ	complex64Ú
complex128Úaranger	   r"   Úranger   ÚT)r+   r   Úsizer2   s   &   r   Ú__call__ÚUpFIRDnCase.__call__P   sz  € à�
‰
”2—7’7˜1˜dŸl™lÓ+Ô,à�
‰
”2—7’7˜2˜tŸ|™|Ó,Ô-à�H‰H�N‰N˜2Ó×%Ñ% d§l¡lÓ3ˆØ�<‰<œBŸL™L¬"¯-©-Ð8Ô8Ø��d—h‘h—n‘n RÓ(Õ(Õ(ˆAØ�
‰
�1Œà�
‰
”2—9’9˜R“=×'Ñ'¨¯©Ó5Ô6ä�4—7‘7×ÒáØˆØ�H‰H�NŠN˜DÑ!×(Ñ(¨¯©Ó6ˆØ�<‰<œBŸL™L¬"¯-©-Ð8Ô8Ø��d—h‘h—n’n dÑ+Õ+Õ+ˆAÜœ#˜d›)Ö$ˆDØ�J‰J�qˆJÖ$ñ %àˆl�O×ÑˆÜœ#˜d›)Ö$ˆDØ�J‰J�qˆJÖ$ó %r   c                óª  € V P                   p\        P                  ! \        W!V P                  V P
                  V P                  4      p\        \        V P                  4      VP                  V,          V P
                  V P                  4      pVP                  V,          V8X  g   Q h\        VP                  V P                  4      VP                  V4      V P
                  V P                  VR 7      pVP                  V,          V8X  g   Q hVP                  VP                  8X  g   Q hV P                  P                  VP                  3p\        ;QJ d    R V 4       F  '       d   K   RM	  RM! R V 4       4      '       d    VP                  VP                  8X  g   Q hEM\        P                  V9   d4   \        P                  V9   d   VP                  VP                  8X  g   Q hM½\        ;QJ d    R V 4       F  '       d   K   RM	  RM! R V 4       4      '       d   VP                  VP                  8X  g   Q hMe\        P                   V9   g   \        P                  V9   d   VP                  VP                   8X  g   Q hMVP                  VP"                  8X  g   Q hVP                  WFP                  R7      p\%        WF4       R# )r1   c              3   óF   "  € T F  q\         P                  8H  x € K  	  R # 5ir$   )r   r:   ©Ú.0Úds   & r   Ú	<genexpr>Ú$UpFIRDnCase.scrub.<locals>.<genexpr>u   s   é € Ð1©& Q”B—L‘LÖ «&ùó   ‚!FTc              3   óF   "  € T F  q\         P                  8H  x € K  	  R # 5ir$   )r   Úfloat32rD   s   & r   rG   rH   y   s   é € Ð1©& Q”b—j‘j–«&ùrI   ©r   N)r"   r   Úapply_along_axisr   r   r   r   r   r   Úshaper   r   r   Úallr:   rK   r;   Úfloat64r   )r+   r   r2   r"   ÚyrÚwant_lenÚyÚdtypess   &&&     r   r6   ÚUpFIRDnCase.scrubj   sÞ  € Ø�W‰WˆÜ× Ò ¤°Ø!%§¡¨¯©°$·)±)ó=ˆäœs 4§6¡6›{¨A¯G©G°D­M¸4¿7¹7ÀDÇIÁIÓNˆØ�x‰x˜�~ Ô)Ð)Ð)Ü�B—J‘J˜tŸv™vÓ&¨¯
©
°1«°t·w±wÀÇ	Á	Øôˆà�w‰w�t�} Ô(Ð(Ð(Ø�w‰w˜"Ÿ(™(Ô"Ð"Ð"Ø—&‘&—,‘, §¡Ð(ˆß‹3Ñ1©&Ó1�3�3Š3Ñ1©&Ó1×1Ò1Ø—7‘7˜bŸl™lÔ*Ð*Ò*Ü�\‰\˜VÔ#¬¯
©
°fÔ(<Ø—7‘7˜bŸl™lÔ*Ð*Ñ*ß‹SÑ1©&Ó1�S�SŠSÑ1©&Ó1×1Ò1Ø—7‘7˜bŸj™jÔ(Ð(Ñ(Ü�]‰]˜fÔ$¬¯©¸Ô(>Ø—7‘7˜bŸm™mÔ+Ð+Ñ+à—7‘7˜bŸj™jÔ(Ð(Ð(Ø�Z‰Z˜§'¡'ˆZÓ*ˆÜ˜Ör   )r   r   r*   r   r'   r"   )éÿÿÿÿ)
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r,   r@   r6   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r   r!   r!   D   s#   ø‡ € Ùð°4ô ò%÷4ò r   r!   c                   ó6  a € ] tR t^†t o ]! RRR7      R 4       t]P                  P                  R. RO4      ]P                  P                  R. RO4      R 4       4       t	R t
]P                  P                  R	^^^^. RO3^^^^. RO3^^^^. RO3^^^^. R O3^^^^. R!O3.4      R
 4       t]P                  P                  R. R"O4      ]P                  P                  R. R#O4      R 4       4       t]P                  P                  R]4      ]P                  P                  RR$4      ]P                  P                  R. R%O4      R 4       4       4       t]P                  P                  R]4      ]P                  P                  R]4      ]P                  P                  R]! ]! R&R&4      4      4      R 4       4       4       tR t]P                  P                  R]4      R 4       t]P                  P                  R]! ^.. R'O]. R(O4      4      R 4       tRtV tR# ))ÚTestUpfirdnTzenough to only test on numpy)Únp_onlyÚreasonc                ó¢   € \        \        \        ^.^.^^ 4       \        \        \        . ^.^^4       \        \        \        ^..^.^^4       R# )r/   N)Úassert_raisesÚ
ValueErrorr   )r+   r"   s   &&r   Útest_valid_inputÚTestUpfirdn.test_valid_input‰   sD   € ä”j¤'¨A¨3°°°Q¸Ô:Ü”j¤'¨2°¨s°A°qÔ9Ü”j¤'¨Q¨C¨5°1°#°q¸!Ö<r   Úlen_hÚlen_xc                ó@  € VP                  V4      p\        P                  ! V4      V^,          ,          P                  R4      pVP	                  V4      p\        WE^^4      p\        P                  ! WQ^,          V^,
          ^,          3RVR7      p\        Wg4       R# )r3   ç      ð?Úconstant©r"   N)r   ÚxpxÚatÚsetr7   r   Úpadr   )r+   ri   rj   r"   r   r   rS   Úwants   &&&&    r   Útest_singletonÚTestUpfirdn.test_singleton�   sy   € ð �H‰H�U‹OˆÜ�FŠF�1‹I�e˜q•jÕ!×%Ñ% bÓ)ˆØ�G‰G�E‹NˆÜ�A˜!˜QÓˆÜ�wŠw�q A�:¨°­	°aÕ'7Ð8¸*ÈÔLˆÜ˜Ö r   c                ód  € \        VP                  ^^.4      VP                  R.4      ^^4      p\        W!P                  RR.VP                  R7      4       \        VP                  ^^.4      VP                  RR.4      ^^4      p\        W!P                  . ROVP                  R7      4       R# )r/   rl   rL   ç        N)rw   rl   rl   )r   r   r   rP   )r+   r"   rS   s   && r   Útest_shift_xÚTestUpfirdn.test_shift_xš   s�   € ä�B—J‘J  1˜vÓ&¨¯
©
°B°4Ó(8¸!¸QÓ?ˆÜØ�z‰z˜3 ˜*¨B¯J©JˆzÓ7ô	
ô �B—J‘J  1˜vÓ&¨¯
©
°B¸°8Ó(<¸aÀÓCˆÜ˜Ÿ:™:¢o¸R¿Z¹Z˜:ÓHÖIr   z len_h, len_x, up, down, expectedc                ó  € VP                  V4      p\        P                  ! V4      ^ ,          P                  R4      pVP	                  W&P
                  R7      p\        WxW44      p	VP                  WVP
                  R7      p\        W•4       R# )r   rl   rL   N)	r   ro   rp   rq   r7   rP   r   r   r   )
r+   ri   rj   r   r   Úexpectedr"   r   r   rS   s
   &&&&&&&   r   Útest_length_factorsÚTestUpfirdn.test_length_factors¦   si   € ð �H‰H�U‹OˆÜ�FŠF�1‹I�a�L×Ñ˜RÓ ˆØ�G‰G�E§¡ˆGÓ,ˆÜ�A˜"Ó#ˆØ—:‘:˜h¯j©j�:Ó9ˆÜ˜Ö$r   r   zdown, want_lenc                óÆ  € \         P                  P                  ^4      pRp\        \         V4      pVP	                  V4      P                  V4      pV\         P                  \         P                  39   d    VRVP	                  V4      ,          ,          p\        WC4      pVP                  WƒR7      pVP                  \        ^RV,          RR7      4      p	VP                  \        \        V4      \        V	4      ^V4      4      p
\        W˜^VR7      pVP                  V38X  g   Q hV
P                  ^ ,          VP                  ^ ,          8X  g   Q h\        W«RRR	7       R
# )é   i'  r0   rL   rl   Úhamming)Úwindow)r   r   gH¯¼šò×z>©ÚatolÚrtolN)r   r(   r)   Úgetattrr8   r9   r:   r;   r   r   r   r   r   rN   r   )r+   r   rR   r   r"   Úrandom_stater?   Únp_dtyper   r   ÚylrS   s   &&&&&       r   Útest_vs_convolveÚTestUpfirdn.test_vs_convolve¶   s  € ô —y‘y×,Ñ,¨RÓ0ˆØˆäœ2˜uÓ%ˆØ×Ñ˜tÓ$×+Ñ+¨HÓ5ˆØœŸ™¤b§m¡mÐ4Ô4Ø��l×(Ñ(¨Ó.Õ.Õ.ˆAä˜Ó"ˆØ�J‰J�qˆJÓ&ˆà�J‰J”v˜b " t¥)°IÔ>Ó?ˆØ�Z‰ZÜÔ+¨AÓ.Ô0AÀ!Ó0DÀaÈÓNó
ˆô �A˜Q TÔ*ˆØ�w‰w˜8˜+Ô%Ð%Ð%Ø�x‰x˜�{˜aŸg™g a�jÔ(Ð(Ð(Ü˜ D¨t×4r   r'   r   zup, downc                ó,   € \        W4W!VR 7      ! 4        R# ©rn   N)r!   )r+   r'   r   r   r   r"   s   &&&&&&r   Útest_vs_naive_deltaÚTestUpfirdn.test_vs_naive_deltaÔ   s   € ô 	�B˜a¨RÕ0Ö2r   Úh_dtypezp_max, q_maxc                óN   € V P                  W4W!VR 7      pV F
  pV! 4        K  	  R# rŒ   )Ú_random_factors)r+   r'   r�   Úp_maxÚq_maxr"   ÚtestsÚtests   &&&&&&  r   Útest_vs_naiveÚTestUpfirdn.test_vs_naiveÚ   s*   € ð
 ×$Ñ$ U°7ÈÐ$ÓKˆÛˆDÙŽFó r   c               ó$  € ^p^p\         P                  P                  ^4      p. p	\        V4       FÛ  p
W8”  d   TM^pW!8”  d   TM^pVP	                  V4      V,           pVP	                  V4      V,           pVP	                  V4      ^,           p\         P
                  ! VP	                  V4      4      pVP                  V4      pV\        J d    VRVP	                  V4      ,          ,          pV	P                  \        WÞVWER7      4       KÝ  	  V	# )r4   r0   rn   )
r   r(   r)   r=   Úrandintr&   r9   ÚcomplexÚappendr!   )r+   r’   r“   r�   r'   r"   Ún_repÚ	longest_hr†   r”   Ú_Úp_addÚq_addÚpÚqri   r   s   &&&&&$           r   r‘   ÚTestUpfirdn._random_factorsã   sï   € ØˆØˆ	Ü—y‘y×,Ñ,¨RÓ0ˆØˆä�u–ˆAà"œ]‘E°ˆEØ"œ]‘E°ˆEØ×$Ñ$ UÓ+¨eÕ3ˆAØ×$Ñ$ UÓ+¨eÕ3ˆAð !×(Ñ(¨Ó3°aÕ7ˆEÜ—’˜l×2Ñ2°5Ó9Ó:ˆAØ—‘˜Ó!ˆAØœ'Ó!Ø�R˜,×.Ñ.¨uÓ5Õ5Õ5�à�L‰Lœ Q¨1¨gÔ=Ö>ñ ð  ˆr   Úmodec                ó°  € \         P                  ! . R	O\         P                  R7      p^^rT\        W4WQR7      pVP                  V4      pVP                  V4      pVR8X  d   VP                  . RO4      pEM8VR8X  d   VP                  . RO4      pEMVR8X  d   VP                  . RO4      pEM VR8X  dÆ   VR
,          V^ ,          ,
          VP                  ^ ,          ^,
          ,          pV^ ,          VP                  V) ^ ^VP                  R7      V,          ,           p	VR
,          VP                  ^V^,           VP                  R7      V,          ,           p
\        V	4      P                  pV! W“V
34      pM4\         P                  ! \        V4      WE3VR7      pVP                  V4      pVP                  WrP                  R7      p\        Wg4       R# )z@Test vs. manually computed results for modes not in numpy's pad.rL   ©ÚnpreÚnpostr¤   ÚantisymmetricÚantireflectÚsmoothÚline©r¤   N)r/   r3   r4   r/   rV   )g      @r/   rV   éýÿÿÿéþÿÿÿrV   r/   r3   r4   r/   rV   r®   r¯   rV   r/   r3   )rl   r3   r4   r/   rV   r   r/   r3   r4   r/   rV   r   r/   r3   r4   r/   )g      Àéüÿÿÿr®   r¯   rV   r   r/   r3   r4   r/   rV   r®   éûÿÿÿiùÿÿÿi÷ÿÿÿiõÿÿÿ)r   r   rP   r   rN   r<   r   Úconcatrr   r   r   )r+   r¤   r"   r   r§   r¨   rS   Ú
y_expectedÚ	lin_slopeÚleftÚrightr²   s   &&&         r   Útest_extensionsÚTestUpfirdn.test_extensionsû   ss  € ô �JŠJ’|¬2¯:©:Ô6ˆØ˜ˆeÜ�a¨%Ô;ˆà�J‰J�q‹MˆØ�J‰J�q‹MˆØ�?Ô"ØŸ™ÚJóLŠJà�]Ô"ØŸ™ÚDóFŠJà�XÔØŸ™ÚNóPŠJà�VŒ^Ø˜2�  1¥�¨!¯'©'°!­*°q­.Õ9ˆIØ�Q•4˜"Ÿ)™) T E¨1¨a°r·z±z˜)ÓBÀYÕNÕNˆDØ�b•E˜BŸI™I a¨°­¸"¿*¹*˜IÓEÈ	ÕQÕQˆEÜ$ TÓ*×1Ñ1ˆFÙ ¨%Ð 0Ó1‰JäŸšÔ 1°!Ó 4°t°mÈ$ÔOˆJØŸ™ JÓ/ˆJà—Z‘Z 
·*±*�ZÓ=ˆ
Ü˜Ö&r   zsize, h_len, mode, dtypec                óp  € \        V4      '       d   VR 8w  d   \        P                  ! RR7       \        \        V4      p\        WT4      p\        P
                  P                  ^4      pVP                  V4      P                  V4      p	VR9   d    V	RVP                  V4      ,          ,          p	\        P                  ! ^^V,           V	P                  P                  R7      p
VP                  W—R7      p	VP                  V
4      p
\        W©^^VR7      pV^,
          pVR9   d   \        \        V	4      WÌVR7      pM!\        P                   ! \        V	4      WÃR7      pVP                  V4      p\        W­^^R R7      pWìV)  pVP#                  V4      P$                  R,          ;pp\'        W¿VVR	7       R
# )rm   z&only mode='constant' supported by CuPy)rc   r0   rL   )r   r   r¤   r¦   r­   g      Y@r‚   N)r:   r;   )r©   rª   r«   r¬   )r	   ÚpytestÚskipr…   r   r(   r)   r8   r9   r<   Úrealr   r   r   r   r   rr   ÚfinfoÚepsr   )r+   r?   Úh_lenr¤   r   r"   Údtype_npÚdtype_xpr†   r   r   rS   ÚnpadÚxpadÚypadr³   rƒ   r„   s   &&&&&&            r   Ú
test_modesÚTestUpfirdn.test_modes  sd  € ô �2�;Š;˜4 :Ô-Ü�KŠKÐGÕHÜœ2˜uÓ%ˆÜ˜2Ó%ˆä—y‘y×,Ñ,¨QÓ/ˆØ×Ñ˜tÓ$×+Ñ+¨HÓ5ˆØÐ/Ô/Ø��l×(Ñ(¨Ó.Õ.Õ.ˆAÜ�IŠI�a˜˜U�¨!¯&©&¯,©,Ô7ˆà�J‰J�qˆJÓ)ˆØ�J‰J�q‹Mˆä�A˜Q Q¨TÔ2ˆà�q�yˆØÐEÔEäÔ.¨qÓ1¸ÈtÔT‰Dä—6’6Ô+¨AÓ.°Ô@ˆDà�z‰z˜$ÓˆÜ�q 1¨1°:Ô>ˆØ ˜uÐ%ˆ
à—h‘h˜xÓ(×,Ñ,¨sÕ2Ð2ˆˆtÜ˜¨D°t×<r   © N)r/   r3   r4   é   r5   )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/   ©Úint64rK   r:   rP   r;   ))r3   i—  )é   i�  )éO   é   )rl   r0   )©r/   r/   )r3   r3   )r4   r3   )r3   r4   )é
   éd   )rÈ   r5   é   )rK   rP   r:   r;   )rW   rX   rY   rZ   Úskip_xp_backendsrg   rº   ÚmarkÚparametrizert   rx   r|   r‰   Ú_UPFIRDN_TYPESr�   Úlistr   r–   r‘   r   r·   rÅ   r\   r]   r^   s   @r   ra   ra   †   sJ  ø‡ € ñ ˜dÐ+IÔJñ=ó Kð=ð
 ‡[�[×Ñ˜W¢oÓ6Ø‡[�[×Ñ˜W¢oÓ6ñ!ó 7ó 7ð!òJð ‡[�[×ÑÐ?Ø	
ˆAˆq�!’\Ð"Ø	
ˆAˆq�!’_Ð%Ø	
ˆAˆq�!’_Ð%Ø	
ˆAˆq�!’_Ð%Ø	
ˆB��1Ò+Ð,ðBó ñ%óð%ð ‡[�[×ÑØÒKóð ‡[�[×ÑÐ-ò 0ó ñ
5óóð5ð, ‡[�[×Ñ˜Y¨Ó7Ø‡[�[×Ñ˜S (Ó+Ø‡[�[×Ñ˜ZÒ)IÓJñ3ó Kó ,ó 8ð3ð ‡[�[×Ñ˜Y¨Ó7Ø‡[�[×Ñ˜Y¨Ó7Ø‡[�[×Ñ˜^Ù!¡'¨)°YÓ"?Ó@óBñóBó 8ó 8ðò
ð0 ‡[�[×Ñ˜V ^Ó4ñ'ó 5ð'ð< ‡[�[×ÑØ"ÙØˆCÚØÚ=ó		
óñ=óö=r   ra   c                 ó@   € R pRpRpRp\        WW44      pVR8X  g   Q hR# )ié  i@  i¹  i¸6SNi áõ)r   )r"   ri   Úin_lenr   r   Úout_lens   &     r   Útest_output_len_long_inputrÚ   C  s4   € ð
 €EØ€FØ	€BØ€DÜ˜%¨Ó2€Gð �hÔÐÒr   rÎ   rÉ   )!r   r   Ú	itertoolsr   rº   r   re   Ú
scipy._libr   ro   Úscipy._lib._array_apir   r   r   r	   r
   Úscipy._lib.array_api_compatr%   Úscipy.signalr   r   Úscipy.signal._upfirdnr   r   Úscipy.signal._upfirdn_applyr   rÓ   rÒ   r   r!   rÕ   ra   rÚ   rÇ   r   r   Ú<module>râ      s’   ðóF Ý å *Û å -÷õ õ ;ß (ß =Ý 1à—;‘;×/Ñ/Ð ô
÷<ñ <ð~ L€ñ �7Ó÷y=ð y=ó ðy=ñx �7Óñó òr   