
    bi69                     T   d Z ddlZddlmZmZmZ d Zd Zd Z	dzdZ
d ZeZeZd	 Zd
 ZeZd Zd Zd Zd{ddddZddddZddddZddddZddddZd|dZd}dZ	 d~ddddZ	 ddddddZdddddZeZ	 dddddZde fdZ!ddZ"e"Z#e"Z$e"Z%d Z&d Z'd  Z(ddddd!Z)dd"Z*e*Z+dd#Z,e,Z-d~d$Z.d~d%Z/dd&Z0dd'Z1d~d(Z2d~d)Z3dd*Z4dd+Z5d, Z6d- Z7d. Z8d/ Z9e9Z:e9Z;e9Z<e9Z<e9Z=e9Z>dd0Z?dd1Z@dd2ZAdd3ZBdd4ZCdd5ZDdd6ZEdd7ZFdd8ZGdd9ZHdd:ZId; ZJeJZKeJZLd< ZMdd=ZNd> ZOdd@ZPdA ZQ	 	 ddBZR	 ddCZSddDZTdddEdFZUdG ZVdH ZWddIZXeXZYddJZZddKZ[ddLZ\e\Z]dM Z^ddNZ_dO Z`e`ZadP ZbdQ ZcddRZdedZedS ZfdT ZgddUdVZhddWZi	 ddddXdYZjdZ ZkekZlekZmekZnekZoekZpekZqekZrerZsd[ ZtetZueuZveuZwd\ ZxexZyexZzd~d]Z{dd^Z|dd_Z}d` Z~da Zdb ZeZddcZdd ZddeZdf Zdg ZeZddhZdi ZddjZddkZddlZeZddmZddnZddoZdp ZeZeZeZdq ZeZdr ZddsZddtZdu ZddvZddwdd?dxdyZy)a  Delegators for alternative backends in scipy.signal.

The signature of `func_signature` must match the signature of signal.func.
The job of a `func_signature` is to know which arguments of `signal.func`
are arrays.

* signatures are generated by

--------------
 import inspect
 from scipy import signal

 names = [x for x in dir(signal) if not x.startswith('_')]
 objs = [getattr(signal, name) for name in names]
 funcs = [obj for obj in objs if inspect.isroutine(obj)]

 for func in funcs:
     try:
        sig = inspect.signature(func)
     except ValueError:
         sig = "( FIXME )"
     print(f"def {func.__name__}_signature{sig}:
	return array_namespace(...
 )

")
---------------

* which arguments to delegate on: manually trawled the documentation for
  array-like and array arguments

    N)array_namespace	np_compatis_jaxc                 (    t        | t              r| S y)zHandle `system` arg overloads.

    ATM, only pass tuples through. Consider updating when cupyx.lti class
    is supported.
    N)
isinstancetupleargs    S/home/cdr/jupyterlab/.venv/lib/python3.12/site-packages/scipy/signal/_delegators.py_skip_if_ltir   "   s     #u
    c                 ^    t        | t              st        | t              st        |       ry| S )z=Handle `window` being a str or a tuple or an array-like.
    N)r   strr	   callable)windows    r   _skip_if_str_or_tupler   .   s&     &#*VU";x?Or   c                 >    t        | t        j                        rd S | S r   )r   nppoly1dr
   s    r   _skip_if_poly1dr   7   s    c299-4636r   c                     t        | |||      S r   r   )ABCDs       r   abcd_normalize_signaturer   =       1aA&&r   c                     t        |       S r   r   )dataargskwdss      r   argrelextrema_signaturer$   A   s    4  r   c                     t        ||      S r   r   )wpindpassbstopbgpassgstoptypes          r   band_stop_obj_signaturer-   H   s    5%((r   c                     t        |      S r   r   NWnr"   r#   s       r   bessel_signaturer2   L       2r   c                     t        |      S r   r   )r0   rsr1   r"   r#   s        r   cheby2_signaturer6   R   r3   r   c                     t        |      S r   r   )r0   rpr1   r"   r#   s        r   cheby1_signaturer9   V   r3   r   c                     t        |      S r   r   )r0   r8   r5   r1   r"   r#   s         r   ellip_signaturer;   Z   r3   r   )xpdevicec                    |t         S |S r   r   )r0   normr<   r=   s       r   besselap_signaturerA   _       2##r   c                    |t         S |S r   r?   )r0   r<   r=   s      r   buttap_signaturerD   c   rB   r   c                    |t         S |S r   r?   )r0   r8   r<   r=   s       r   cheb1ap_signaturerF   g   rB   r   c                    |t         S |S r   r?   )r0   r5   r<   r=   s       r   cheb2ap_signaturerH   k   rB   r   c                    |t         S |S r   r?   )r0   r8   r5   r<   r=   s        r   ellipap_signaturerJ   n   rB   r   c                     t         S r   r?   )in1_lenin2_lenmodes      r   correlation_lags_signaturerO   q       Ir   c                     t         S r   r?   )mwas      r   czt_points_signaturerU   u   rP   r   c                    |t         S |S r   r   )freqftypeordernumtapsfsr<   r=   s          r   gammatone_signaturer]   y        
9**r   F)	pass_zeror<   r=   c                    |t         S |S r   rW   )w0QrY   r\   r_   r<   r=   s          r   iircomb_signaturerc      r^   r   c                    |t         S |S r   r?   )ra   rb   r\   r<   r=   s        r   iirnotch_signaturere      rB   r   c                    |t         S |S r   r?   )window_length	polyorderderivdeltaposuser<   r=   s           r   savgol_coeffs_signaturerm      s     2##r   c                     t         S r   r?   )shapeidxdtypes      r   unit_impulse_signaturerr      rP   r   c                     t        | |      S r   r   )r&   wsr*   r+   analogr\   s         r   buttord_signaturerv          2r""r   c                     t         S r   r?   )r[   widths     r   kaiser_atten_signaturerz      rP   r   c                     t         S r   r?   )rT   s    r   kaiser_beta_signaturer|      rP   r   c                     t         S r   r?   )ripplery   s     r   kaiserord_signaturer      rP   r   c                    |t         S |S r   r?   )r   Nxfftbinsr<   r=   s        r   get_window_signaturer      rB   r   c                 .    t        g t        |       | S r   r   r   systemrS   ns      r   bode_signaturer          4L04!44r   c                 .    t        g t        |       | S r   r   r   s      r   freqresp_signaturer      r   r   c                 2    t        g t        |       || S r   r   r   X0Tr0   s       r   impulse_signaturer          8L08"8a88r   c                 2    t        g t        |       || S r   r   r   x0tr   s       r   dimpulse_signaturer      r   r   c                 6    t        g t        |       ||| S r   r   )r   Ur   r   interps        r   lsim_signaturer      $    ;L0;!;Q;;;r   c                 6    t        g t        |       ||| S r   r   )r   ur   r   s       r   dlsim_signaturer      r   r   c                 2    t        g t        |       || S r   r   r   s       r   step_signaturer      r   r   c                 2    t        g t        |       || S r   r   r   s       r   dstep_signaturer      r   r   c                 $    t        t        |        S r   r   )r   dtmethodalphas       r   cont2discrete_signaturer      s    L011r   c                     t        | |      S r   r   )brT   r\   s      r   bilinear_signaturer          1a  r   c                     t        | |      S r   r   )zpkr\   s       r   bilinear_zpk_signaturer      r   r   c                     t        |       S r   r   )r   r"   r#   s      r   chirp_signaturer          1r   c                     t        | |      S r   r   in1in2r"   r#   s       r   choose_conv_method_signaturer          3$$r   c                     t        | |      S r   r   r   s       r   convolve_signaturer      r   r   c                 .    t        | |t        |            S r   r   r   xyr\   r   r"   r#   s         r   coherence_signaturer          1a!6v!>??r   c                 .    t        | |t        |            S r   r   r   s         r   csd_signaturer      r   r   c                 ,    t        | t        |            S r   r   r   r\   r   r"   r#   s        r   periodogram_signaturer          13F;<<r   c                 ,    t        | t        |            S r   r   r   s        r   welch_signaturer      r   r   c                 ,    t        | t        |            S r   r   r   s        r   spectrogram_signaturer     r   r   c                 ,    t        | t        |            S r   r   r   s        r   stft_signaturer     r   r   c                 ,    t        | t        |            S r   r   )Zxxr\   r   r"   r#   s        r   istft_signaturer     s    3 5f =>>r   c                 .    t        | |t        |            S r   r   )r   numr   axisr   domains         r   resample_signaturer     r   r   c                 ,    t        | t        |            S r   r   )r   updownr   r   r"   r#   s          r   resample_poly_signaturer     r   r   c                 *    t        t        |             S r   r   r   npersegnoverlaptols       r   check_COLA_signaturer         0899r   c                 *    t        t        |             S r   r   r   s       r   check_NOLA_signaturer     r   r   c                     t        |       S r   r   r   r"   r#   s      r   czt_signaturer     r   r   c                     t        | |      S r   r   )signaldivisors     r   deconvolve_signaturer   &  s    67++r   c                 J    t        |       }t        |      r|S t        | |      S r   )r   r   )r!   r   r,   bpr"   r#   r<   s          r   detrend_signaturer   *  s&    		B 2:r!::r   c                     t        | ||      S r   r   )r   rT   r   r"   r#   s        r   filtfilt_signaturer   1      1a##r   c                     t        | |||      S r   r   )r   rT   r   r   zis        r   lfilter_signaturer   5  s    1aB''r   c                     t        |       S r   r   )r   r"   r#   s      r   envelope_signaturer   9  r   r   c	                     t         S r   rW   )	r   height	thresholddistance
prominencery   wlen
rel_heightplateau_sizes	            r   find_peaks_signaturer   =  s
     r   c                     t        | ||      S r   r   )vectorwidthswaveletmax_distancesr"   r#   s         r   find_peaks_cwt_signaturer  F  s     66=99r   c                     t        | |      S r   r   )r   denr0   kinds       r   findfreqs_signaturer
  L  r   r   )weightr\   c                    t        |||      S r   r   )r[   bandsdesiredr  r\   s        r   firls_signaturer  P      5'622r   c                 Z    t        |t        t        z        rt        }|S t	        |      }|S r   )r   intfloatr   r   )r[   cutoffr"   r#   r<   s        r   firwin_signaturer  T  s-    &#+& I V$Ir   c                     t        ||      S r   r   )r[   rX   gainr"   r#   s        r   firwin2_signaturer  \  s    4&&r   c                     t        | ||      S r   r   )r   r   r   worNr"   r#   s         r   freqs_zpk_signaturer  `      1a&&r   c                     t        | ||      S r   r   r   rT   r  r"   r#   s        r   freqs_signaturer  f  r  r   c                     t        | ||      S r   r   r  s        r   freqz_signaturer!  j  s    1a&&r   c                     t        | |      S r   r   )sosr  r"   r#   s       r   freqz_sos_signaturer$  o  s    3%%r   c                 @    t        | t              rd n| }t        |      S r   )r   r   r   )r   r"   r#   arr_ts       r   gausspulse_signaturer'  u  s    q#&DAE5!!r   c                     t        g | | S r   r   )r   rS   wholer\   s       r   group_delay_signaturer*  z  s    &F&A&&r   c                     t        |       S r   r   r   s      r   hilbert_signaturer,  ~  r   r   c                     t        | |      S r   r   )r&   rt   r"   r#   s       r   iirdesign_signaturer.    rw   r   c                     t        |      S r   r   r/   s       r   iirfilter_signaturer0    r3   r   c                     t        | ||      S r   r   )rr   r   r   rtypes        r   invres_signaturer4    r   r   c                     t        | |      S r   r   )r   rT   s     r   lfilter_zi_signaturer6    r   r   c                     t        |       S r   r   r#  s    r   sosfilt_zi_signaturer9        3r   )r  c                    t        |||      S r   r   )r[   r  r  r  r#   s        r   remez_signaturer<    r  r   c                     t        | |||      S r   r   )r   rT   r   r   s       r   lfiltic_signaturer>    r   r   )weightsfloating_meanc                    t        | |||      S r   r   )r   r   freqs	precenter	normalizer?  r@  s          r   lombscargle_signaturerE    s     1a00r   c                     t        | |      S r   r   )r   rT   r"   r#   s       r   lp2bp_signaturerG    r   r   c                     t        | |      S r   r   r   r   r   r"   r#   s        r   lp2bp_zpk_signaturerJ    r   r   c                     t        | |      S r   r   rI  s        r   zpk2sos_signaturerL    r   r   c                     t        ||      S r   r   )nbitsstatelengthtapss       r   max_len_seq_signaturerR    s    5$''r   c                     t        |       S r   r   )volumekernel_sizes     r   medfilt_signaturerV        6""r   c                     t        |       S r   r   )inputrU  s     r   medfilt2d_signaturerZ    s    5!!r   c                     t        |       S r   r   )hr"   r#   s      r   minimum_phase_signaturer]    r   r   c                     t        | |      S r   r   )rT   r   ranks      r   order_filter_signaturer`    s    1f%%r   c                     t        | |      S r   r   )r   peaksr"   r#   s       r   peak_prominences_signaturerc    s    1e$$r   c                     t        | ||      S r   r   )r   r   polesr   rtolmaxiters         r   place_poles_signaturerh    s    1a''r   c                     t        |       S r   r   r   s      r   savgol_filter_signaturerj    r   r   c                     t        |       S r   r   )r   ry   s     r   sawtooth_signaturerl    r   r   c                     t        | ||      S r   r   )rY  hrowhcols      r   sepfir2d_signaturerp    s    5$--r   c                     t        |       S r   r   r8  s    r   sos2tf_signaturerr    r:  r   c                     t        | ||      S r   r   )r#  r   r   r   s       r   sosfilt_signaturert    s    32&&r   c                     t        | |      S r   r   )r#  r   r"   r#   s       r   sosfiltfilt_signaturerv    s    3""r   c                     t        |       S r   r   )Iinlmbdas     r   spline_filter_signaturerz    r:  r   c                     t        |       S r   r   )r   dutys     r   square_signaturer}    r   r   c                     t        | |||      S r   r   )r   r   r   r   rY  s        r   ss2tf_signaturer  	  r   r   c                 ,    t        | t        |            S r   )r   r   )r   polyphis      r   sweep_poly_signaturer    s    1od344r   c                     t        |       S r   r   )r   c0z1	precisions       r   symiirorder1_signaturer    rW  r   c                     t        | ||      S r   r   )rY  r2  omegar  s       r   symiirorder2_signaturer    s    5!U++r   c                     t        |       S r   r   )r   r"   r#   s      r   cspline1d_signaturer    rW  r   c                     t        | |      S r   r   )cjnewxr"   r#   s       r   cspline1d_eval_signaturer  #  s    2t$$r   c                     t        | |      S r   r   )r   r  s     r   tf2ss_signaturer  )  r   r   c                     t        |       S r   r   )r   r   r3  s      r   unique_roots_signaturer  -  r   r   c                     t        | |      S r   r   )r\  r   r   r   r   rN   cvals          r   upfirdn_signaturer  1  r   r   c                     t        | |      S r   r   )eventsperiods     r   vectorstrength_signaturer  5  s    66**r   c                     t        |       S r   r   )immysizenoises      r   wiener_signaturer  9  r3   r      )r\   endpointr   c                    t        | |      S r   r   )r   fnrR   r\   r  r   s         r   zoom_fft_signaturer  =  s    1b!!r   )NNNN)phase)full)Ny      ?        )NNN)notch       @)r  )r         ?Nconv)FN)T)Nd   )Ni'  )NT)NN)zohN)r  )r  hann_periodic)r  boxcar)r  )tukey_periodicg      ?)Nr   Ntime)r   )kaiser      @)g|=)   linearr   )r   N)NNNNNN      ?N)ba)   )r     )r  )r  Fg-DT!@)MbP?avgr   )FF)   )YTr     )r  )r  )r  )r   )g      )r  min)r  r  r   constantr   )__doc__numpyr   scipy._lib._array_apir   r   r   r   r   r   r   r$   argrelmax_signatureargrelmin_signaturer-   r2   butter_signaturer6   r9   r;   rA   rD   rF   rH   rJ   rO   rU   r]   rc   re   iirpeak_signaturerm   r  rr   rv   cheb1ord_signaturecheb2ord_signatureellipord_signaturerz   r|   r   r   r   dbode_signaturer   dfreqresp_signaturer   r   r   r   r   r   r   r   r   r   r   r   fftconvolve_signatureoaconvolve_signaturecorrelate_signatureconvolve2d_signaturecorrelate2d_signaturer   r   r   r   r   r   r   r   r   r   r   r   decimate_signaturegauss_spline_signaturer   r   r   r   r   r   r  r
  r  r  r  r  freqz_zpk_signaturer  r!  r$  sosfreqz_signaturer'  r*  r,  hilbert2_signaturer.  r0  r4  invresz_signaturer6  r9  r<  r>  rE  rG  lp2bs_signaturelp2hp_signaturelp2lp_signaturetf2zpk_signaturetf2sos_signaturenormalize_signatureresidue_signatureresiduez_signaturerJ  lp2bs_zpk_signaturelp2hp_zpk_signaturelp2lp_zpk_signaturerL  zpk2ss_signaturezpk2tf_signaturerR  rV  rZ  r]  r`  rc  peak_widths_signaturerh  rj  rl  rp  rr  sos2zpk_signaturert  rv  rz  r}  r  ss2zpk_signaturer  r  r  r  qspline1d_signaturecspline2d_signatureqspline2d_signaturer  qspline1d_eval_signaturer  r  r  r  r  r   r   r   <module>r     s  :  D D	7'! . - ) $ 
$d4 $ #4 $ $( $ $( $ (,D $
 /3+:>t+ !+/4d+$D $ '  AG$
t$ '+% 
# ' & & $d $
5 !5 ) 99<<992!!
%
% + ) ( ( ) * @@====?@=:: # & ,;$(
 KO,0 15:% 8< 3'' * ''
& ) "
' ' #$ % !  8< 3'
 -211! "!!" " % # & ! * ) ) ! % $ (#"&% 3 (.  % '# ' # 5#,# * ) ) % 4 %!+"AB "r   