L i ddlZddlZddlmZddlmZddlZddlmZddl m Z ddl m Z m Z mZddlmZmZmZmZmZmZmZmZmZej2j4Zej2j6ZgdZGd d ZGd d ZGd dZGddZ eddGddZ!GddZ"GddZ#gdZ$gdZ%eddeddGddZ&egd egd!egd"egd#egd degd"degd$egd%ddd& Z'd'Z(Gd(d)Z)Gd*d+Z*Gd,d-Z+Gd.d/Z,Gd0d1Z-Gd2d3Z.Gd4d5Z/Gd6d7Z0Gd8d9Z1Gd:d;Z2Gd<d=Z3id>egd?d@egdAdBegdCdDegdEdFegdGdHegdIdJegdKdLegdMdNegdOdPgdQdRgdSdTgdUdVgdWdXgdYdZgd[d\gd]d^gd_gd`gdadbZ4GdcddZ5gdegdfgdgdhgfgdigdjgdkggdlfgdmgdngdogdpgdqggdrfgdsgdtgdugdvggdwfdxZ6edydz{Gd|d}Z7Gd~dZ8GddZ9edddZ:dZ;gdZdZ?y)N)array)suppress_warnings)raises)fft)windows get_windowresample) xp_assert_closexp_assert_equalarray_namespaceis_torchis_jaxis_cupyassert_array_almost_equal SCIPY_DEVICEis_numpy))boxcar)triangr)parzenr)bohmanr)blackmanr)nuttallr)blackmanharrisr)flattopr)bartlettr)barthannr)hammingr)kaiser)dpss))gaussian?)general_gaussian)?r#)chebwinr )cosiner)hannr) exponentialr)taylorr)tukeyr%)lanczosrceZdZdZy) TestBartHanncttjdd||jgd|jddttjd| |jgd |jddttjdd | |jgd |jddy) NTsymxp)rgA,q? 5xB$?r7gA,q?rdtypeV瞯<rtolatolr6)rHzG?\(\??rAr@rF)rr@rArBrAr@)r rrasarrayfloat64selfr6s e/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/scipy/signal/tests/test_windows.py test_basiczTestBartHann.test_basic0s((< $DKM::#W" 0 ((r2 #F)+#5" 0 ((Eb9 #C2:: V" 0N__name__ __module__ __qualname__rHrrIrGr1r1.s 0rIr1ceZdZdZy) TestBartlettczttjd||jgd|jttjd||jgd|jttjdd||jgd|jy) Nr3r?)r皙?皙?rRrQrr8r>)rUUUUUU?UUUUUU?rBrTrSrF)rrSrTrBrTrS)r rrrCrDrEs rGrHzTestBartlett.test_basic@s((r2 #=RZZ P R((r2 #B"** U W((Eb9 #?rzz R TrINrJrrIrGrOrO>sTrIrOceZdZdZy) TestBlackmanc ttjdd||jgd|jdttjdd||jgd |jd ttjd| |jgd |jdttjdd | |jgd|jdy)Nr3Fr4)rp= ף?)\(?rBrYrXr8+=r=r>)rFi'?b@c?Zgs?r^r]r\:0yE>r?)r쳩ֲ?,,?rar`rT)rrXrYrBrYrXr)r rrrCrDrEs rGrHzTestBlackman.test_basicKs(("= #C2:: V" $ (("= $M+-**#6"  # ((r2 $O*,**#6#  $ ((DR8 #F jj#*05 7rINrJrrIrGrVrVIs7rIrVceZdZdZy)TestBlackmanHarriscttjdd||jgd|jttjdd||jgd|jttjd||jgd |jttjdd ||jgd |jy) Nr3Fr?)iUMu?0_^}?縯猨?rBrgrfr8r>r4)regjP?g'm$M?gu?gu?g*m$M?gjP?)re^?gU׈g?gU׈g?rhreT)rerfrgrBrgrfre)r rrrCrDrEs rGrHzTestBlackmanHarris.test_basicas..q%B? $=DFJJ#P Q ..qeC $M+-**#6 7 ..qR8 $U*,**#6 7 ..qdrB $7>@jj#J KrINrJrrIrGrcrc_sKrIrc jax.numpyitem assignmentreasonc6eZdZdZdZeddZy) TestTaylorcttjddd||jdg|jttjddd||jgd|jttjd dd||jgd |jy ) zTests windows of small length that are normalized to 1. See the documentation for the Taylor window for more information on normalization. r!r#r?rBr8)%6'HA?)T ?rBrsrrr3)δX?繡1E?PD3m?rvrurtNr rr-rCrDrEs rGtest_normalizedzTestTaylor.test_normalizedvs q!RB7 C5 ; = NN1a + JJLZZ  )  NN1a + JJZZ  ! rIc ttjdddd||jgd|jttjdddd||jgd |jy ) zTest windows of small length that are not normalized to 1. See the documentation for the Taylor window for more information on normalization. rqr#rpFnormr6) P?sCp?g)8ux?r}r|r8r3))S~?rBkt#?rrBr~NrwrEs rGtest_non_normalizedzTestTaylor.test_non_normalizedsx  NN1a%B 7 JJZZ  !  NN1a%B 7 JJZZ  ! rIT)cpu_onlyc d}d}tj|dddd|}t||}tj|}dtj tj |tj|z z}tjtj|dkD}tj||| } d tj|d kz|z |z} d tj|d kz|z |z} tj| d d sJtj| ddsJtj| ddsJy)aThis test ensures the correctness of the implemented Taylor Windowing function. A Taylor Window of 1024 points is created, its FFT is taken, and the Peak Sidelobe Level (PSLL) and 3dB and 18dB bandwidth are found and checked. A publication from Sandia National Laboratories was used as reference for the correctness values [1]_. References ----- .. [1] Armin Doerry, "Catalog of Window Taper Functions for Sidelobe Control", 2017. https://www.researchgate.net/profile/Armin_Doerry/publication/316281181_Catalog_of_Window_Taper_Functions_for_Sidelobe_Control/links/58f92cb2a6fdccb121c9d54d/Catalog-of-Window-Taper-Functions-for-Sidelobe-Control.pdf ii#F)nbarsllr{r5r6rr#gX$g_2gAfAr!)abs_tolgLJ?皙?gZӼ@N) rr-rnprClog10absmaxargmaxdiffmathisclose) rFr6M_winN_fftwff_npspec first_zeroPSLLBW_3dBBW_18dBs rGtest_correctnesszTestTaylor.test_correctnesss#  NN5qbu%B O 5Mzz!}BHHRVVD266$<$7899YYrwwt}q01 vvd:zk23299T%8899EAEIBIId&99::UBUJ||D(A666||FFC888||GVS999rIN)rKrLrMrxrskip_xp_backendsrrrIrGrnrnss% ( $t$#:%#:rIrnceZdZdZy) TestBohmanc|ttjd||jgd|jttjdd||jgd|jttjdd ||jgd |jy) Nr3r?)rg$I ?6D?rg I ?rr8r>Tr4)rPG?4}|?rB6}|?rrF)rrrrBrr)r rrrCrDrEs rGrHzTestBohman.test_basicsqR0 $O*,**#6 7 qdr: $O*,**#6 7 q%B7 $L*,**#6 7rINrJrrIrGrrs 7rIrceZdZdZy) TestBoxcarczttjd||jgd|jttjd||jgd|jttjdd||jgd|jy)Nr3r?rBr!r!r!r!r!r8r>rBr!r!r!r!r!r!F)r rrrCrDrEs rGrHzTestBoxcar.test_basicsqR0 #7rzz J LqR0 #:"** M Oq%B7 #7rzz J LrINrJrrIrGrrsLrIr)5CV?CԳ ?Q&E?:*?;Bu?9#?=[?Z G?ٵݒ?Lg?(+ ?T=? zR&5?scH?u?]/M`?xC8???9?mo?[?T:?sK!q?/M.?×?)s?rBrrrrrrrrrrrrrrrrrrrrrrrrrr)6?2?w.v?f*#?灖`?d${!?? M?ut\?Ljh?xak?WY?qj?<)[?@ի?MEs?甽/?{l?[^6?:Ug$?: U\?I.!v?Clp?gF?稦$p?VLy?.?rBrBrrrrrrrrrrrrrrrrrrrrrrrrrr dask.arraydata-dependent output shapesc*eZdZdZdZdZdZdZy) TestChebWinc t5}|jtdtt j dd||j gd|jdtt j d d||j gd |jtt j dd ||j gd |jtt j d d ||j gd |jtt j dd d||j gd|jdddy#1swYyxYw)NThis window is not suitabler3dr?)} ɺ?L>?rBrBrrr8r_r[r>)S?D1mPC?%5R?rBrrr )rBTEm? -o?rrrB)rBF3?NO? r]?rrrBF)rBrrrrr)rfilter UserWarningr rr)rCrD)rFr6sups rGrHzTestChebWin.test_basicsQ   PC JJ{$A B GOOAsr:JJ(P/1jj':"&   GOOAsr:JJ(P/1jj': ; GOOArb9JJ(U.0jj': ; GOOArb9JJ(AHJ 'T U GOOAr5R@JJ(rrrrrCrDrrrrr)r)rFr6cheb_odd_low_at_truerrs rGtest_cheb_odd_low_attenuationz)TestChebWin.test_cheb_odd_low_attenuation.sr!zz+5<>JJ * H  8C JJ{$A BqRB7H 8 "(,@!L 8 8 /A00A9c|jgd|j}t5}|jtdt j dd|}dddt|dy#1swYxYw) N)rBR?N(D!T?#R?rr r rBr8rirrrr)rFr6cheb_even_low_at_truerrs rGtest_cheb_even_low_attenuationz*TestChebWin.test_cheb_even_low_attenuation7ss " ,@GIzz!+!S  :C JJ{$A Bcb9I : ")-BAN : :r N)rKrLrMrHrrr rrrIrGrrs P8R T MOrIr)|dy?vS ?{?rBr)1B?%?rr)́R?8,6V?rBr)\Kr? oh?rr)rrrBrr)rrrBrr) )rN皙?F)rNrT)rNrBF)rNrBT)rr#rF)rr#rT)rr#rBF)rr#rBT)rqNrT)rqNrBT)rqr#rT)rqr#rBTctjD]\\}}|#tttj g|d|i+t j |d|i}t ||j|d^y)Nr6rZr<)exponential_dataitems assert_raises ValueErrorrr,r rC)r6kvwins rGtest_exponentialr$^sf &&(<1 9 *g&9&9 EA E" E%%q0R0C CAU ; )r(`p|ܢ?J?r-r,r+r?)r(<#U_&k?r/r.r(T)r(r)r*rBr*r)r()r rrrCrDrEs rGrHzTestFlatTop.test_basicisu< $?FHjj#R S u< $:BD#M N b1 $G+-**#6 7 4B7 $M+-::#7 8rINrJrrIrGr&r&gs8rIr&ceZdZdZy) TestGaussiancttjdd||jgd|jttjdd||jgd|jttjdd ||jgd |jttjdd d ||jgd |jy) Nr3rBr?)|~?w$?"$j=?r5r4r3r8r>g333333?)r3 "?;eܜ?rBr7r6r3)r ?yLE?rBr:r9rF)rr9r:rBr:r9)r rr$rCrDrEs rGrHzTestGaussian.test_basics((CB7 $M+-**#6 7 ((CB7 $M+-**#6 7 ((A"5 $L+-**#6 7 ((Au< $8?Azz#K LrINrJrrIrGr1r1}sLrIr1ceZdZdZy)TestGeneralCosinecH|jgd}ttjd||jgd|j|jgd}ttjd|d|jgd|jy) Nr&333333?rrq)rQr?r!r?rQr8rF)r5rQr?r!r?)rCr rgeneral_cosinerD)rFr6as rGrHzTestGeneralCosine.test_basics| JJ '..q!4 #:"** M O JJ '..q!? #5RZZ H JrINrJrrIrGr<r<sJrIr<ceZdZdZy)TestGeneralHammingcttjdd||jgd|jttjddd||jgd |jttjd dd ||jgd |jy) Nrqffffff?r?rQrFrBrFrQr8?Fr4)r&y&"?x?rJrIr3T)r&rIrJrJrIr&)r rgeneral_hammingrCrDrEs rGrHzTestGeneralHamming.test_basics//32> #r4)rOCW4? /5?4Cъ?rTrSrR)rO6iv?P0?rVrUrOT)rOrPrQrBrQrPrO)r rrrCrDrEs rGrHzTestHamming.test_basics5R8 #F)+#5 6 u< $L+-**#6 7 b1 $R*,**#6 7 t; #L)+#5 6rINrJrrIrGrMrMs6rIrMceZdZdZy)TestHanncttjdd||jgd|jddttjdd||jgd |jddttjdd | |jgd |jddttjd| |jgd |jddy)Nr3Fr4)r?rHrBrHrZr8r:r;r>)r\$:?H`r?8T^j?r]r\r[Tr?rX hd?Tͻ?r`r_rrrZrHrBrHrZr)r rr+rCrDrEs rGrHzTestHann.test_basics QEb9 #C2:: V" 0  QEb9 $L+-**#6#  0  Q4 $O*,**#6#  0  Q2. #F jj#*" 0rINrJrrIrGrXrXs0rIrXceZdZdZy) TestKaiserc|ttjdd||jgd|jttjdd||jgd|jttjdd||jgd |jttjdd||jgd |jttjddd ||jgd |jy) Nr3r&r?)l?<3N?i>%?rgrfrer8r>)re $?6?rBrirhreg@)§Aը?O F?$?rlrkrj)rj*'?=a?rBrnrmrjF)rjrmrnrBrnrm)r rrrCrDrEs rGrHzTestKaiser.test_basicsq#"5 $L+-**#6 7 q#"5 $L+-**#6 7 q#"5 $L+-**#6 7 q#"5 $L+-**#6 7 q#u< $8?Azz#K LrINrJrrIrGrcrcsLrIrcceZdZdZdZy)TestKaiserBesselDerivedctjdd|}t||jgd}tj|d|}tjd|d|}t |||d|dzdz|| dzddzz}t ||j |j|j tjdtjdz |dd }|j|tjdzd z }t ||t tjd tjdz |dd|jd dg|j t tjdtjdz |dd|jgd|j y)Nr&@betar6r)zkaiser bessel derivedrrFfftbinsr6r#r8r!g@rgU?gU3|\?r3r8)g HZ1?gKf?g"iF5?)rkaiser_bessel_derivedr rCrr onesshaper9rpi ones_likersqrtrD)rFr6rMw2actualdesireds rGrHz"TestKaiserBesselDerived.test_basics  ) )#CB ?2::b>*   ) )!#" =    > !5R927AFq1aR1WX;!#33 FLL IJ..qruuqyRH!L,,v&15;(55abeeaiBOPRQRS NN#C2:: V X 55abeeaiBOPRQRS #S)+#5 6rIcd}d}tt|5tj|dzd|dddd}tt|5tj|dzdd| dddy#1swYBxYw#1swYyxYw) NrzHKaiser-Bessel Derived windows are only defined for even number of pointsmatchr!rrrszCKaiser-Bessel Derived windows are only defined for symmetric shapesF)rtr5r6)rr rrw)rFr6r}msgs rGtest_exceptionsz'TestKaiserBesselDerived.test_exceptionss " :S 1 A  ) )!a%bR @ A" :S 1 L  ) )!a%be K L L  A A  L LsA3 A?3A<?BN)rKrLrMrHrrrIrGrprps 6> LrIrpceZdZdZy) TestNuttallcttjdd||jgd|jttjdd||jgd|jttjd||jgd |jttjdd ||jgd |jy) Nr3Fr4)A"7?v;O)rgx&yxXW?g??絑 ?rg??g&yxXW?r?)rgEJ?g=`T?g>`T?gEJ?rT)rrrrBrrr)r rrrCrDrEs rGrHzTestNuttall.test_basic(su< $/68jj#B C u< $L+-** #6 7 b1 $CJL**#V W 4B7 $ELNJJ#X YrINrJrrIrGrr&sYrIrceZdZdZy) TestParzenc|ttjd||jgd|jttjdd||jgd|jttjdd ||jgd |jy) Nr3r?)e/?rZ88?rrZrr8r>Tr4)%OZQ%w?2|&?݁?rBrrrF)rrrrBrr)r rrrCrDrEs rGrHzTestParzen.test_basic=sqR0 $T*,**#6 7 qdr: $M+-**#6 7 q%B7 $8?Azz#K LrINrJrrIrGrr;s LrIrceZdZdZy) TestTriangc|ttjdd||jgd|jttjd||jgd|jttjdd| |jgd |jy) Nr3Tr?)UUUUUU?r&竪?rr&rr8r>)rZr&rHr!rHr&rZFr4)rZr&rHr!rHr&)r rrrCrDrEs rGrHzTestTriang.test_basicOsq$26 #A T VqR0 #DBJJ W Yqe; #?rzz R TrINrJrrIrGrrMsTrIr)rr&T)rBrBr)r?T)r?rr)rrBT)rrHrHr)rr&F)rrBrBrB)rrF)rrnOC?rBr)rrBF)rr&rBr&)rqrT)rBrBrBrBrB)rqrRT)rYx?rBrr)rqrBT)rr&rBr&r)r3rr)r>rr)r3rZ)rr!r!r!r!r)r>rZ)rr!r!r!r!r!rr3)rr`rBrBgRͻ?r)r>)rrHrBrBrBrHrr3rH)rgxų &?rBrBgvų &?rr>rH)rg#}`yq?)!?rBrg#}`yq?rr^ra)r3r!)r>r!ceZdZdZdZy) TestTukeyc tjD]w\}}|#tttj g|d|i+t |r |dvrddd}nddd}t j |d|i}t||j|fddi|yy) Nr6)rrrrg+i)+`>r_r;r: check_dtypeF) tukey_datarrr rr.r r rC)rFr6r!r" atol_rtolr#s rGrHzTestTukey.test_basicxs$$& @DAqyj'--C!CCB@ @rIctjdd|}tjd|}t||tjdd|}tjd|}t||y)Nrrr?r!)rr.rr r+)rFr6tuk0box0tuk1han1s rG test_extremeszTestTukey.test_extremessZ}}S!+~~cb)d#}}S!+||CB'd#rIN)rKrLrMrHrrrIrGrrvs  @$rIr)IP?;]L?rr)g/vIef?rg>ef) #n?gLor)gm/?g96+?g雦br?)gw?V?g>J#?g;Wi?g֙}I#?gr?V?)g:7A!(?cHX?rcHXS[@!(ܿ)qh4?T1a~²?gEܿrr)rrrgS[@!(?r)gu+t?X>߿g36?rg;St?)gML?gh5"z?g\v4?gPa?gd?)dsk8Si?p&p?5Bu?OL{?08À?w-}?DC1?XB?QST`?s\NK? 3??gd?g!DKy?g+o ?gYh{b?g{^y?gSh1?gy%@?g|hzj??gP\D?gz ?gVx<҅?g?gq&?gb˱?g8|p?g_cH?g6K ?gwp΍?g"Q q?g@m8Migǐ3g7/`_qgS!g8QJg68gu\qg/Z~ܳgpQZgCg3 `g7ſg3zĿg%PldĿgMuÿgI!w.ÿ)g?g"?gy?'?g`?))rrr#)r8gffffff?r8)rqr(rq)rr#rTz#banded linear algebra is numpy-onlynp_onlyrlcBeZdZdZdZdZdZeddZy) TestDPSSctjD]C\}}tj|d|d\}}t ||dd|t ||ddd|Ey) NT return_ratiosr6rgHz>)r=err_msgr!gh㈵>)r<r=r%) dpss_datarrr"r )rFr6r!r"r#ratioss rGrHzTestDPSS.test_basicsZOO% KDAq!,,"EKC C1D! < FAaDt$ J KrIc8tddD] }tj||dz |}|dz}tt j |dj ||tj||dz d| }|dkDr?tt j |dj ||t||d tj||dz d| }|dk(rdnd }tt j |dj || y) Nr!g@r?r#rB)r% subsamplerzgQ?rr)rangerr"r rrsumr )rFr6r}r#expectedwin_subwin_2s rG test_unityzTestDPSS.test_unitysq" -A,,q!c'b1C1uH BJJsB/335x$'5 +ll1a#gKBGG1u 7B 7 ; ; =x(/y3W48LLAG!;EFqH BJJub1557$)7 -! -rIcTtjdddd|d}t||j|tjdddd|d}t||j|tjdddd|d}t||j|y) Nr3rTr#r!r>r)rr"r r{)rFr6lams rGrzTestDPSS.test_extremessll2q!4B?BR\\#./ll2q!4B?BR\\#./ll2q!4B?BR\\#./rIctttjdddtttjdddtttjdddtttjdddtttjdddtttjdddtttjdddy) Nrr(皙?r8rr!)rr rr" TypeErrorrEs rGtest_degeneratezTestDPSS.test_degeneratesj',,3;j',,3;iq#s;j',,3:j',,2q9j',,1a8j',,Aq9rIT)rc6tjdd}t|dgtjddd\}}t|dg|dk(sJtjdddd\}}t|dgt|tj sJt|dgt ttjddd| t ttjddd | t ttjddd | t ttjd dd | t ttjd dd | t ttjd d d | t ttjddd | y)Nr!rBT)r$r)Kmaxr$r(r5r?r6r7r8r) rr"r isinstancerndarrayrr r8)rFr6rratios rGtest_degenerate_signle_samplesz'TestDPSS.test_degenerate_signle_sampless, LLB B4 <<2T:5B4 {{<<2ATB5B4 %,,,t$j',,3rBj',,3rBiq#srBj',,3bAj',,2qR@j',,1aB?j',,AqR@rIN) rKrLrMrHr0rr9rr?rrIrGr!r!s2K-*0:d#A$ArIr!ceZdZdZdZy) TestLanczoscttjdd||jgd|jdttjd||jgd |jdttjd d ||jgd |jdy) Nr3Fr4rqϾv?;Fv?rBrErDr8& .>r[r?ruH%?;9?rIrHrr>T)rrDrErBrErDr)r rr/rCrDrEs rGrHzTestLanczos.test_basics u< $18: #D"  # b1 $5<>JJ#H"  # t; $5<>JJ#H"  #rIcdD]V}tj|d|jd|k(sJtj|d|jd|k(rVJy)N)rr Fr4rT)rr/ry)rFr6ns rGtest_array_sizezTestLanczos.test_array_sizes_ EA??1%B7==a@AE EE??1$26< ; S#c(X-c : ; ; ;s A$$A-c ttd|jgdfd|jgd|jttd|jgdfdd|jgd|jt j t 5tdgdfd| dddy#1swYyxYw) NrAr>rr@r8F)rv)rQ皙?rnrQr?)r rrCrDpytestrr rEs rGtest_general_cosinez!TestGetWindow.test_general_cosine>s $4bjj6Q#RTUV #5RZZ H J $4bjj6Q#RTU+02 #9 L N]]: & F (/:A" E F F Fs (CC cttdd||jgd|jttddd||jgd|jy) N)rKrFrqr?)rQжn?男*?rsrrr8FrurGr rrCrDrEs rGtest_general_hammingz"TestGetWindow.test_general_hammingHs` #;Q2F #T)+#5 6  #;QRTU #JJ#HNR T  9aB7"614 6rIctdd}t|tjsJtdd|}t |st|tjrJyy)Nr/r3r?)rr<rr=r)rFr6r#s rGtest_xp_defaultzTestGetWindow.test_xp_defaultYsSA&#rzz***A"-|!#rzz2 222rIN)rKrLrMrSrrVrXr^r`rdxfail_xp_backendsrlrprurxrzrrIrGrOrOs,k*;<l+IJ K= k*;<l+IJLK=L t,JK9L9 $ Jt,QR;S;FQ63rIrOz(https://github.com/dask/dask/issues/2620c  tD]i\}}tt|}t|r|dvrt j d|d|dvrKt |rt j dt|rtdk7rt j dt5}|jtd |d g|d |d }|d g|d|d }t|dd||dg|d |d }|d g|d|d }t|dd||dg|d |d jddk(sJ|dg|d|d jddk(sJ|d g|d |d jdd k(sJ|d g|d|d jdd k(sJtt|dg|d|itt|dg|d|it!|dg|d |d |j#g|j$t!|dg|d|d |j#g|j$t!|dg|d |d |j#dg|j$t!|dg|d|d |j#dg|j$|dg|d |d j&|j$k(sJ|dg|d|d j&|j$k(sJ|dg|d |d j&|j$k(sJ|dg|d|d j&|j$k(sJ|dg|d |d j&|j$k(sJ|dg|d|d j&|j$k(sJ|j)|dg|d |d dksJ|j)|dg|d|d dksJ|j)|dg|d |d dksJ|j)|dg|d|d dksJt+|dg|d|d }|j-|}t||j/|dt+|dg|d|d }|j-|}t||j/|ddddly#1swYxxYw)N)r-r)zwindow_name = : item assignmentrk)r"z'dpss window is not implemented for cupycpuz)needs eight_tridiagonal which is CPU onlyrrTr4r>Fr5 r3rg@r6ir8r!rBrg)\(?rZr[rK) window_funcsgetattrrrroskiprr rrrrr ryrr r rCrDr9allrimag zeros_like)r6 window_nameparamsrgrw1r~ress rGtest_windowfunc_basicsrcs+>A V+. ":+)>> KK.+!11BC D ( "r{ #LM|  5 #NO  4 AC JJ{$A B4F44B5F5"5B BsGR (4F44B5F5"5B BsGR (!6f6$26< F1@v@5R@JJrJ< > F1?v?4B?JJt2::J> @ F1@v@5R@JJt2::J> @!6f6$26<< J JJ!7f7%B7==K KK!6f6$26<< J JJ!7f7%B7==K KK!6f6$26<< J JJ!7f7%B7==K KK66&>f>$2>EF FF66&?f?%B?$FG GG66&=V="=DE EE66&>V>2>EF FFfR;&;e;A4 A4 As O Q55Q? cBdD]}ttt|d|y)N)rksrrwkbdr$gaussgsszgeneral gaussianr'z general gauss general_gaussggsdssr"zgeneral cosinerAr)chebzgeneral hammingrKr>r?)rr r)r6winstrs rGtest_needs_paramsrs'@ j*faB?@rI)rrrrrrr*rrrrr-r,poissonr.tuktriangler/rwrct|r|dvrtj|dt|d|}|jddk(sJy)N)r-r}rkr>r?r)rrorrry)r6rr#s rGtest_not_needs_paramsrsH bzf * fX%678 VQ2 &C 99Q<1  rIc tjfD]}|d|}t|j}|j |j |||z }t ||jddd|d|}|j |j |||z }t ||jdddy)Nir?rF)rcheck_0di)rr/r fliprrr rC)r6r#rrerrors rGtest_symmetricrs S  q!&&rvva$q'k*+rzz#EER  rvva$q'k*+rzz#EER SrI)@rnumpyrr numpy.testingrrorr scipy.fftr scipy.signalrrr scipy._lib._array_apir r r r rrrrrmarkrr{rr1rOrVrcrnrrrrrrr$r&r1r<rDrMrXrcrprrrrrr&r!rArOrr_winstr parametrizerrrrIrGrs + *66 ;;//KK11 4 0 0 TT77,KK(+&78L:L:9L:^77"LL  0(+&78,'EF:O:OG9:O~ ( ) !JK "78!KL A B45 A B !JK3:<88,LL0 J J Y Y66(00.LL:-L-L`YY*LL$ T TE./E56E01  U/0  U67 U/0E34E:;E34  #  "!" %#$ B%& +'( F)* :+. $ /3 :$$@HIADOQ\C]^:<\_GHJqrVYUWY[VXabdkl|~J(L(D<F<`PaPcPWQXQ  $'LMDADANDANEEBZ3Z3z,'QR?AS?AD@ ,7+, SrI