
    g                     z    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d	S )
    )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           d S )Nc              3   `   K   | ])}g t          d d          gfD ]} ||          |k    V  *dS )      Nr   .0tflss      `/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/discrete/tests/test_transforms.py	<genexpr>z test_fft_ifft.<locals>.<genexpr>	   sf       > >')HQNN+;&<> > " r"vv| > > > > > > >          i      r         r   	   xT)realc                  "    t                     S N)r	   r(   s   r   <lambda>ztest_fft_ifft.<locals>.<lambda>   s    c!ff r   c                  H    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_ifftr8      sT    > >sDk > > > > > > > > 
eAhhBr$q''z!|a$q''!)A+-!3Q1W!DGG)A+!#d1ggaik12!DGG)A+Q	!+ac1!A#gr$q''z!|a'!A#-Q	!;=C
 r77c>>>>99afXaZ''''
ac'1qs7A!G	$BQNNQqS !HROO"3Xa^^a5GaPQcRD88tt99afX%%%%sA
9nnnn%%%
:====>>>>>r   c                     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           d S )Ni ;iʚ;   c              3   H   K   | ]}g d gfD ]} ||          |k    V  dS )r   N )r   r   r   ps      r   r   z test_ntt_intt.<locals>.<genexpr>'   s_       5 52+-s)5 5$& r"ayyB 5 5 5 5 5 5 5r   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!Qii r   c                  J    t          dz  ddz  z  ddz  z  g           S r/   r   rA   s   r   r-   ztest_ntt_intt.<locals>.<lambda>5   s.    tQ!Qq!tVQq!tV$<a@@ r   c                  $    t                     S r+   rC   )r   r=   s   r   r-   ztest_ntt_intt.<locals>.<lambda>6   s    tB{{ r   c                  (    t          g d           S )N)g333333?g @g      @r@   r=   s   r   r-   ztest_ntt_intt.<locals>.<lambda>7       s???A66 r   c                  (    t          g d           S )N)r   r   r   r@   )qs   r   r-   ztest_ntt_intt.<locals>.<lambda>8       s999a00 r   c                  (    t          g d           S )N)r!   r   r#   r@   )rs   r   r-   ztest_ntt_intt.<locals>.<lambda>9   rJ   r   c                  (    t          g d           S )N)g      ?g       @g      @r@   rF   s   r   r-   ztest_ntt_intt.<locals>.<lambda>:   rG   r   )
r0   r   r   r1   r2   r   r   r   r4   r5   )nlsr   r=   rI   rL   r(   s    @@@@@r   test_ntt_inttrO       s    	AAA 5 5 5 5#t 5 5 5 5 5 5 5 5 
eAhhB! ! !C r1::Q<<2A:%%%%
ac'1qs7A!G	$BsD!!!A
9'''''(((
:@@@@@AAA
:*****+++
:6666777
:0000111
:0000111
:66667777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          |           d t          |           D             k    sJ d S )Nc              3   `   K   | ])}g t          d d          gfD ]} ||          |k    V  *dS )r#   r!   Nr   r   s      r   r   z"test_fwht_ifwht.<locals>.<genexpr>>   sf       : :#%A'7"8: : r"vv| : : : : : : :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    d1gg r   c                     g | ]}|d z  S )   r<   )r   r(   s     r   
<listcomp>z#test_fwht_ifwht.<locals>.<listcomp>j   s    ///!///r   )r0   r   r   r   r3   Halfr   r   r   r   r4   r1   r2   )r   r6   r7   yr(   s       @r   test_fwht_ifwhtr^   =   s    : :tUm : : : : : : : : 
*	)	)B
F
F
FC88s????::qvhqj((((
&1Q3,A1,hq!nnqs.BHQPQNNT\]^`aTbTb	cBS#1Q&S(9(9AaC(?!SAQAQS[\_adSeSehiSicQqSU"HT3$7$7!A#$=xc?R?RT\]`beTfTfijTjlD 99::qvhqj((((5>>DAq
9oooo&&&
QqS!AqD&!AqD&	!BqD1QT6!8OaA..	
A!Q$q1Q3	
A!Q$q1Xa^^++	1qAvax!A#D
 99::
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 88s????::qvhqj((((	eAhhB88//U2YY/////////r   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           d S )Nc              3   d   K   | ]+}d D ]&}t           t          fD ]} |||          |k    V  ',dS ))TFsubsetN)r   r   )r   r   rb   r   s       r   r   z(test_mobius_transform.<locals>.<genexpr>n   s       H H}H H5;+-EFH H r"V$$$* H H H H H H H Hr   r#   r!   zw x y zFra   r    r   r   r   rZ   r&                iQ     C   G   ii  E   M   r   c                  &    t           d          S )NTra   )r   r,   s   r   r-   z'test_mobius_transform.<locals>.<lambda>   s    .q>>> r   c                  &    t           d          S )NFra   )r   )r]   s   r   r-   z'test_mobius_transform.<locals>.<lambda>   s    6qGGG r   )
r0   r   r   r   r   r   r   r3   r   r4   )wzr   mlsr(   r]   s       @@r   test_mobius_transformrr   m   s    H HA/0H H H H H H H H ##JAq!QQF##1q5z1111#QAJ//Aq69999QF5111a!eQZ????#QUAJu===!QGGGGQ1aL))aQAq1uqy1}-MMMMM#QAq1ua!eai!m$DEE1aL   Q1aL777UQY]AE1q5!,- - - -#QUQY]AE1q5!$DUSSS1aL    1a..(1a..(1a..!Xa^^aPQc=Q	RBAq>>8B++Xb"-=-=xc?R?RQNNQqS (2r"2"2QqS"8(2r:J:JQqS:PT3!A#%'C B3&&&&#C((B!&!O;;;;D#1$hr1ooxA8TUWX>>\]^_\_K_abdegh
iCBu---4444#C666"xz/IIII	CRCBAq>>8B++Xb"-=-=xc?R?R
SCB3&&&&#C((B....D#Q"a!
DCBu---4444#C666"<<<<
9>>>>???
9GGGGHHHHHr   N)(sympy.functions.elementary.miscellaneousr   
sympy.corer   r   r   r   r   sympy.discreter	   r
   r   r   r   r   r   r   sympy.testing.pytestr   r8   rO   r^   rr   r<   r   r   <module>rw      s   9 9 9 9 9 9 6 6 6 6 6 6 6 6 6 6 6 6 6 60 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ' ' ' ' ' '? ? ?08 8 8:-0 -0 -0`-I -I -I -I -Ir   