
    wg                     r    d dl mZ d dl mZ ej                  j                  Zd Zd Zd Zd Zd Z	d Z
d	 Zy
)    )mp)libmpc                     dt         _        t        j                  t         j                        } t        j                  dt         j
                  z        5  t        j                  dd      }g dd}}}	 |t         j                  ||z  z  z  }|dz  }|j                  |       |j                  |      \  }}|| k  rn|dkD  rt        d	      Z	 d d d        t        j                  d
t        j                  |       z        } t        t         j                  dz  dz  z
        }|| k  sJ t        j                  d dt         j                   gdd      }t        ||z
        }|| k  sJ y # 1 sw Y   xY w)N      levinumethodvariantr        iteration limit exceeded?   c                     d| | z  z  S Nr    ns    \/home/mcse/projects/flask/flask-venv/lib/python3.12/site-packages/mpmath/tests/test_levin.py<lambda>ztest_levin_0.<locals>.<lambda>   s    !QU)     r   levin_variant)r   dpsmpfeps	extraprecprecr   oneappendupdate_psumRuntimeErrorexplogabspinsuminf)	r   LSsr   veerrws	            r   test_levin_0r2      sE   BF
&&.C	a"''k	" 
HHHg5aa11q5!!AFAHHQK==#DAq3w4x|,FGG  
H &&rvvc{"
#C
a"%%1*q. 
!C99
#a[7TWXA
a!e*C99!
H 
Hs   A9E++E4c                     dt         _        t        j                  t         j                        } t        j                  dt         j
                  z        5  t        j                  dd      }g d}}	 t        j                  |      dz  }|dz  }|j                  |       |j                  |      \  }}|| k  rn|dkD  rt        d	      Y	 d d d        t        j                  d
t        j                  |       z        } t        t        j                  d      z
        }|| k  sJ t        j                  d dt         j                  gdd      }t        ||z
        }|| k  sJ y # 1 sw Y   xY w)Nr   r   r   r.   r
   r          @      @r   r   r   y             c                     | dz  S )Nr4   r   r   s    r   r   ztest_levin_1.<locals>.<lambda>3   s
    !- r   r   )r   r   r   r   r   r    r   r"   updater$   r%   r&   r'   zetar)   r*   )	r   r+   Ar   r-   r.   r/   r0   r1   s	            r   test_levin_1r9   "   s7   BF
&&.C	a"''k	" 
HHHg511q	f%AFAHHQK88A;DAq3w4x|,FGG  
H &&rvvc{"
#C
a"''%. 
!C99
'!RVVwX[\A
a!e*C99!
H 
Hs   A6E''E0c                    	 dt         _        t        j                  d      	t        j                  t         j                        } t        j                  dt         j
                  z        5  t        j                  dd      }d}	 d	|z  t        j                  |      z  	| z  z  }|j                  |      \  }}|dz  }|| k  rn|d
kD  rt        d      R	 d d d        t        j                  dt        j                  |       z        } t        j                  	fddt         j                  g      }t        |z
        }|| k  sJ t        j                  	fddt         j                  gdd      }|| k  sJ y # 1 sw Y   xY w)Nr   
   r   siditr
   r   r   r   r   r   c                 B    t        j                  |        d| z  z   z  S r   r   r%   xzs    r   r   ztest_levin_2.<locals>.<lambda>G   s    bffaRj!AaC%0 r   c                 H    d| z  t        j                  |       z  |  z  z  S )Nr>   r   facr   rC   s    r   r   ztest_levin_2.<locals>.<lambda>L   s#    2!)bffQi/!); r   r   )r   r   r   r   r   r    r   rF   stepr$   r%   r&   quadr*   r'   r)   )
r   r+   r   r-   r.   r/   exactr0   r1   rC   s
            @r   test_levin_2rK   7   sJ   BFffRjA
&&.C	a"''k	" 	HHHf4a"&&)#aQBi/A66!9DAqFA3w4x|,FGG 
 	H &&rvvc{"
#CGG0!BFF<E a%i.C99
;a[SYknoA99#	H 	Hs   +A-E>>Fc                  \  
 dt         _        t        j                  d      
t        j                  t         j                        } t        j                  dt         j
                  z        5  t        j                  dd      }d\  }}	 |
 |z  t        j                  d	|z        z  t        j                  |      t        j                  d|z        z  d	|z  z  z  z  }|dz  }|j                  |      \  }}|| k  rn|d
kD  rt        d      	 d d d        t        j                  dt        j                  |       z        } t        j                  
fddt         j                  g      dz  t        j                  dt         j                  z        z  }t!        |z
        }|| k  sJ t        j"                  
fddt         j                  gdddt         j
                  z  dgt%        d
      D cg c]  }d c}z         }	t!        ||	z
        }|| k  sJ y # 1 sw Y   xY wc c}w )Nr   r      r   r=   r
   )r   r   r      r   r   皙?c                 N    t        j                  |  | z  dz  | dz  z  z
        S )Nr   rN   r@   rA   s    r   r   ztest_levin_3.<locals>.<lambda>^   s'    bffqb1fqj1qAv:&=> r   r   c                      | z  t        j                  d| z        z  t        j                  |       t        j                  d| z        z  d| z  z  z  S )NrN   r   rE   rG   s    r   r   ztest_levin_3.<locals>.<lambda>c   sH    A2'BFF1q5M1RVVAYA5NRSWXRX5YZ r      )r   r   workprecsteps)r   r   r   r   r   r    r   rF   	step_psumr$   r%   r&   rI   r*   sqrtr(   r'   r)   xrange)r   r+   r   r-   r.   r/   rJ   r0   rB   r1   rC   s             @r   test_levin_3rX   O   s!   BFffQiA
&&.C	ai	  	HHHg511"q266!a%=(BFF1Iq1u,Ea,PQQAFA;;q>DAq3w4x|,FGG 
 	H &&rvvc{"
#CGG>266
KaORTRYRYZ[^`^c^cZcRddE a%i.C99
Z]^`b`f`f\gry  LO  \]  ^`  ^e  ^e  \e  pq  or  AG  HL  AM  uN  |}  vw  uN  oN  	OA
a!e*C99%	H 	H  uNs   +B%H3	H)H&c            	         dt         _        t        j                  t         j                        5  t        j                  d      dz  t        j
                  fddt         j                  gd      dz  z
  } t        | t         j                  z
        dk  sJ 	 d d d        t        j                  d	t        j                  t         j                        z        }t        j
                  d
 dt         j                  gd      } t        | t        j                  d      z
        |k  sJ dfd}t        j
                  |dt         j                  gdt        d      D cg c]  }d c}      }t        j                  dt        j                  d      z  dt        j                  d      z  dt        j                  d      z        }t        ||z
        |k  sJ y # 1 sw Y   GxY wc c}w )Nr   r;   ic                     | dz    z  S r   r   rG   s    r   r   z!test_levin_nsum.<locals>.<lambda>l   s    aAaC&k r   r   l)r   g|=rO   c                     d| dz
  z  | z  S )Nr>   r   r   r   s    r   r   z!test_levin_nsum.<locals>.<lambda>q   s    21+/ r   r<   r   y       @      ?c                 H   t        j                  dt        j                  d      z  |       t        j                  dt        j                  d      z  |       z  | z  z  t        j                  dt        j                  d      z  |       t        j                  |       z  z  S )Nr      rN   r   )r   rfr   rF   rG   s    r   r   z!test_levin_nsum.<locals>.<lambda>u   sy    "%%BFF1Iq)BEE!bffQi-,CCadJbeeTUXZX^X^_`XaTacdNehjhnhnophqNqr r   r   r   r   )r   rT   r^   rN   )r   r   r   r    r   r)   r*   r'   eulerr%   r&   r   rW   hyp2f1)ar   frB   r.   rJ   rC   s         @r   test_levin_nsumrd   g   sc   BF	bgg	 )FF2J3GG)Arvv;EAM1rxx< 5((()
 &&rvvbff~%
&C
)Arvv;HAq266!9}###ArA
Arvv;vd|:T!2:TUAIIa"&&)mQ]Aq	M1EEuqy>C) ) ;Us   A+G!"	G.!G+c                     dt         _        t        j                         } g dd}}}	 |d|z   t         j                  z  ||z  z  z  }|dz  }|j	                  |       | j                  |      \  }}|t         j                  k  rn|dkD  rt        d      ot        j                  dt        j                  t         j                        z        }t        |t         j                  dz  d	z  z
        }||k  sJ y )
Nr   r   r   r>   r   r   r   r      )r   r   	cohen_altr!   r"   r#   r   r$   r%   r&   r'   r(   )ACr,   r-   r   r.   r/   r   r0   s           r   test_cohen_alt_0ri   z   s    BF	B!Q!qA
	qy\BFF"a!e,,	Q	~~a 1rvv:t8<(BCC  &&rvvbff~%
&C
a"%%1*r/!
"C99r   c                     dt         _        g } t        j                         }d}	 | j                  t        j                  dt         j
                  d|z  dz
  z  z                | j                  t        j                  dt         j
                  d|z  z  z                 |dz  }|j                  |       \  }}|t         j                  k  rn|dkD  rt        d      t        j                  |      }t        |dz
        }|dk  sJ y )Nr   r   r   r   r   g?g-q=)r   r   rg   r"   loggammar!   r6   r   r$   r%   r'   )r8   rh   r   r.   r/   r0   s         r   test_cohen_alt_1rl      s    BF
A	B	A
	"++a"&&AEAI"6678	"++a"&&AE"22334	Qyy|1rvv:t8<(BCC  	q	A
a""
#C;;r   N)mpmathr   r   backendrW   r2   r9   rK   rX   rd   ri   rl   r   r   r   <module>ro      s?     			**00 & r   