
    \h                     x    S SK Jr  S SKJrJr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  S SKJr  S rS rS rS rg	)
    )sqrt)SSymbolsymbolsIRational)fftifftnttinttfwhtifwhtmobius_transforminverse_mobius_transform)raisesc                  L  ^ [        S [        [        4 5       5      (       d   e[        [	        S5      5      n SS[        S5      -  S-  S-
  [        S5      [        -  S-  -
  S[        -  -   SS[        -  -   SS	[        S5      -  S-  -   S[        -  -
  [        S5      [        -  S-  -
  S
SS	[        S5      -  S-  -   [        S5      [        -  S-  -   S[        -  -   SS[        -  -
  S[        S5      -  S-  S-
  S[        -  -
  [        S5      [        -  S-  -   /n[        U 5      U:X  d   e[        U5      U [        R                  /S-  -   :X  d   eSS[        -  -   SS[        -  -   SS[        -  -   /n [        SS5      S[        -  -   [        [        SS5      -  [        SS5      [        -   S[        S-  -
  /n[        U 5      U:X  d   e[        U5      U [        R                  /-   :X  d   e[        SSS9m[        [        U4S j5        [        [        U4S j5        g )Nc              3   f   #    U  H'  n/ [        S S5      /4  H  nU" U5      U:H  v   M     M)     g7f)      Nr   .0tflss      \/var/www/auris/envauris/lib/python3.13/site-packages/sympy/discrete/tests/test_transforms.py	<genexpr> test_fft_ifft.<locals>.<genexpr>	   s8      >k')HQN+;&< "v|&< k   /1      i      r         r   	   xT)realc                     > [        T 5      $ N)r	   r)   s   r   <lambda>test_fft_ifft.<locals>.<lambda>   s	    c!f    c                  @   > [        T ST -  ST S-  -  ST S-  -  /5      $ Nr!   r   r"   )r
   r-   s   r   r.   r/      s'    tQ!Qq!tVQq!tV$<=r0   )allr	   r
   listranger   r   r   Zeror   r   r   	TypeError
ValueError)r   flsiflsr)   s      @r   test_fft_ifftr;      s    >sDk > > > > > 
eAhBr$q'z!|a$q'!)A+-!3Q1W!DG)A+!#d1gaik12!DG)A+Q	!+ac1!A#gr$q'z!|a'!A#-Q	!;=C
 r7c>>9affXaZ'''
ac'1qs7A!G	$BQNQqS !HRO"3Xa^a5GaPQcRD8tt9affX%%%sA
9n%
:=>r0   c                  d  ^^^^^ SmSmSm[        U4S j[        [        4 5       5      (       d   e[        [	        S5      5      m/ SQn [        TT5      U :X  d   e[        U T5      TS/S-  -   :X  d   eS	S[
        -  -   S
S[
        -  -   SS[
        -  -   /m[        SSS9m[        [        UU4S j5        [        [        UU4S j5        [        [        UU4S j5        [        [        U4S j5        [        [        U4S j5        [        [        U4S j5        [        [        U4S j5        g )Ni ;iʚ;   c              3   V   >#    U  H  n/ S /4  H  nU" UT5      U:H  v   M     M      g7f)r   N )r   r   r   ps      r   r    test_ntt_intt.<locals>.<genexpr>'   s3      52+-s)B "ayB*3 s   &)r   )r    i"T/i,ii;i@2i|{i r   r!   r&   r   r"   r   r)   T)integerc                     > [        TT 5      $ r,   r   r@   r)   s   r   r.   test_ntt_intt.<locals>.<lambda>4   s    c!Qir0   c                  B   > [        TST-  STS-  -  STS-  -  /T 5      $ r2   r   rE   s   r   r.   rF   5   s)    tQ!Qq!tVQq!tV$<a@r0   c                     > [        T T5      $ r,   rH   )r   r@   s   r   r.   rF   6   s    tB{r0   c                      > [        / SQT 5      $ )N)g333333?g @g      @rD   r@   s   r   r.   rF   7       s?A6r0   c                      > [        / SQT 5      $ )N)r   r   r   rD   )qs   r   r.   rF   8       s9a0r0   c                      > [        / SQT 5      $ )N)r"   r   r$   rD   )rs   r   r.   rF   9   rO   r0   c                      > [        / SQT 5      $ )N)g      ?g       @g      @rD   rK   s   r   r.   rF   :   rL   r0   )
r3   r   r   r4   r5   r   r   r   r7   r8   )nlsr   r@   rN   rQ   r)   s    @@@@@r   test_ntt_inttrT       s    	AAA 5#t 5 5 5 5 5 
eAhB!C r1:Q<2A:%%%
ac'1qs7A!G	$BsD!A
9'(
:@A
:*+
:67
:01
:01
:67r0   c                  2  ^ [        S [        [        4 5       5      (       d   e/ SQn / SQn[        U 5      U:X  d   e[        U5      U [        R                  /S-  -   :X  d   e[        R
                  S[        -  -   [        SS5      S[        -  -   [        SS	5      S	[        -  -   [        SS5      [        S
S5      /n [        SS5      [        S-  S-  -   [        SS5      [        S-  -   [        SS5      [        SS5      [        -
  [        SS5      [        S-  S-  -   [        SS5      [        S-  -   [        SS5      [        SS5      [        -
  /n[        U 5      U:X  d   e[        U5      U [        R                  /S-  -   :X  d   e[        S5      u  mn[        [        U4S j5        TST-  STS-  -  STS-  -  /n TS-  STS-  -  S-  -   T[        SS5      -  -   TS-  * STS-  -  S-  -   TS-  -
  TS-  * STS-  -  S-  -
  T[        SS5      -  -   TS-  STS-  -  S-  -
  TS-  -
  /n[        U 5      U:X  d   e[        U5      U :X  d   eTUTS-  US-  TU-  /n TS-  TU-  -   T-   US-  -   U-   TS-  TU-  -   T-   US-  -
  U-
  TS-  * TU-  -   T-   US-  -
  U-   TS-  * TU-  -   T-   US-  -   U-
  TS-  TU-  -
  T-   US-  -   U-   TS-  TU-  -
  T-   US-  -
  U-
  TS-  * TU-  -
  T-   US-  -
  U-   TS-  * TU-  -
  T-   US-  -   U-
  /n[        U 5      U:X  d   e[        U5      U [        R                  /S-  -   :X  d   e[        [        S	5      5      n [        U 5      [        U 5       Vs/ s H  oDS-  PM	     sn:X  d   eg s  snf )Nc              3   f   #    U  H'  n/ [        S S5      /4  H  nU" U5      U:H  v   M     M)     g7f)r$   r"   Nr   r   s      r   r   "test_fwht_ifwht.<locals>.<genexpr>>   s8      :m#%A'7"8B "v|"8 mr   )   iA  i  i  i8  5   )i3  i  iEiliY  i  iBi{jr!   r   r$   r"   r   r   r'   i  i        r&   k      iiizx yc                     > [        T 5      $ r,   )r   r-   s   r   r.   !test_fwht_ifwht.<locals>.<lambda>P   s	    d1gr0      )r3   r   r   r   r6   Halfr   r   r   r   r7   r4   r5   )r   r9   r:   yr)   s       `r   test_fwht_ifwhtrc   =   s    :tUm : : : : : 
*B
FC8s??:qvvhqj(((
&&1Q3,A1,hq!nqs.BHQPQNT\]^`aTb	cBS#1Q&S(9AaC(?!SAQS[\_adSehiSicQqSU"HT3$7!A#$=xc?RT\]`beTfijTjlD 9:qvvhqj(((5>DAq
9o&
QqS!AqD&!AqD&	!BqD1QT6!8OaA..	
A!Q$q1Q3	
A!Q$q1Xa^++	1qAvax!A#D
 9:
Q1adAaC	 Ba4!A#:>AqD 1$	1qs
QA!	
A!a!Q$"	
A!a!Q$"	1qs
QA!	1qs
QA!	
A!a!Q$"	
A!a!Q$"$C 8s??:qvvhqj(((	eAhB8U2Y/Y!Y/////s   =Nc                    ^^ [        S / [        SS5      /4 5       5      (       d   e[        S5      u  n mmn[        TT/5      TTT-   /:X  d   e[	        TTT-   /5      TT/:X  d   e[        TT/SS9TT-   T/:X  d   e[	        TT-   T/SS9TT/:X  d   e[        U TTU/5      X T-   U T-   U T-   T-   U-   /:X  d   e[	        X T-   U T-   U T-   T-   U-   /5      U TTU/:X  d   e[        U TTU/SS9U T-   T-   U-   TU-   TU-   U/:X  d   e[	        U T-   T-   U-   TU-   TU-   U/SS9U TTU/:X  d   e[        SS5      [        S	S5      [        S
S5      S[        S
S5      S[
        -  -   /n[        SS5      [        SS5      [        SS5      [        SS5      [        SS5      S[
        -  -   [        SS5      S[
        -  -   [        SS5      S[
        -  -   [        SS5      S[
        -  -   /n[        U5      U:X  d   e[	        U5      U[        R                  /S-  -   :X  d   e[        SS5      S[
        -  -   [        SS5      [        SS5      S[        S
S5      S[
        -  -   SSS/n[        USS9U:X  d   e[	        USS9U[        R                  /S-  -   :X  d   eUS S n[        SS5      [        SS5      [        SS5      [        SS5      /n[        U5      U:X  d   e[	        U5      U:X  d   e[        SS5      [        SS5      [        SS5      S/n[        USS9U:X  d   e[	        USS9U:X  d   e[        [        U4S j5        [        [        U4S j5        g )Nc              3   p   #    U  H,  nS   H"  n[         [        4  H  nU" XS9U:H  v   M     M$     M.     g7f))TFsubsetN)r   r   )r   r   rg   r   s       r   r   (test_mobius_transform.<locals>.<genexpr>n   sA      H0B}V+-EFB "$*F +?L +0s   46r$   r"   zw x y zFrf   r!   r   r   r   r`   r'                iQ     C   G   ii  E   M   r   c                     > [        T SS9$ )NTrf   )r   r-   s   r   r.   'test_mobius_transform.<locals>.<lambda>   s    .q>r0   c                     > [        T SS9$ )NFrf   )r   )rb   s   r   r.   rt      s    6qGr0   )
r3   r   r   r   r   r   r   r6   r   r7   )wzr   mlsr)   rb   s       @@r   test_mobius_transformry   m   s    HA/0H H H H H #JAq!QQF#1q5z111#QAJ/Aq6999QF51a!eQZ???#QUAJu=!QGGGQ1aL)aQAq1uqy1}-MMMM#QAq1ua!eai!m$DE1aL  Q1aL7UQY]AE1q5!,- - -#QUQY]AE1q5!$DUS1aL   1a.(1a.(1a.!Xa^aPQc=Q	RBAq>8B+Xb"-=xc?RQNQqS (2r"2QqS"8(2r:JQqS:PT3!A#%'C B3&&&#C(B!&&!O;;;D#1$hr1oxA8TUWX>\]^_\_K_abdegh
iCBu-444#C6"xz/III	CRBAq>8B+Xb"-=xc?R
SCB3&&&#C(B...D#Q"a!
DCBu-444#C6"<<<
9>?
9GHr0   N)(sympy.functions.elementary.miscellaneousr   
sympy.corer   r   r   r   r   sympy.discreter	   r
   r   r   r   r   r   r   sympy.testing.pytestr   r;   rT   rc   ry   r?   r0   r   <module>r~      s6    9 6 60 0 0 '?08:-0`-Ir0   