
    \h*                         S SK JrJrJrJrJrJr  S SKJr  S SK	J
r
  S SKJr  S SKJr  S SKJrJr  S SKJr  S SKJrJr  S S	KJr  S S
KJr  S rS rS rS rS rS r g)    )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                  z    [        [        S5       V s/ s H  n [        U 5      PM     sn 5      / SQ:X  d   eg s  sn f )N   )   r   )r   ranger   )ks    W/var/www/auris/envauris/lib/python3.13/site-packages/sympy/concrete/tests/test_guess.py"test_find_simple_recurrence_vectorr      s9    (#(9-9aYq\9-/2=> > >-s   8c                  4   [        S5      n [        S5      n[        [        S5       Vs/ s H  n[	        U5      PM     sn5      U " U5      * U " US-   5      -
  U " US-   5      -   :X  d   e[        S5      n[        S5      n/ SQn [        S5       H+  o R                  SU S	   -  S
U S   -  -
  SU S   -  -   5        M-     [        XUS9SU" U5      -  S
U" US-   5      -  -   SU" US-   5      -  -
  U" US
-   5      -   :X  d   e[        / SQ5      S:X  d   eg s  snf )Nanr   r      )r   r   r         r         )ANi)r   r   r    J   r   r"   r   r   r   U      r!   ?   r   )r
   r   r   r   r   append)r   r   r   fis        r   test_find_simple_recurrencer/      s+   AsA!r"CA9Q<"CD	
1!a%1QU8#% % % 	AsAA2Y1R51R51R5!89Y!!A.
1Q4!Aa!eH*q1q5z)Aa!eH46 6 6! #8 9<=> > > #Ds   Dc                      SSK Jn JnJn  [	        U " US-  5      5      [
        R                  :X  d   e[	        U" S5      5      [        SS5      :X  d   e[	        U" S5      5      [        SS5      :X  d   e[	        USS	9[        S
S5      :X  d   eg )Nr   cospimpfr"   z0.333333333333333r   z-0.333333333333333r      )maxcoeffic  q   )mpmathr2   r3   r4   r   r   Halfr   r1   s      r   test_rationalizer:   )   s    ##s2a4y!QVV+++s./0HQNBBBs/01Xb!_DDDrc*hsC.@@@@    c                      [        S5      n [        [        SS5       Vs/ s H  n[        U5      PM     sn5      SU -  S-   U S-  * U -
  S-   -  :X  d   eg s  snf )Nxr!   r    r"   r   r   )r   r   r   r   r=   r   s     r   'test_guess_generating_function_rationalr?   1   sj    sA-q"/A 09|/  %&qS1W1uqy1}$=? ? ? /s   Ac                     [        S5      n [        [        SS5       Vs/ s H  n[        U5      PM     sn5      S   SU -  S-   U S-  * U -
  S-   -  :X  d   e[        / SQ5      S   SU S	-  SU S-  -  -   S	U -  -
  S-   -  [        R
                  -  :X  d   e[        [        S
5      5      S   U [        SS5      -   SU S-  -  SU -  -
  S-   -  :X  d   e[        [        S5       Vs/ s H  n[        U5      PM     snS/S9S   SU * S-   -  :X  d   e[        [        S5       Vs/ s H  oS-   PM	     snS/S9U S-   [        U 5      -  U S-   U S-   -  S.:X  d   eg s  snf s  snf s  snf )Nr=   r!   r    ogfr"   r   r   )r   r   r!      )   |   i  i  i  iZ/  i  r*   zF[3/2, 11/2, 0, -121/2, -363/2, 121, 4719/2, 11495/2, -8712, -178717/2]   r   egf)types)rF   lgdegf)
r   r   r   r   r   r9   r   r   r   r   r>   s     r   test_guess_generating_functionrI   7   s   sA$q"&A '0l&   %',-aC!Gq!teai!m+DF F F$=??DF	
AqD1QT6MAaC!#	$qvv-/ / / %WO&Q 		A&AqD1Q3):;< < < %E"I%FIqilI%FW !A26
+ + +$59%=9ac9%=W"#a%QAEAE?KL L L& &G%=s   E$E"E#c                     [        S5      u  p[        / SQSS9[        US-   USU S-
  45      /:X  d   e[        / SQ5      [        SU S-
  5      /:X  d   e[        / SQSS	9SU S-
  -  [	        S
S5      U S-  S-  SU -  S-  -
  S-   -  -  [        [        [	        SS5      US-
  5      [        [	        SS5      US-
  5      -  [        [	        SS5      US-
  5      [        [	        SS5      US-
  5      -  -  USU S-
  45      -  /:X  d   e[        / SQ5      / :X  d   e[        S5      u  p#[        / SQX#/S9[        SUS-
  5      /:X  d   eg )Nzi0 i1)r   r         x   F)evaluater   r   )r   r      *   i  i  iT i r*   )niter      r"   r!   rO   )r   r   r   zx y)	variables)r   r   r	   r   r   )i0i1r=   ys       r   
test_guessrX   G   s   WFB#e4a"aQSVWQW9Y8ZZZZ#$BF)C(DDDD;1E	BFXb"%Qq1R46)9	*
  	?8Aq>26:?8TUWX>[]
\ < hq!nb1f5ohqRSnVX	W
 7 !R!V_	J   
 r!!!5>DA#v6?1aRSe;T: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   r/   r:   r?   rI   rX    r;   r   <module>rd      sM   
 
 , ( ' " / & Q ; 6>
> A?L Vr;   