
    g*                         d dl mZmZmZmZmZmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZ d dlmZmZ d dlmZ d dlmZmZ d d	lmZ d d
lmZ d Zd Zd Zd Zd Zd Z dS )    )find_simple_recurrence_vectorfind_simple_recurrencerationalize"guess_generating_function_rationalguess_generating_functionguess)Product)Function)Rational)S)Symbolsymbols)sympify)RisingFactorial	factorial	fibonacci)expc                  b    t          d t          d          D                       g dk    sJ d S )Nc                 ,    g | ]}t          |          S  r   .0ks     [/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/concrete/tests/test_guess.py
<listcomp>z6test_find_simple_recurrence_vector.<locals>.<listcomp>   s    ---aYq\\---       )   r    )r   ranger   r   r   "test_find_simple_recurrence_vectorr"      sK    (--599---/ /2=++> > > > > >r   c                     t          d          } t          d          }t          d t          d          D                        | |            | |dz             z
   | |dz             z   k    sJ t          d          }t          d          }g d} t          d          D ]8}|                     d	| d
         z  d| d         z  z
  d| d         z  z              9t          | ||          d ||          z  d ||dz             z  z   d	 ||dz             z  z
   ||dz             z   k    sJ t          g d          dk    sJ d S )Nanc                 ,    g | ]}t          |          S r   r   r   s     r   r   z/test_find_simple_recurrence.<locals>.<listcomp>   s    "C"C"CA9Q<<"C"C"Cr   r   r      )r   r   r         r          )ANi)r   r'   r(   J   r   r*   r   r   r'   U      r)   ?   r   )r
   r   r   r!   append)r$   r%   fir   s        r   test_find_simple_recurrencer7      s   AsA!"C"Cr"C"C"CDD	
1!a%11QU88#% % % % 	AsA		A2YY991R51R51R5!89999!!qA...
11Q44!AAa!eHH*q1q5z)AAa!eHH46 6 6 6! #8 #8 #8 9 9<=> > > > > >r   c                  j   ddl m} m}m} t	           | |dz                      t
          j        k    sJ t	           |d                    t          dd          k    sJ t	           |d                    t          dd          k    sJ t	          |d	          t          d
d          k    sJ d S )Nr   cospimpfr*   z0.333333333333333r   z-0.333333333333333r       )maxcoeffic  q   )mpmathr:   r;   r<   r   r   Halfr   r9   s      r   test_rationalizerB   )   s    ##########ss2a4yy!!QV++++ss.//00HQNNBBBBss/0011Xb!__DDDDrc***hsC.@.@@@@@@@r   c                      t          d          } t          d t          dd          D                       d| z  dz   | dz   | z
  dz   z  k    sJ d S )Nxc                 ,    g | ]}t          |          S r   r   r   s     r   r   z;test_guess_generating_function_rational.<locals>.<listcomp>3   s.     / / / 09|| / / /r   r)   r(   r*   r'   r   )r   r   r!   rD   s    r   'test_guess_generating_function_rationalrG   1   sz    sA- / /q"/ / /    %&qS1W1uqy1}$=? ? ? ? ? ?r   c                     t          d          } t          d t          dd          D                       d         d| z  dz   | dz   | z
  dz   z  k    sJ t          g d	          d         d| d
z  d| dz  z  z   d
| z  z
  dz   z  t          j        z  k    sJ t          t          d                    d         | t          dd          z   d| dz  z  d| z  z
  dz   z  k    sJ t          d t          d          D             dg          d         d|  dz   z  k    sJ t          d t          d          D             dg          | dz   t          |           z  | dz   | dz   z  dk    sJ d S )NrD   c                 ,    g | ]}t          |          S r   r   r   s     r   r   z2test_guess_generating_function.<locals>.<listcomp>9   s.     & & & '0ll & & &r   r)   r(   ogfr*   r'   r   )r   r'   r)      )   |   i  i  i  iZ/  i  r2   zF[3/2, 11/2, 0, -121/2, -363/2, 121, 4719/2, 11495/2, -8712, -178717/2]   c                 ,    g | ]}t          |          S r   )r   r   s     r   r   z2test_guess_generating_function.<locals>.<listcomp>A   s    %F%F%Fqill%F%F%Fr   r   egf)typesc                     g | ]}|d z   S )r   r   r   s     r   r   z2test_guess_generating_function.<locals>.<listcomp>C   s    %=%=%=aac%=%=%=r   )rP   lgdegf)r   r   r!   r   rA   r   r   r   rF   s    r   test_guess_generating_functionrT   7   s   sA$ & &q"& & &     %',-aC!Gq!teai!m+DF F F F$===? ??DF	
AqD1QT6MAaC!#	$qv-/ / / / %WO&Q &Q 	 		A&AqD1Q3):;< < < < %%F%FE"II%F%F%FW   !A26
+ + + +$%=%=599%=%=%=W  "#a%QAEAE?KKL L L L L Lr   c                  N   t          d          \  } }t          g dd          t          |dz   |d| dz
  f          gk    sJ t          g d          t          d| dz
            gk    sJ t          g dd	          d| dz
  z  t	          d
d          | dz  dz  d| z  dz  z
  dz   z  z  t          t          t	          dd          |dz
            t          t	          dd          |dz
            z  t          t	          dd          |dz
            t          t	          dd          |dz
            z  z  |d| dz
  f          z  gk    sJ t          g d          g k    sJ t          d          \  }}t          g d||g          t          d|dz
            gk    sJ d S )Nzi0 i1)r   r'         x   F)evaluater   r'   )r   r'      *   i  i  iT i r2   )niter      r*   r)   rZ   )r   r   r'   zx y)	variables)r   r   r	   r   r   )i0i1rD   ys       r   
test_guessrc   G   s   WFB###e444a"aQSVWQW9Y9Y8ZZZZZ###$$BF)C)C(DDDDD;;;1EEE	BFXb"%%Qq1R46)9	*
  	?8Aq>>26::?8TUWX>>[]
\ < < hq!nnb1f55ohqRSnnVX	W
 7 7 !R!V_ 	J    
 r!!!!5>>DAq###1v666?1aRSe;T;T:UUUUUUUr   N)!sympy.concrete.guessr   r   r   r   r   r   sympy.concrete.productsr	   sympy.core.functionr
   sympy.core.numbersr   sympy.core.singletonr   sympy.core.symbolr   r   sympy.core.sympifyr   (sympy.functions.combinatorial.factorialsr   r   %sympy.functions.combinatorial.numbersr   &sympy.functions.elementary.exponentialr   r"   r7   rB   rG   rT   rc   r   r   r   <module>rn      st  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 , + + + + + ( ( ( ( ( ( ' ' ' ' ' ' " " " " " " / / / / / / / / & & & & & & Q Q Q Q Q Q Q Q ; ; ; ; ; ; 6 6 6 6 6 6> > >
> > > A A A? ? ?L L L V V V V Vr   