
    (ph5                     T   S r SSKJrJrJr  SSKJrJrJrJ	r	J
r
JrJrJrJrJrJrJrJr  SSKrSSKJrJrJrJrJrJrJrJr  SSKJr  SS jrSS jr SS	 jr!S
 r"S r#SS jr$ " S S5      r% " S S5      r& " S S5      r' " S S5      r( " S S5      r) " S S5      r* " S S5      r+g)z
Build fftpack:
  python setup_fftpack.py build
Run tests if scipy is installed:
  python -c 'import scipy;scipy.fftpack.test(<level>)'
Run tests if fftpack is not installed:
  python tests/test_pseudo_diffs.py [<level>]
    )assert_equalassert_almost_equalassert_array_almost_equal)difffftiffttilbertitilberthilbertihilbertshiftfftfreqcs_diffsc_diffss_diffcc_diffN)arangesincospiexptanhsumsign)randomc                     [        U 5      n[        U5      nUc	  S[        -  n[        U5      S-  [        -  U-  U-  nUS:  a  SXQ-  -  nSUS'   OXQ-  nUS:  a  SUSUS-
  & [	        XS-  5      R
                  $ )N                  @r              i     )r   lenr   r   r   real)xkperiodfxnws         X/var/www/html/venv/lib/python3.13/site-packages/scipy/fftpack/tests/test_pseudo_diffs.pydirect_diffr+      s    	QBBA~2
2b!A1uH!D4x#ae:??    c                     [        U 5      n[        U5      nUc	  S[        -  n[        U5      U-  S-  [        -  U-  U-  nSUS'   S[	        U5      -  nSUS'   [        XS-  5      $ )Nr   r   r                 ?y                r   r"   r   r   r   r   r$   hr&   r'   r(   r)   s         r*   direct_tilbertr2   '   sm    	QBBA~2
1Qr& "AAaD
47
AAaD:r,   c                     [        U 5      n[        U5      nUc	  S[        -  n[        U5      U-  S-  [        -  U-  U-  nS[	        U5      -  n[        XS-  5      $ )Nr   y             r/   r0   s         r*   direct_itilbertr4   3   s[    	QBBA~2
1Qr& "ADGA:r,   c                     [        U 5      n[        U5      n[        U5      U-  nS[        U5      -  n[	        X1-  5      $ )Nr.   )r   r"   r   r   r   )r$   r'   r(   r)   s       r*   direct_hilbertr6   =   s:    	QBBA
1A
47
A:r,   c                     [        U 5      * $ N)r6   )r$   s    r*   direct_ihilbertr9   E   s    1r,   c                     [        U 5      nUc  [        U5      S-  U-  nO[        U5      S-  [        -  U-  U-  n[        [	        U 5      [        XA-  5      -  5      R                  $ )Nr.   r   )r"   r   r   r   r   r   r#   )r$   ar&   r(   r%   s        r*   direct_shiftr<   I   s\    AA~AJrM!OAJrM"V#A%As13x %%%r,   c                   J    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rSrg)TestDiffR   c                    S GHv  n[        U5      S-  [        -  U-  n[        [        [	        U5      5      [        [	        U5      5      5        [        [        [	        U5      S5      [        [	        U5      S5      5        [        [        [	        U5      S5      [        [	        U5      S5      5        [        [        [	        U5      S5      [        [	        U5      S5      5        [        [        [	        U5      S5      [        [	        U5      S5      5        [        [        [	        SU-  5      S5      [        [	        SU-  5      S5      5        [        [        [	        SU-  5      S5      [        [	        SU-  5      S5      5        [        [        [        U5      5      [        [        U5      5      5        [        [        [        U5      S5      [        [        U5      S5      5        [        [        [        U5      S5      [        [        U5      S5      5        [        [        [        U5      S5      [        [        U5      S5      5        [        [        [        SU-  5      5      [        [        SU-  5      5      5        [        [        [	        X!-  S-  5      5      [        [	        X!-  S-  5      5      5        [        [        [        X!-  S-  5      5      [        [        X!-  S-  5      5      5        [        S5       Hs  n[        [        [	        SU-  5      U5      [        [	        SU-  5      U5      5        [        [        [        SU-  5      U5      [        [        SU-  5      U5      5        Mu     GMy     g )N)      @          r               )r   r   r   r   r   r+   r   range)selfr(   r$   r%   s       r*   test_definitionTestDiff.test_definitionT   sT   "Aq	!Bq A%d3q6l;s1v3FG%d3q6!n[Q5JK%d3q6!n[Q5JK%d3q6!n[Q5JK%d3q6!n[Q5JK%d3qs8A&6{3qs8A7NO%d3qs8A&6{3qs8A7NO%d3q6l;s1v3FG%d3q6!n[Q5JK%d3q6!n[Q5JK%d3q6!n[Q5JK%d3qs8n[QqS5JK%d3qs1u:&6{3qs1u:7NO%d3qs1u:&6{3qs1u:7NO1X)$s1Q3x*:;s1Q3xPQ;RS)$s1Q3x*:;s1Q3xPQ;RS ! #r,   c           	      ^   S H  n[        U5      [        U5      -  n[        [        [	        S[
        -  U-  5      SS9S[
        -  [        S[
        -  U-  5      -  5        [        [        [	        S[
        -  U-  5      SSS9S[
        -  S-  * [        S[
        -  U-  5      -  5        M     g )N)rB   rC   r   r   )r&   rF   )r   floatr   r   r   r   r   rK   r(   r$   s      r*   test_periodTestDiff.test_periodi   s    Aq	%("A%d3qtAv;a&@&'d3qtAv;&68%d3qtAv;q&B()"qyjQrT!V&<>	 r,   c           
      t   S GH1  n[        U5      S-  [        -  U-  n[        [        [	        U5      5      [        U5      5        [        [        [        U5      5      [	        U5      * 5        [        [        [	        U5      S5      [	        U5      * 5        [        [        [	        U5      S5      [	        U5      5        [        [        [	        SU-  5      5      S[        SU-  5      -  5        [        [        [	        [	        U5      5      5      [        U5      [        [	        U5      5      -  5        GM4     g )N)rE   rC   M   r   rG   r   r   r   r   r   r   rP   s      r*   test_sinTestDiff.test_sinq   s    Aq	!Bq A%d3q6l3q6:%d3q6lCF7;%d3q6!nc!fW=%d3q6!nSV<%d3qs8nQs1Q3xZ@%d3s1v;&7As3q6{8JK r,   c           	      N   / SQS S  GH  n[        U5      S-  [        -  U-  n[        U5      [        SU-  5      -  [	        [        SU-  5      5      -   n[        U5      [        SU-  5      -  S[        U5      -  [        SU-  5      -  -
  S[        SU-  5      -  [	        [        SU-  5      5      -  -   nS[        U5      -  [        SU-  5      -  S[        U5      -  [        SU-  5      -  -
  S[        SU-  5      -  [	        [        SU-  5      5      -  -
  S[        SU-  5      S-  -  [	        [        SU-  5      5      -  -   n[        U5      n[        Xd5        [        [        U5      U5        [        [        US5      U5        [        [        US	5      U5        GM     g )
N)
rC   rT   d         i   i         i    rH   r   rG   rF   rI   	   )r   r   r   r   r   r   r   )rK   r(   r$   fdfddfd1s          r*   	test_exprTestDiff.test_expr{   sc   <Ra@Aq	!Bq AAs1Q3xC!H-AQAaC3q6#ac(!221S1X:c#ac(m3KKBc!f*S1X%aAhs1Q3x&77S1X:c#ac(m+,,-c!A#hkM#c!A#h-,GHCaB%b,%d2hs3%d1Qi4%d3rl26 Ar,   c           	      B   S GH  n[        U5      S-  [        -  U-  n[        U5      [        SU-  5      -  [	        [        SU-  5      5      -   n[        U5      [        SU-  5      -  S[        U5      -  [        SU-  5      -  -
  S[        SU-  5      -  [	        [        SU-  5      5      -  -   nS[        U5      -  [        SU-  5      -  S[        U5      -  [        SU-  5      -  -
  S[        SU-  5      -  [	        [        SU-  5      5      -  -
  S[        SU-  5      S-  -  [	        [        SU-  5      5      -  -   n[        [        U5      U5        [        [        U5      U5        [        [        US5      U5        [        [        US5      U5        GM     g )	N)r\   r]   r   rG   rF   r^   rI   r_   r`   )r   r   r   r   r   r   r   )rK   r(   r$   ra   rb   rc   s         r*   test_expr_largeTestDiff.test_expr_large   sX   Aq	!Bq AAs1Q3xC!H-AQAaC3q6#ac(!221S1X:c#ac(m3KKBc!f*S1X%aAhs1Q3x&77S1X:c#ac(m+,,-c!A#hkM#c!A#h-,GHC%d1gb1%d2hs3%d3rl26%d1Qi4 r,   c           	         Sn[        U5      S-  [        -  U-  n[        [        [	        U5      S5      [        U5      * 5        [        [        [	        U5      S5      [	        U5      * 5        [        [        [	        U5      S5      [	        U5      5        [        [        S[        SU-  5      -  S5      [	        SU-  5      5        g )NrC   r   r`   rU   rP   s      r*   test_intTestDiff.test_int   s    1IaKN1!$s1vb/3q6':!$s1vb/3q6':!$s1vb/#a&9!$qQqSz""5c!A#h?r,   c           
         [         R                  R                  S5      nS H  nS H  nUR                  U45      n[        USS9U-  nXE-
  n[	        [	        US5      S5      n[        [        USS9S5        [        [	        [	        XB5      U* 5      U5        [        [	        [	        XB* 5      U5      U5        M     M     g )	N  )r   r   rG      )<   rE   rC   8   7   r   axisr   r`   r    npr   default_rngr   r   r   r   rK   rngr%   r(   ra   afs         r*   test_random_evenTestDiff.test_random_even   s    ii##D)A%JJt$]1_Da2&#CqM#6)$tAy!*<Q?)$tAbz!*<Q? & r,   c           
      T   [         R                  R                  S5      nS H  nS Hz  nUR                  U45      n[        USS9U-  nXE-
  n[	        [        USS9S5        [        [        [        XB5      U* 5      U5        [        [        [        XB* 5      U5      U5        M|     M     g )Nrp   r   r   r   rF   rG   rH   rq   !   A   rt   r   ru   r    )rx   r   ry   r   r   r   r   rz   s         r*   test_random_oddTestDiff.test_random_odd   s    ii##D) AJJt$]1_D#CqM#6)$tAy!*<Q?)$tAbz!*<Q?   !r,   c           
         [         R                  R                  S5      nS H  nS H  nUR                  U45      n[        USS9U-  nXE-
  n[	        [	        US5      S5      n[        [        USS9S5        [        [	        [	        XB5      U* 5      U5        [        [	        [	        XB* 5      U5      U5        M     M     g )	Nrp   r   )rE   r   rC   rs   rt   r   ru   r   r`   r    rw   rz   s         r*   test_zero_nyquistTestDiff.test_zero_nyquist   s    ii##D) A%JJt$]1_Da2&#CqM#6)$tAy!*<Q?)$tAbz!*<Q? & !r,    N)__name__
__module____qualname____firstlineno__rL   rQ   rV   re   rh   rm   r}   r   r   __static_attributes__r   r,   r*   r>   r>   R   s5    T*>L7
5@@	@@r,   r>   c                   &    \ rS rSrS rS rS rSrg)TestTilbert   c                    S H  nS H  n[        U5      S-  [        -  U-  n[        [        U5      U5      n[	        [        U5      U5      n[        XE5        [        [        [        U5      U5      [	        [        U5      U5      5        [        [        [        SU-  5      U5      [	        [        SU-  5      U5      5        M     M     g N皙?g      ?r   g      @
   rA   rB   rC   rD   r   )r   r   r	   r   r2   r   rK   r1   r(   r$   yy1s         r*   rL   TestTilbert.test_definition   s    #A#1IaKN1$CF1%#CF1-)!/)'#a&*;*8Q*BD)'#ac(1*=*8QqS!*DF $ $r,   c           
          S H\  nS HS  n[        U45      n[        USS9U-  nX4-
  n[        [        USS9S5        [        [	        [        X15      U5      U5        MU     M^     g )Nr   rE   rC   rs   r   ru   r    )r   r   r   r   r2   r4   )rK   r1   r(   ra   r|   s        r*   r}   TestTilbert.test_random_even   s^    #AA4L]1_D#CqM#6).9Ma*PQRS   $r,   c           
      P   [         R                  R                  S5      nS H  nS Hx  nUR                  U45      n[        USS9U-  nXE-
  n[	        [        USS9S5        [        [        [        XB5      U5      U5        [        [        [        XB5      U5      U5        Mz     M     g )Nrp   r   r   r   ru   r    )rx   r   ry   r   r   r   r
   r	   )rK   r{   r1   r(   ra   r|   s         r*   r   TestTilbert.test_random_odd   s    ii##D)#AJJt$]1_D#CqM#6)(71<*B1E)'(1-*B1E   $r,   r   N)r   r   r   r   rL   r}   r   r   r   r,   r*   r   r      s    
FT	Fr,   r   c                       \ rS rSrS rSrg)TestITilbert   c                    S H  nS H  n[        U5      S-  [        -  U-  n[        [        U5      U5      n[	        [        U5      U5      n[        XE5        [        [        [        U5      U5      [	        [        U5      U5      5        [        [        [        SU-  5      U5      [	        [        SU-  5      U5      5        M     M     g r   )r   r   r
   r   r4   r   r   s         r*   rL   TestITilbert.test_definition   s    #A#1IaKN1$SVA&$SVA.)!/)(3q6!*<*9#a&*CE)(3qs8A*>*9#ac(1*EG $ $r,   r   Nr   r   r   r   rL   r   r   r,   r*   r   r      s    
Gr,   r   c                   ,    \ rS rSrS rS rS rS rSrg)TestHilbert   c           
         S H  n[        U5      S-  [        -  U-  n[        [        U5      5      n[	        [        U5      5      n[        X45        [        [        [        SU-  5      5      [	        [        SU-  5      5      5        M     g Nr   r   )r   r   r   r   r6   r   rK   r(   r$   r   r   s        r*   rL   TestHilbert.test_definition   sm    Aq	!Bq AAAA'B%a+%gc!A#h&7&4S1X&>@  r,   c                     S Hw  n[        U5      S-  [        -  U-  n[        U5      [        SU-  5      [        U5      -  -   n[	        U5      n[        U5      n[        XE5        [        USS9n[        XF5        My     g Nr   r   r   )r1   )r   r   r   r   r   r6   r   r	   rK   r(   r$   ra   r   r   y2s          r*   test_tilbert_relation!TestHilbert.test_tilbert_relation   sn    Aq	!Bq AAs1Q3xA&A
A"B%a+RB%a+  r,   c                 :   [         R                  R                  S5      nS Hv  nUR                  U45      n[        USS9U-  nX4-
  n[	        [        USS9S5        [        [        [        U5      5      U5        [        [        [        U5      5      U5        Mx     g )Nrp   r   r   ru   r    )rx   r   ry   r   r   r   r   r   rK   r{   r(   ra   r|   s        r*   r   TestHilbert.test_random_odd	  s|    ii##D)A

A4 AQAqBAA1c2%hwqz&:1=%ghqk&:1= r,   c                 f   [         R                  R                  S5      nS H  nUR                  U45      n[        USS9U-  nX4-
  n[	        [	        US5      S5      n[        [        USS9S5        [        [        [        U5      5      U5        [        [        [        U5      5      U5        M     g )Nrp   r   r   ru   r   r`   r    )rx   r   ry   r   r   r   r   r6   r9   r   r   r   s        r*   r}   TestHilbert.test_random_even  s    ii##D)A

A4 AQAqBAT!AYr"AA1c2%n_Q5G&HK%ghqk&:1= r,   r   N)	r   r   r   r   rL   r   r   r}   r   r   r,   r*   r   r      s    @,>
>r,   r   c                        \ rS rSrS rS rSrg)TestIHilberti   c           
         S H  n[        U5      S-  [        -  U-  n[        [        U5      5      n[	        [        U5      5      n[        X45        [        [        [        SU-  5      5      [	        [        SU-  5      5      5        M     g r   )r   r   r   r   r9   r   r   s        r*   rL   TestIHilbert.test_definition"  sn    Aq	!Bq AQ A Q(B%a+%hs1Q3x&8&5c!A#h&?A  r,   c                     S Hw  n[        U5      S-  [        -  U-  n[        U5      [        SU-  5      [        U5      -  -   n[	        U5      n[        U5      n[        XE5        [        USS9n[        XF5        My     g r   )r   r   r   r   r   r9   r   r
   r   s          r*   test_itilbert_relation#TestIHilbert.test_itilbert_relation+  so    Aq	!Bq AAs1Q3xA&AA #B%a+!b!B%a+  r,   r   N)r   r   r   r   rL   r   r   r   r,   r*   r   r      s    A,r,   r   c                       \ rS rSrS rSrg)	TestShifti6  c                    S GH  n[        U5      S-  [        -  U-  nS GH  n[        [        [	        U5      U5      [        [	        U5      U5      5        [        [        [	        U5      U5      [	        X#-   5      5        [        [        [        U5      U5      [        X#-   5      5        [        [        [        SU-  5      [	        U5      -   U5      [        SX#-   -  5      [	        X#-   5      -   5        [        [        [        [	        U5      5      U5      [        [	        X#-   5      5      5        GM     [        [        [	        U5      S[        -  5      [	        U5      5        [        [        [	        U5      [        5      [	        U5      * 5        [        [        [	        U5      [        S-  5      [        U5      5        GM     g )N)   rB   rC   rD   rE   r\   r[   r   )r   rF   )r   r   r   r   r   r<   r   r   )rK   r(   r$   r;   s       r*   rL   TestShift.test_definition8  s3   +Aq	!Bq A)%Aq/,s1va:PQ)%Aq/#ac(C)%Aq/#ac(C)%AaCQ*B*-ag,s13x*?A)%CFA*>s3qs8}M  &eCF1R4&8Q@%eCF2&6Aw?%eCF2a4&8Q@ ,r,   r   Nr   r   r,   r*   r   r   6  s    Ar,   r   c                       \ rS rSrSr\R                  \R                  4r\\R                  \R                  4-   rS rS rS rS rS rS rS	 rS
 rS rS rS rSrg)TestOverwriteiG  zCheck input overwrite behavior c                     UR                  5       nU" U/UQ70 UD6  UR                  nU(       a  U[        U5      -  nU(       a  U[        U5      -  n[        XQSU 3S9  g )Nzspurious overwrite in )err_msg)copyr   reprr   )rK   r$   routineargskwargsx2sigs          r*   _checkTestOverwrite._checkM  s^    VVX$T$V$4:C4<CR&<SE$BCr,   c                 H   [         R                  R                  S5      n[         R                  " U[         R                  5      (       a#  UR
                  " U6 SUR
                  " U6 -  -   nOUR
                  " U6 nUR                  U5      nU R                  " Xq/UQ70 UD6  g )Nrp   r.   )rx   r   RandomState
issubdtypecomplexfloatingrandnastyper   )rK   r   dtypeshaper   r   r{   datas           r*   	_check_1dTestOverwrite._check_1dW  s    ii##D)== 2 23399e$r#))U*;';;D99e$D{{5!D3D3F3r,   c                 X    U R                    H  nU R                  [        US5        M     g NrA   )dtypesr   r   rK   r   s     r*   	test_diffTestOverwrite.test_diffb  s     [[ENN4. !r,   c                 Z    U R                    H  nU R                  [        USS5        M     g Nr   g?)r   r   r	   r   s     r*   test_tilbertTestOverwrite.test_tilbertf  s"    [[ENN7E5#6 !r,   c                 Z    U R                    H  nU R                  [        USS5        M     g r   )r   r   r
   r   s     r*   test_itilbertTestOverwrite.test_itilbertj  s"    [[ENN8UE37 !r,   c                 X    U R                    H  nU R                  [        US5        M     g r   )r   r   r   r   s     r*   test_hilbertTestOverwrite.test_hilbertn  s     [[ENN7E51 !r,   c                 \    U R                    H  nU R                  [        USSS5        M     g Nr         ?g      @)r   r   r   r   s     r*   test_cs_diffTestOverwrite.test_cs_diffr  $    [[ENN7E5#s; !r,   c                 \    U R                    H  nU R                  [        USSS5        M     g r   )r   r   r   r   s     r*   test_sc_diffTestOverwrite.test_sc_diffv  r   r,   c                 \    U R                    H  nU R                  [        USSS5        M     g r   )r   r   r   r   s     r*   test_ss_diffTestOverwrite.test_ss_diffz  r   r,   c                 \    U R                    H  nU R                  [        USSS5        M     g r   )r   r   r   r   s     r*   test_cc_diffTestOverwrite.test_cc_diff~  r   r,   c                 Z    U R                    H  nU R                  [        USS5        M     g )Nr   r   )r   r   r   r   s     r*   
test_shiftTestOverwrite.test_shift  s"    [[ENN5%4 !r,   r   N)r   r   r   r   __doc__rx   float32float64real_dtypes	complex64
complex128r   r   r   r   r   r   r   r   r   r   r   r   r   r   r,   r*   r   r   G  sf    )::rzz*KBLL"--88FD	4/782<<<<5r,   r   )r   Nr8   ),	__usage__numpy.testingr   r   r   scipy.fftpackr   r   r   r	   r
   r   r   r   r   r   r   r   r   numpyrx   r   r   r   r   r   r   r   r   numpy.randomr   r+   r2   r4   r6   r9   r<   r>   r   r   r   r   r   r   r   r,   r*   <module>r     s   	6 6- - - -  < < <  	&m@ m@` F  FFG G)> )>X, ,,A A"=5 =5r,   