
    riG                     h   d dl Z d dlZd dlmZmZmZmZmZ ddl ddl	mZ ddl	m
Z
 ej                  ZdZg dZg d	Zd
diZd Zh dZd ZdZdZdZdZdZdZdZi d eddd      d eddgddde      d edddgdd       d! eddgdd       d" edddgdde#      d$ edddgdde#      d% edddgdde#      d& eddgdd       d' eddgdd       d( eddg)      d* eddd+gde,      d- eddd+gde,      d. eddd+gde,      d/ eddd+gde,      d0 ed1      d2 eddgdd       d3 eddgdd       i d4 eddgdd       d5 eddg)      d6 eddgdd7g8      d9 eddg)      d: eddd+gd;      d< eddg)      d= edd>?      d@ eddgdddAB      dC eddgdddAB      dD eddddEF      dG edddgdd       dH eddgdddIB      dJ eddd+gK      dL edddgdd       dM edddgdd       dN edddgdd       d
 edddgdd       i dO eddgdd       dP edddgd7gQ      dR edddgd7gQ      dS eddg)      dT eddg)      dU edVgW      dX edddgdd       dY eddZ[      d\ eddZ[      d] eddZ[      d^ eddgdd_      d` eddda      db eddgd;      dc edddgdddg8      de edddgdd_      df edddgdddg8      dg edddgdd_      i dh edddgdd_      di edddgdd_      dj edddgdddg8      dk edddgdd_      dl edd>?      dm eddgdddno      dp eddgdddqo      dr edddgdd_      ds edddgdd       dt edddgdugdvgw      dx eddgdddno      dy eddgdd       dz eddgdd       d{ eddg)      d| eddda      d} eddgd~dgQ      d eddgdd~ge      i d eddg)      d eddg)      d eddgdd      d ed      d eddgdd       d eddgdd       d eddgd;      d eddgg dQ      d edddgdd       d eddgdd       d eddgdd       d eddgdd       d eddg)      d eddgddde      d edddgdd_      d eddd+gdddo      d eddgdd        eddgdde#       ed1       ed1       ed1       ed1      dZej                  D ]l  Z eee      Z ee
edz   d      Zere  eee      e      ZneZ e eejB                        s!ejE                  e eee            Z# e#e      Ze e$       e<   n y)    N)is_cupyis_jaxscipy_namespace_forSCIPY_ARRAY_APIxp_capabilities   )*)_signal_api)_delegatorssignal)	fftconvolveconvolve
convolve2d	correlatecorrelate2dcsddetrendistftwelch)
lfilter_zi
sosfilt_zi
get_windowbesselapenveloperemezbessel	freqz_sossosfreqzc                       fd}|S )Nc                 H     t        j                          fd       }|S )Nc                  F   	  | i |}t        |      rzj                  t        vrht
        j                  j                  j                        }dd l}|j                  d       }t        ||      }|j                  dd         || i |S t        |      rYj                  t        v rGt        |      }t        |      }	t        |	j                        }
|j                  dd         |
| i |S  | i |S # t         $ r j                  dk(  rdd l}|}n Y w xY w)Ntf2ssr   zcupyx.scipy.xp)	TypeError__name__numpyr   CUPY_BLACKLISTCUPY_RENAMESget	importlibimport_modulegetattrpopr   JAX_SIGNAL_FUNCSr   )argskwdsr#   np	func_namer*   cupyx_module
cupyx_funcspx
jax_modulejax_func	delegatorfuncmodule_names              h/var/www/auto_recruiter/arenv/lib/python3.12/site-packages/scipy/signal/_support_alternative_backends.pywrapperz+delegate_xp.<locals>.inner.<locals>.wrapper"   s!   -- r{t}}NB(,,T]]DMMJ	 !(66k]7ST$\9=
t$!404001A A)"-$S+6
":t}}=t$... T*T**5  ==G+&B 	s   C< < D D )	functoolswraps)r9   r<   r8   r:   s   ` r;   innerzdelegate_xp.<locals>.inner!   s%    			+ 
	+<      )r8   r:   r?   s   `` r;   delegate_xprB       s     B Lr@   >'   r   lsimstepchirpdbodedlsimdstepss2tfr"   r   squaress2zpkzpk2ssfreqrespsawtoothsepfir2dzoom_fft	argrelmax	argrelmin	coherence	dfreqresp	findfreqs
check_NOLA
czt_points
find_peaks
gausspulse
place_pols
sweep_polylombscarglemax_len_seqpeak_widthsperiodogramsymiirorder1symiirorder2unit_impulseargrelextremaband_stop_objfind_peaks_cwtpeak_prominencesc                 B    || t         v rt        d      S t               S )NTnp_only)untestedr   )r2   r8   s     r;   get_default_capabilitiesrk   s   s#    I1t,,r@   z*CuPy does not accept complex inputs.

    zCuPy does not support inputs with ``ndim>1`` when ``method="auto"``
    but does support higher dimensional arrays for ``method="direct"``
    and ``method="fft"``.

    z0CuPy only supports ``padtype="constant"``.

    z>CuPy only supports ``mode="constant"`` and ``cval=0.0``.

    zoThe ``torch`` backend on GPU does not support the case where
    `wp` and `ws` specify a Bandstop filter.

    zLThe JAX backend only supports ``boundary="fill"`` and ``fillvalue=0``.

    z;The CuPy and JAX backends both support only 1d input.

    r   TF)cpu_onlyjax_jitallow_dask_computebilinearcupyzUses np.polynomial.Polynomial)rl   
exceptionsrm   rn   reason
extra_notebilinear_zpktorch)rl   rq   rm   rn   butterbuttord)rl   rq   rm   rn   rs   cheb1ordcheb2ordcheby1cheby2cont2discrete)ri   rq   r   	jax.numpy)rl   rq   rn   rs   r   r   r   correlation_lags)out_of_scope	cspline1dcspline1d_eval	cspline2dczt
deconvolve)r}   zitem assignment)rl   rq   rn   skip_backendsdecimater   )rl   rq   rn   dimpulsedltiz-works in CuPy but delegation isn't set up yet)ri   rr   ellipzscipy.special.ellipk)rl   rq   rm   rn   rr   ellipordfirlslstsq)rl   rn   rm   rr   firwinfirwin2zfirwin uses np.interpr   )rl   rq   freqs	freqs_zpkfreqzgroup_delayhilbert)rl   rq   r   hilbert2invresinvresziircomb)r}   
inaccurate)xfail_backends	iirfilterkaiser_attenzscalars in, scalars out)r   rr   kaiser_beta	kaiserordlfilter)rl   rq   rn   rm   r   )rl   rn   rm   lfilticlp2bp)r}   zin-place item assignment	lp2bp_zpklp2bs	lp2bs_zpklp2lp	lp2lp_zpklp2hp	lp2hp_zpkltimedfiltzuses scipy.ndimage.rank_filter)rl   rq   rn   rm   rr   	medfilt2dzc extension moduleminimum_phase	normalize
oaconvolve)r}   zfails all around)
dask.arrayzwrong answer)rl   rq   r   r   order_filter	qspline1dqspline1d_eval	qspline2dr   resample)r   zXXX something in dask)r}   zXXX: immutable arraysresample_poly)rl   rq   rm   r   rs   residueresiduezsavgol_filterzconvolve1d is cpu-only)rl   rq   rm   rr   rO   rh   sos2zpksos2tfsosfiltsosfiltfilt))r   zLsosfiltfilt directly sets shape attributes on arrays which dask doesn't like)ru   znegative strides)r}   zsosfilt works in-placespline_filtertf2sostf2zpkunique_rootsupfirdnzCython implementationvectorstrengthwienerzuses scipy.signal.correlatezpk2sos)zpk2tfspectrogramstftr   
check_COLA
_signature)%r=   typesscipy._lib._array_apir   r   r   r   r   r
    r   __all__MODULE_NAMEr.   r'   r(   rB   rj   rk   bilinear_extra_noteuses_choose_conv_extra_noteresample_poly_extra_noteupfirdn_extra_notexord_extra_noteconvolve2d_extra_notezpk2tf_extra_notecapabilities_overridesobj_namer,   bare_objr8   f
isinstance
ModuleTyper)   capabilitiesvarsrA   r@   r;   <module>r      s        


 
 
 Z("P(V       
RotUtTR6((-$'F+>@R OTvw>O,1dLR ot%157R &'9J',*9;R 67:K(-$+:<R  67:K(-$+:<!R& ot%157'R, ot%157-R0 _TvhG1R2 6;:O37+FH3R8 /4V[<Q59-BD9R> $FK;P48,GI?RD ?Dfk=R6:.CEERJ T:KRL $F8).4IMRP ot.3NQRT $F8).4IURX 
?4VH=YRZ /4VH591Q0RT[R` &BaRb &+9N268cRf &BgRh OD#RTiRl _dx04$:<mRr 6((-$'=?sRx _dtU$+-yR| ot8I&+F}R@ &',&=?ARF ?Dfk=RSGRH _d7H%*tEIRL $FG;L).4IMRP _d7H%*tEQRT $FG;L).4IURX ?DfX+0TKYR\ 67"378]Rd 67"378eRl odx@mRn tAoRp /J.KLqRr $FG;L).4IsRv O";wR| ?=VW}R~ d;TUR@ &26GARD /4D*/1ERH &268IRL _d7H04,U+VXMRR $FG;L48%ISRV _d7H04,U+VXWR\ $FG;L48%I]R` _d7H04eEaRd $FG;L48%IeRh _d7H04,U+VXiRn $FG;L48%IoRr 
?4#RTsRv &26&FHwR| $F848%(<>}RB _d?P8<eMCRF $FG;L).4IGRJ /67"38967KRT OTvh7;U+KMURZ $F8).4I[R^ ot.3N_Rb 6(CcRd _dtUSeRf 6(32
gRt _6(&M%N+uR~ tAR@ &BARB _dx-2,DFCRH -IRJ &5268KRN ot%157ORR &268SRV ?6(
WRn 67:K(-$HoRr _dx-2tMsRv ot%157wRz ot%157{R~ ODfXFR@ &526&=*<>ARH ot@Q9=uNIRL ot8M15u%BDMRR &5268SRV t%15):< #5.$/!t4cR l ## H{H-HX%<dCI90/K	;/9a))*-11.xC
 O DF8!r@   