
    sg                     x    d dl mZ d dlmZmZmZmZmZ d dlm	Z	m
Z
mZmZmZmZmZmZ d dlmZ d Zd Zd Zd Zy	)
    )sqrt)SSymbolsymbolsIRational)fftifftnttinttfwhtifwhtmobius_transforminverse_mobius_transform)raisesc                  <   t        d t        t        fD              sJ t        t	        d            } ddt        d      z  dz  dz
  t        d      t        z  dz  z
  dt        z  z   ddt        z  z   dd	t        d      z  dz  z   dt        z  z
  t        d      t        z  dz  z
  d
dd	t        d      z  dz  z   t        d      t        z  dz  z   dt        z  z   ddt        z  z
  dt        d      z  dz  dz
  dt        z  z
  t        d      t        z  dz  z   g}t        |       |k(  sJ t        |      | t        j                  gdz  z   k(  sJ ddt        z  z   ddt        z  z   ddt        z  z   g} t        dd      dt        z  z   t        t        dd      z  t        dd      t        z   dt        dz  z
  g}t        |       |k(  sJ t        |      | t        j                  gz   k(  sJ t        dd      t        t        fd       t        t        fd       y )Nc              3   Z   K   | ]#  }g t        d d      gfD ]  } ||      |k(    % yw)      Nr   .0tflss      W/var/www/html/venv/lib/python3.12/site-packages/sympy/discrete/tests/test_transforms.py	<genexpr>z test_fft_ifft.<locals>.<genexpr>	   s?      >')HQN+;&<> " "v| >| >   )+      i      r         r   	   xT)realc                      t               S N)r	   r(   s   r   <lambda>ztest_fft_ifft.<locals>.<lambda>   s    c!f     c                  @    t         d z  d dz  z  d dz  z  g      S Nr    r   r!   )r
   r,   s   r   r-   ztest_fft_ifft.<locals>.<lambda>   s)    tQ!Qq!tVQq!tV$<= r.   )allr	   r
   listranger   r   r   Zeror   r   r   	TypeError
ValueError)r   flsiflsr(   s      @r   test_fft_ifftr9      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%
:=>r.   c                  L   dddt        fdt        t        fD              sJ t        t	        d            g d} t              | k(  sJ t        |       dgdz  z   k(  sJ d	dt
        z  z   d
dt
        z  z   ddt
        z  z   gt        dd      t        t        fd       t        t        fd       t        t        fd       t        t        fd       t        t        fd       t        t        fd       t        t        fd       y )Ni ;iʚ;   c              3   J   K   | ]  }g d gfD ]  } ||      |k(     yw)r   N )r   r   r   ps      r   r   z test_ntt_intt.<locals>.<genexpr>'   s:      52+-s)5$& "ayB 5 5s    #r   )r   i"T/i,ii;i@2i|{i r   r    r%   r   r!   r   r(   T)integerc                      t               S r+   r   r>   r(   s   r   r-   ztest_ntt_intt.<locals>.<lambda>4   s    c!Qi r.   c                  B    t        dz  ddz  z  ddz  z  g       S r0   r   rB   s   r   r-   ztest_ntt_intt.<locals>.<lambda>5   s+    tQ!Qq!tVQq!tV$<a@ r.   c                      t               S r+   rD   )r   r>   s   r   r-   ztest_ntt_intt.<locals>.<lambda>6   s    tB{ r.   c                       t        g d       S )N)g333333?g @g      @rA   r>   s   r   r-   ztest_ntt_intt.<locals>.<lambda>7       s?A6 r.   c                       t        g d       S )N)r   r   r   rA   )qs   r   r-   ztest_ntt_intt.<locals>.<lambda>8       s9a0 r.   c                       t        g d       S )N)r!   r   r#   rA   )rs   r   r-   ztest_ntt_intt.<locals>.<lambda>9   rK   r.   c                       t        g d       S )N)g      ?g       @g      @rA   rG   s   r   r-   ztest_ntt_intt.<locals>.<lambda>:   rH   r.   )
r1   r   r   r2   r3   r   r   r   r5   r6   )nlsr   r>   rJ   rM   r(   s    @@@@@r   test_ntt_inttrP       s     	AAA 5#t 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7r.   c                     t        d t        t        fD              sJ g d} g d}t        |       |k(  sJ t        |      | t        j                  gdz  z   k(  sJ t        j
                  dt        z  z   t        dd      dt        z  z   t        dd	      d	t        z  z   t        dd      t        d
d      g} t        dd      t        dz  dz  z   t        dd      t        dz  z   t        dd      t        dd      t        z
  t        dd      t        dz  dz  z   t        dd      t        dz  z   t        dd      t        dd      t        z
  g}t        |       |k(  sJ t        |      | t        j                  gdz  z   k(  sJ t        d      \  }t        t        fd       dz  ddz  z  ddz  z  g} dz  ddz  z  dz  z   t        dd      z  z   dz   ddz  z  dz  z   dz  z
  dz   ddz  z  dz  z
  t        dd      z  z   dz  ddz  z  dz  z
  dz  z
  g}t        |       |k(  sJ t        |      | k(  sJ |dz  |dz  |z  g} dz  |z  z   z   |dz  z   |z   dz  |z  z   z   |dz  z
  |z
  dz   |z  z   z   |dz  z
  |z   dz   |z  z   z   |dz  z   |z
  dz  |z  z
  z   |dz  z   |z   dz  |z  z
  z   |dz  z
  |z
  dz   |z  z
  z   |dz  z
  |z   dz   |z  z
  z   |dz  z   |z
  g}t        |       |k(  sJ t        |      | t        j                  gdz  z   k(  sJ t        t        d	            } t        |       t        |       D cg c]  }|dz  	 c}k(  sJ y c c}w )Nc              3   Z   K   | ]#  }g t        d d      gfD ]  } ||      |k(    % yw)r#   r!   Nr   r   s      r   r   z"test_fwht_ifwht.<locals>.<genexpr>>   s?      :#%A'7"8: "v| :| :r   )   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               S r+   )r   r,   s   r   r-   z!test_fwht_ifwht.<locals>.<lambda>P   s    d1g r.      )r1   r   r   r   r4   Halfr   r   r   r   r5   r2   r3   )r   r7   r8   yr(   s       `r   test_fwht_ifwhtr]   =   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/!/////s   /Nc                     t        d g t        dd      gfD              sJ t        d      \  } }t        g      z   gk(  sJ t	        z   g      gk(  sJ t        gd      z   gk(  sJ t	        z   gd      gk(  sJ t        | |g      | | z   | z   | z   z   |z   gk(  sJ t	        | | z   | z   | z   z   |z   g      | |gk(  sJ t        | |gd      | z   z   |z   |z   |z   |gk(  sJ t	        | z   z   |z   |z   |z   |gd      | |gk(  sJ t        dd      t        d	d      t        d
d      dt        d
d      dt
        z  z   g}t        dd      t        dd      t        dd      t        dd      t        dd      dt
        z  z   t        dd      dt
        z  z   t        dd      dt
        z  z   t        dd      dt
        z  z   g}t        |      |k(  sJ t	        |      |t        j                  gdz  z   k(  sJ t        dd      dt
        z  z   t        dd      t        dd      dt        d
d      dt
        z  z   dddg}t        |d      |k(  sJ t	        |d      |t        j                  gdz  z   k(  sJ |d d }t        dd      t        dd      t        dd      t        dd      g}t        |      |k(  sJ t	        |      |k(  sJ t        dd      t        dd      t        dd      dg}t        |d      |k(  sJ t	        |d      |k(  sJ t        t        fd       t        t        fd       y )Nc              3   f   K   | ])  }d D ]"  }t         t        fD ]  } |||      |k(    $ + yw))TFsubsetN)r   r   )r   r   ra   r   s       r   r   z(test_mobius_transform.<locals>.<genexpr>n   sU      H}H5;+-EFH "V$* H* H* Hs   /1r#   r!   zw x y zFr`   r    r   r   r   rZ   r&                iQ     C   G   ii  E   M   r   c                      t         d      S )NTr`   )r   r,   s   r   r-   z'test_mobius_transform.<locals>.<lambda>   s    .q> r.   c                      t         d      S )NFr`   )r   )r\   s   r   r-   z'test_mobius_transform.<locals>.<lambda>   s    6qG r.   )
r1   r   r   r   r   r   r   r4   r   r5   )wzr   mlsr(   r\   s       @@r   test_mobius_transformrq   m   s    HA/0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)aQAq1uqy1}-MMMM#QA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Hr.   N)(sympy.functions.elementary.miscellaneousr   
sympy.corer   r   r   r   r   sympy.discreter	   r
   r   r   r   r   r   r   sympy.testing.pytestr   r9   rP   r]   rq   r=   r.   r   <module>rv      s6    9 6 60 0 0 '?08:-0`-Ir.   