Ë
    óÿæiâ  ã                   ó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    úl/Volumes/fast/ai/experiments/voice-extract-mac/.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      s:  € Ø„B„FÜ
�&‰&”—‘‹.€CÜ	�‰�aœ"Ÿ'™'‘kÕ	"Ü�H‰H˜g°Ô5ˆØ�a˜ˆaˆ1ˆØØ”—‘˜1˜q™5Ñ!Ñ!ˆAØ�‰FˆAØ�H‰H�QŒKØ—=‘= Ó#‰DˆAˆqØ�3ŠwØØ�4Šxœ|Ð,FÓGÐGð ð ÷ 
#ô �&‰&�”r—v‘v˜c“{Ñ"Ó
#€CÜ
ˆa”"—%‘%˜1‘*˜q‘.Ñ Ó
!€CØ�Š9Ðˆ9Ü
�‰Ñ# a¬¯© [¸7ÐTWÔX€AÜ
ˆa�!‰e‹*€CØ�Š9Ð‰9÷! 
#Ð	"ú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   "   s,  € Ø„B„FÜ
�&‰&”—‘‹.€CÜ	�‰�aœ"Ÿ'™'‘kÕ	"Ü�H‰H˜g°Ô5ˆØ�1ˆ1ˆØÜ—‘�q“	˜fÑ%ˆAØ�‰FˆAØ�H‰H�QŒKØ—8‘8˜A“;‰DˆAˆqØ�3ŠwØØ�4Šxœ|Ð,FÓGÐGð ð ÷ 
#ô �&‰&�”r—v‘v˜c“{Ñ"Ó
#€CÜ
ˆa”"—'‘'˜%“.Ñ Ó
!€CØ�Š9Ðˆ9Ü
�‰Ñ'¨!¬R¯V©V¨¸wÐX[Ô\€AÜ
ˆa�!‰e‹*€CØ�Š9Ð‰9÷! 
#Ð	"ú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   ø€ œbŸf™f a R›j¨!¨A¨a©C©%Ò0r   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 !™)¤b§f¡f¨Q£iÑ/°!¸¸±)Ò;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   s?  ø€ à„B„FÜ‡f�fˆRƒj€AÜ
�&‰&”—‘‹.€CÜ	�‰�aœ"Ÿ'™'‘kÕ	"Ü�H‰H˜f°Ô4ˆØˆØØ�a‘œ"Ÿ&™& ›)Ñ# a¨Q¨B¡iÑ/ˆAØ—6‘6˜!“9‰DˆAˆqØ�‰FˆAØ�3ŠwØØ�4Šxœ|Ð,FÓGÐGð ð
 ÷ 
#ô �&‰&�”r—v‘v˜c“{Ñ"Ó
#€CÜ�G‰GÓ0°!´B·F±F°Ó<€Eô ˆa�%‰i‹.€CØ�Š9Ðˆ9Ü
�‰Ó;¸aÄÇÁ¸[ÐSYÐknÔo€AØ�Š9Ð‰9÷# 
#Ð	"ú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%   ø€ œbŸf™f q b¨1¡f¨q¡j°1°q¸A±v±:Ñ&=Ô>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   sF   ø€ ˜A˜2 ™'¤B§F¡F¨1¨q©5£MÑ1´R·V±V¸A³YÄÇÁÈÈAÉÃÑ5NÐRSÐWXÑRXÑ5YÒZr   é   )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$  ø€ Ø„B„FÜ‡f�fˆQƒi€AÜ
�&‰&”—‘‹.€CÜ	�‰�aœŸ™‘iÕ	 Ü�H‰H˜g°Ô5ˆØ‰ˆˆ1ØØ�1�"�q‘œ2Ÿ6™6 ! a¡%›=Ñ(¬B¯F©F°1«I¼¿¹¸qÀ1¹u»Ñ,EÈÈaÉÑ,PÑQÑQˆAØ�‰FˆAØ—;‘;˜q“>‰DˆAˆqØ�3ŠwØØ�4Šxœ|Ð,FÓGÐGð ð
 ÷ 
!ô �&‰&�”r—v‘v˜c“{Ñ"Ó
#€CÜ�G‰GÓ>ÀÄ2Ç6Á6À
ÓKÈaÑOÔRT×RYÑRYÐZ[Ô^`×^cÑ^cÑZcÓRdÑd€Eô ˆa�%‰i‹.€CØ�Š9Ðˆ9Ü
�‰ÓZÐ]^Ô`b×`fÑ`fÐ\gÐryð  LOð  \]ô  ^`÷  ^eñ  ^eñ  \eð  pqð  orô  AGð  HLô  AMó  uNñ  AMð  |}ò  vwð  AMñ  uNñ  oNô  	O€AÜ
ˆa�!‰e‹*€CØ�Š9Ð‰9÷% 
!Ñ	 üò  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;   iöÿÿÿc                 ó   •— | d‰z    z  S r   r   rG   s    €r   r   z!test_levin_nsum.<locals>.<lambda>l   s   ø€ ˜a A a¡C &škr   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   sw   ø€ ”"—%‘%˜œBŸF™F 1›I™ qÓ)¬B¯E©E°!´b·f±f¸Q³i±-ÀÓ,CÑCÀaÈÁdÑJÌbÏeÉeÐTUÔXZ×X^ÑX^Ð_`ÓXaÑTaÐcdÓNeÔhj×hnÑhnÐopÓhqÑNqÒrr   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   s`  ø€ Ø„B„Fä	�‰”b—g‘gÕ	Ü�F‰F�2‹J˜3ÑˆÜ�G‰GÓ)¨A¬r¯v©v¨;ÀÔEÈÈAÉÑMˆÜ�1”r—x‘x‘<Ó  5Ò(Ð(Ñ(÷ 
ô
 �&‰&�”r—v‘vœbŸf™f“~Ñ%Ó
&€Cä
�‰Ñ)¨A¬r¯v©v¨;ÀÔH€AÜˆq”2—6‘6˜!“9‰}Ó Ò#Ð#Ð#à€AÛr€AÜ
�‰��A”r—v‘v�;¨ÄvÈdÄ|Ó:TÁ|À!º2À|Ñ:TÔU€AÜ�I‰I�aœ"Ÿ&™& ›)‘m Q¬¯©°«¡]°A¼¿¹¸q»	±MÀ1ÓE€EÜˆu�q‰y‹>˜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Ù   € Ø„B„FÜ	�‰‹€BØ�!�Qˆ!€q€AØ
Ø	��q‰yˆ\œBŸF™FÑ" a¨!¡eÑ,Ñ,ˆØ	ˆQ‰ˆØ	�‰�ŒØ�~‰~˜aÓ ‰ˆˆ1ØŒr�v‰vŠ:ØØˆtŠ8œ<Ð(BÓCÐCð ô �&‰&�”r—v‘vœbŸf™f“~Ñ%Ó
&€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à   € Ø„B„FØ
€AÜ	�‰‹€BØ	€AØ
Ø	�‰”"—+‘+˜a¤"§&¡&¨A°©E°A©IÑ"6Ñ6Ó7Ô8Ø	�‰”"—+‘+˜a¤"§&¡&¨A°©EÑ"2Ñ2Ó3Ð3Ô4Ø	ˆQ‰ˆØ�y‰y˜‹|‰ˆˆ1ØŒr�v‰vŠ:ØØˆtŠ8œ<Ð(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   