
    wgqf                         d Z ddlZddlZddlZddl efdZ ed      Z ed      Z e	d      Z
 e	d      Z e	d      Zd	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zy)a  
Limited tests of the elliptic functions module.  A full suite of
extensive testing can be found in elliptic_torture_tests.py

Author of the first version: M.T. Taschuk

References:

[1] Abramowitz & Stegun. 'Handbook of Mathematical Functions, 9th Ed.',
    (Dover duplicate of 1972 edition)
[2] Whittaker 'A Course of Modern Analysis, 4th Ed.', 1946,
    Cambridge University Press

    N)*c                     d}|xr& | j                   j                  |j                   |      }|xr& | j                  j                  |j                  |      }|S )NT)realaeimag)abepsress       _/home/mcse/projects/flask/flask-venv/lib/python3.12/site-packages/mpmath/tests/test_elliptic.pympc_aer      sF    
C

(!&&))AFFC(C

(!&&))AFFC(CJ       sncndnc                     t        |       S )Nk)qfromr   s    r   <lambda>r   #   s
    51: r   c                  
   dt         _        t        ddd      dk(  sJ t        ddd      dk(  sJ t        ddd      dk(  sJ t        ddd      dk(  sJ t        dd	d      j                  t	        d	            sJ t        d
d	d      j                  t        d	            sJ t        dd	d      j                  d      sJ t        dd	d      j                  t        d	            sJ t        dd	d      j                  t        d	            sJ t        dd	d      j                  d      sJ t        dd	d      j                  t        d	            sJ t        dd	d      j                  t	        d	            sJ t        dd	d      j                  t        d	            sJ t        dd	d      j                  t        d	            sJ t        dd	d      j                  t        d	            sJ t        dd	d      j                  t        d	            sJ t        dd	d      j                  t        d	            sJ t        d
d	d      j                  t        d	            sJ t        dd	d      j                  t        d	            sJ t        dd	d      j                  t        d	            sJ t        dd	d      j                  t        d	            sJ t        dd	d      j                  t        d	            sJ t        dd	d      j                  t        d	            sJ t        dd	d      j                  t        d	            sJ t        dd	d      j                  d      sJ t        dd	d      j                  t        d	            sJ t        dd	d      j                  d      sJ t        dd	d      j                  t        d	            sJ t        dd	d      j                  d      sJ t        d
d	d      j                  d      sJ t        dd	d      j                  d      sJ t        dd	d      j                  d      sJ t        dd	d      j                  d      sJ t        dd	d      j                  d      sJ t        dd	d      j                  d      sJ t        dd	d      j                  d      sJ t        dd	d      j                  d      sJ t        dd	d      j                  d      sJ t        dd	d      j                  d       sJ t        dd	d      j                  d!      sJ y )"N   ssr   r   ccddnnr         ?r   r   nsncndscsdcdcsdcds      ?g@p4(?gTi$?g>x?g(?@gZx:	?g~??gbUaA?g]`w73?gk?g) @g
oA?gff @)mpdpsellipfunr   sincoscscsectancottanhsechcothcoshsinhcsch r   r   test_ellipfunr9   %   s   BFD!Q1$$$D!Q1$$$D!Q1$$$D!Q1$$$D$"%%c$i000D$"%%c$i000D$"%%a(((D$"%%c$i000D$"%%c$i000D$"%%a(((D$"%%c$i000D$"%%c$i000D$"%%c$i000D$"%%c$i000D$"%%c$i000D$"%%c$i000D$"%%d4j111D$"%%d4j111D$"%%d4j111D$"%%d4j111D$"%%d4j111D$"%%d4j111D$"%%d4j111D$"%%d4j111D$"%%a(((D$"%%d4j111D$"%%a(((D$"%%d4j111D$$''(>???D$$''(>???D$$''(>???D$$''(=>>>D$$''(=>>>D$$''(=>>>D$$''(>???D$$''(>???D$$''(>???D$$''(=>>>D$$''(=>>>D$$''(=>>>r   c                     dt         _        t        t              } | t        k(  sJ dt         _        t	        d      dz  t	        d      ft	        d      dz  t	        d      ft	        d      dz  t	        d	      ft	        d
      dz  t	        d      ft	        d      dz  t	        d      ft	        d      dz  t	        d      ft	        d      dz  t	        d      ft	        d      dz  t	        d      ft	        d      dz  t	        d      ft	        d      dz  t	        d      fg
}|D ]1  }|d   }t        t        |            } | j                  |d         r1J  dt         _        y )Nd      r   
   z0.006584651553858370274473060   z0.01394285727531826872146409   z0.02227743615715350822901627   z0.03188334731336317755064299   z0.04321391826377224977441774   z0.05702025781460967637754953   z0.07468994353717944761143751   z0.09927369733882489703607378	   z0.1401731269542615524091055r   r   )r)   r*   calculate_nomezerompfsqrtr   )qmath1ims       r   test_calculate_nomerN   S   sN   BFtA99BF!fRi<=>!fRi;<=!fRi;<=!fRi;<=!fRi;<=!fRi;<=!fRi;<=!fRi;<=!fRi:;<!fRi:;<	>E  aD47#ttAaDzz
 BFr   c                    	 dt         _        t        x	t        dd      D ]  t	        	      } | dz
  dz  k(  rJ  t
        t        d      fD ]2  t        dd      D ]!  t        j                  t        	fd       # 4 t
        dz  	t
        dz  t        d      }t	        d	      }|j                  |      sJ t        d	      }t	        d	      }|j                  |      sJ t        d
      }t	        d	      }|j                  |      sJ t        d      }t	        d	      }|j                  |      sJ t        }t        dz  }t        d      D ]j  }t        t        j                               }t        |      t	        d|      }|j                  d      sJ t	        d|      }|j                  d      rjJ  dt         _        y )Nr<   r   rA   r>   c                      t               S Njtheta)nrJ   zs   r   r   ztest_jtheta.<locals>.<lambda>w   s    fQ1o r   r=      z0.1069552990104042681962096z1.101385760258855791140606z1.178319743354331061795905r?   z0.8219318954665153577314573r@   r   r   )r)   r*   rG   rangerS   onerH   pytestraises
ValueErrorr   pistrrandom)
valuer   resultz1z2rL   qstringrT   rJ   rU   s
          @@@r   test_jthetard   m   s   BFLA1QZ "q!Q1q ! " 3q6] ?q 	?AMM*&=>	?? 	BABA +
,CAq!_F99S>> *
+CAq!_F99S>> *
+CAq!_F99S>> +
,CAq!_F99S>> 
B	AB2Y fmmo&L2q!yy||2q!yy|| BFr   c                  8   dt         _        t         xj                  dz  c_        t        d      dz  t        dz  z
  t        d      dz  t        z  z
  t         xj                  dz  c_        t        d      t        d      t        z  z   } t        dd	      }t         xj                  dz  c_        t        d      dz  t        d
z  z
  t        d      dz  t        z  z
  t         xj                  dz  c_        t        j                  t        fd       dt         _        d	t        z   dz  }t        d      dz  t        d      dz  t        z  z   t        d      t        d      t        z  z   } dt         _        t        d	|      }|j                  |       sJ dt         _        ddt        z  z   }ddt        z  z   t        d	|      }dt         _        t        d	|      }|j                  |      sJ dt         _        dt        z   }t        t        dz        }t        d	d      D ]I  }dt         _        |d	t        d	      d|z  z  z
  z  t        d	|      }dt         _        t        d	|      }K |j                  |      sJ dt         _        t        dddd      j                  d      sJ t        dddd      j                  d      sJ dt         _        t        dddd      }|j                  d      sJ t        dddd      }|j                  d      sJ y )N   rB   r=   i@B rD   z32.0031009628901652627099524264z16.6153027998236087899308935624r?   r   i c                      t        dd       S )Nr?   r   rR   )rJ   s   r   r   z&test_jtheta_issue_79.<locals>.<lambda>   s    fQ1o r   r;   l   'e[>
 l     I5 l   tQh z$2.4439389177990737589761828991467471z$0.5446453005688226915290954851851490P   r@   r(   r   r>   g      @r   rE   gl2<@2   g3m,z21359.048926806828939547859396600218966947753213803z4-6148327726309051673317975084654262.4119215720343656)r)   r*   rH   rX   jrS   rY   rZ   r[   r   exprW   )	r   r`   rU   r1r2q1rT   rrJ   s	           @r   test_jtheta_issue_79rp      s    BFFFbLFAr	CIAr	A-AFFbLF
 /
0
/
01
45CAq!_FFFbLFAr	CIAr	A-AFFbLF
MM*56 BF	
1aAOV#c/&:6&AA&EEA
4
5
4
5q
89CBFAq!_F99S>>BF	AaCAc!eA	1aBBF	1aB5599BF	AA	QqSB 1a[ CF2q5L !Aq!_Aq!_ 5599BF!S$"%%&6777!S$#&&'<===BFq#tQA44DEEEq#tR A44FGGGr   c                  x   dt         _        t        t        d      } t	        d      D ]  }t        t        j                               }t        |      }t        dt        j                         z        }t        |      }t        d||      dz  t        dt        |      dz  z  }t        d||      dz  t        dt        |      dz  z  }t        d||      dz  t        dt        |      dz  z  }||z
  |z   }	|	j                  d|       sJ t        d	t        j                         z        }t        |      }t        d||      dz  t        dt        |      dz  z  }t        d||      dz  t        dt        |      dz  z  }t        d||      dz  t        dt        |      dz  z  }||z
  |z   }	|	j                  d|       sJ t        d||      dz  t        dt        |      dz  z  }t        d||      dz  t        dt        |      dz  z  }t        d||      dz  t        dt        |      dz  z  }||z
  |z   }	|	j                  d|       sJ t        d||      dz  t        dt        |      dz  z  }t        d||      dz  t        dt        |      dz  z  }t        d||      dz  t        dt        |      dz  z  }||z
  |z   }	|	j                  d|       sJ t        dt        |      dz  }t        dt        |      dz  }t        dt        |      dz  }||z   |z
  }	|	j                  d|       rJ  d
t         _        y)z
    Tests the some of the jacobi identidies found in Abramowitz,
    Sec. 16.28, Pg. 576. The identities are tested to 1 part in 10^98.
    n   rf   r=   r   r>   r@   r?   r   r;   r   N)r)   r*   ldexpr
   rW   r]   r^   rH   rS   rG   r   )
eps1rL   rc   rJ   zstringrU   term1term2term3equalitys
             r   test_jtheta_identitiesrz      s2   
 BFb>D2Y 2%fmmo&Lb()L 1a!#q$(:A(=>1a!#q$(:A(=>1a!#q$(:A(=>5=5({{1d#$#c&--/)*L 1a!#q$(:A(=>1a!#q$(:A(=>1a!#q$(:A(=>5=5({{1d#$#
 1a!#q$(:A(=>1a!#q$(:A(=>1a!#q$(:A(=>5=5({{1d#$#
 1a!#q$(:A(=>1a!#q$(:A(=>1a!#q$(:A(=>5=5({{1d#$# 4#a'4#a'4#a'5=5({{1d#$#e2%f BFr   c            	         dt         _        t        d      dz  t        dz  z   } t        d      dz  t        dz  z   }t        d      t        d      t        z  z   }t	        d| |      }t        ||      sJ t        d	      t        d
      t        z  z   }t	        d| |      }t        ||      sJ t        d      t        d      t        z  z   }t	        d| |      }t        ||      sJ t        d      t        d      t        z  z
  }t	        d| |      }t        ||      sJ dt         _        t        d      dz  t        dz  z   } t        d      dz  t        dz  z   }t         xj                  dz  c_        ddt	        dd|      t	        dd|      t	        dd|      g}dt	        d| |      t	        d| |      t	        d| |      t	        d| |      g}|d   |d   z  dz  |d   |d   z  dz  z
  |d   |d   z  dz  z   |d   |d   z  dz  |d   |d   z  dz  z
  |d   |d   z  dz  z   |d   |d   z  dz  |d   |d   z  dz  z
  |d   |d   z  dz  z   |d   |d   z  dz  |d   |d   z  dz  z
  |d   |d   z  dz  z   |d   dz  |d   dz  z   |d   dz  z
  g}t         xj                  dz  c_        |D ]  }t        |t        d            rJ  dt         _        y )Nrf   r   r@   rD   r?   rC   z%0.31618034835986160705729105731678285z%0.07542013825835103435142515194358975z$1.6530986428239765928634711417951828z$0.2015344864707197230526742145361455r>   z$1.6520564411784228184326012700348340z$0.1998129119671271328684690067401823z%0.37619082382228348252047624089973824z%0.15623022130983652972686227200681074r;   r=   r   r   )r)   r*   rH   rj   rS   r   dosmpc)rU   rJ   r   ro   r   txs          r   test_jtheta_complexr     s   BFAq1Q3AAq1Q3A
5
6
5
6
:;Cq!QA!S>> 4
5
4
5
9:Cq!QA!S>> 4
5
4
5
9:Cq!QA!S>> 5
6
5
6
:;Cq!QA!S>> BFAq1Q3AAq1Q3AFFbLF	
1fQ1ovaAq!Q@A	
F1aOVAq!_fQ1ovaAOA
A$qt)a1Q4!9q.	(AaD!A$J?	:	
1adQ!A$qt)a'1Q41:/9	
1adQ!A$qt)a'1Q41:/9	
1adQ!A$qt)a'1Q41:/9	!a!A$'AaD!G#		%A
 FFbLF "aQ ! "BFr   c                  ^  	
 dt         _        t        dz  t        dz  z   } t        dz  t        dz  z   
t	        d      t	        d      t        z  z
  }t        d| 
d      }t        ||      sJ t	        d	      t	        d
      t        z  z
  }t        d| 
d      }t        ||      sJ t	        d      t	        d      t        z  z
  }t        d| 
d      }t        ||      sJ t	        d      t	        d      t        z  z   }t        d| 
d      }t        ||      sJ t        d      D ]  }t        t        j                         z  t        t        j                         z  z   dz  
t        dd
d      }t        dd
      t        dd
      z  t        dd
      z  }|j                  |      rJ  dt         _        t        dz  t        dz  ft        dz  t        dz  z   t        dz  ft        dz  t        dz  t        dz  z   ft        dz  t        dz  z   t        dz  t        dz  z   ffD ]r  \  
} dD ]h  	t        	| 
d      }t        	
fd| d      }|j                  |      sJ t        	| 
d      }t        	
fd| d      }|j                  |      rhJ  t t        dz  
t        } dgdz  }t        d| 
d      t        d| 
d      z  |d<   dD ]!  	t        	| 
d      t        	| 
      z  |	<   # |d   |d   z   |d   z   |d   z
  }|j                  d      sJ dt         _        y )Nrf   rC   r?   rD   rA   z$1.5555195883277196036090928995803201z%0.02439761276895463494054149673076275r   z%0.19825296689470982332701283509685662z%0.46038135182282106983251742935250009r>   z%0.36492498415476212680896699407390026z%0.57743812698666990209897034525640369z&-0.38936892528126996010818803742007352z%0.66549886179739128256269617407313625r@   r=   r      )r   r>   r?   r@   c                     t        |       S rQ   rR   zzrT   rJ   s    r   r   ztest_djtheta.<locals>.<lambda>m      2q!1 r   )rT   c                     t        |       S rQ   rR   r   s    r   r   ztest_djtheta.<locals>.<lambda>p  r   r   )r>   r?   r@   r   )r)   r*   rX   rj   rH   rS   r   rW   r^   r   diffrG   )rU   r   r`   rL   r   r	   ro   rl   ry   rT   rJ   s            @@r   test_djthetar   C  s7   BFA!AA!A
4
5
5
6
:;CAq!QF&# 5
6
5
6
:;CAq!QF&# 5
6
5
6
:;CAq!QF&# 6
7
5
6
:;CAq!QF&#2Y  1V]]_#44a71aA1aOF1aO+F1aO;ttAww BFQAQ1c!e 4	QA!s1uqs{CEAaCK8: ! 	Aq!Q"A11:B448O8q!Q"A11:B448O8	 	AAA	
AA!Q1fQ1a00AaD 2aAq!&Aq/1!2tad{QqT!AaD(H;;q>>BFr   c                     dt         _        t        t        t              } | t        k(  sJ t	        d      D ]M  }t        t        j                               }t        |      }t        t        |      }|j                  d      rMJ  dt         _        t        dz  }t        d      }t        t        d      }t        ||      } | j                  |      sJ t        d      }t        ||      } | j                  |      sJ dt         _        y	)
z;
    Test some special cases of the sn(z, q) function.
    r;   r=   r   r<   z0.09983341664682815230681420z0.09981686718599080096451168r   N)r)   r*   jsnrG   rW   r]   r^   rH   r   rX   rs   )r`   rL   rc   rJ   ry   argr   rM   s           r   test_jsnr   ~  s     BF t_FT>> 2Y fmmo&LtQ<{{1~~" BF
b&C
,
-Cc4Aa[F99S>> ,
-Cc]F99S>>BFr   c                     dt         _        t        t        j                               } t	        |       }t        t        |      }|j                  t              sJ dt         _        t        dz  }t        t        d      }t	        d      }t        ||      }|j                  |      sJ t	        d      }t        ||      }|j                  |      sJ dt         _        y)	z;
    Test some special cases of the cn(z, q) function.
    r;   r<   r=   r   z0.9950041652780257660955620z0.9950058256237368748520459r   N)
r)   r*   r]   r^   rH   jcnrG   r   rX   rs   )rc   rJ   r   r   rM   r   r`   s          r   test_jcnr     s     BF &--/"GGA	T1B55:: BF
b&Cc4A
+
,Ca[F99S>> +
,Cc]F99S>>BFr   c                  J   dt         _        t        t        j                               } t	        |       }t        t        |      }|j                  t              sJ dt         _        t	        d      }t        dz  }t        ||      }|j                  |      sJ dt         _        y)z;
    Test some special cases of the dn(z, q) function.
    r;   r<   z0.9995017055025556219713297r=   r   N)	r)   r*   r]   r^   rH   jdnrG   r   rX   )mstringrM   r   r   r   r`   s         r   test_jdnr     s~     BF &--/"GGA	T1B55::BF
+
,C
b&Cc]F99S>>BFr   c                  D   dt         _        d} t        |       D ]  }t        t	        j                               }t        |      }t        dt	        j                         z        }t        |      }t        ||      dz  }t        ||      dz  }t        |z
  |z
  }|j                  d      rJ  t        |       D ]  }t        t	        j                               }	t              }
|
j                         }t        dt	        j                         z        }t        |      }|dz  t        ||
      dz  z  }t        ||
      dz  }t        |z
  |z
  }|j                  d      rJ  t        |       D ]#  }t        t	        j                               }	t        |	      }
|
j                         }t        t	        j                               }t        |      }|dz  t        ||
      dz  z  }d|dz  z
  }t        ||
      dz  }||z
  |z
  }|j                  d      sJ t        |dz        }t        ||
      }|j                  t              sJ t        ||
      }|j                  d      sJ |
}t        |t              }|j                  t              r$J  dt         _        y)	zx
    Tests the some of the jacobi elliptic function identities found
    on Mathworld. Haven't found in Abramowitz.
    r;   rA   r>   r   r=   r   r   N)r)   r*   rW   r]   r^   rH   r   r   rX   r   rI   r   ellipkrG   )NrL   rc   rJ   ru   rU   rv   rw   ry   r   rM   r   rx   Kro   r_   s                   r   test_sn_cn_dn_identitiesr     sM   
 BF	A1X fmmo&Lc&--/)*L Aq	1Aq	1;&{{1~~ 1X 	fmmo&LFFHb()L1s1ay!|#Aq	1;&{{1~~	 1X fmmo&LFFHfmmo&L 1s1ay!|#AqDAq	15=5({{1~~1a4L 1IttCyy q!9{{1~~ Atxx}}=@ BFr   c                     dt         _        t        d      t        d      t        z  z   } t        d      dz  t        dz  z   }t        d      dz  t        dz  z   }t	        ||      }t        ||       sJ t        d	      t        d
      t        z  z
  } t        ||      }t        ||       sJ t        d      t        d      t        z  z
  } t        ||      }t        ||       sJ dt         _        y )Nrf   z!0.2495674401066275492326652143537z"0.12017344422863833381301051702823r   r@   rD   r?   rC   z!0.9762691700944007312693721148331z!0.0307203994181623243583169154824z%0.99639490163039577560547478589753039z%0.01346296520008176393432491077244994r   )r)   r*   rH   rj   r   r   r   r   )r   urM   ro   s       r   test_sn_cn_dn_complexr   +  s    BF
1
2
2
3a
78CAq1Q3AAq1Q3AAq	A!S>> 1
2
1
21
45CAq	A !S>> 5
6
5
6q
89CAq	A!S>>BFr   c                  z   dt         _        t        ddd      j                  d      sJ t        ddd      j                  d      sJ t        t        t         d      j                  d	      sJ t        dt        t               j                  d
      sJ t        dt        dz
  t              j                  d      sJ t        dt        z
  t         dt        z         j                  d      sJ t        ddd      dk(  sJ t        ddd      j                  d      sJ t        ddd      j                  d      sJ t        ddd      j                  d      sJ t        ddd      j                  d      sJ t        ddd      j                  d      sJ t        ddd      j                  d      sJ d\  } }}t        | ||      j                  d      sJ t        | ||      j                  d      sJ t        || |      j                  d      sJ t        |||       j                  d      sJ t        || |      j                  d      sJ t        |||       j                  d      sJ dD ]  }|t         _        t        ddd      j                  d      sJ t        ddd      j                  d      sJ t        t        t         d      j                  d      sJ t        t        dz
  t        d      j                  t        dd            sJ t        ddd      j                  d      sJ t        t        t         d      j                  d      sJ t        t        dz
  t        dt        z
        j                  t        dd            sJ t        dd      j                  t              sJ t        dd      j                  t              sJ t        dt              j                  t        dd             sJ t        t         t              j                  t        d!d"            sJ t        dd      j                  t        dz        sJ t        t        d      j                  t        d#d$            sJ t        dddd      j                  d%      sJ t        dddd&      j                  d'      sJ t        ddddt        z         j                  t        d(d)            sJ t        t        t         dd      j                  d*      sJ t        dt        z   dt        z
  dd      j                  d+      sJ t        t        t         ddt        z
        j                  t        d,d-            sJ t        dt        z   dt        z
  dd.t        z         j                  t        d/d0            sJ t        dt        z   dt        z
  t         dt        z         j                  t        d1d2            sJ t        ddd      j                  t              sJ t        ddd      j                  d3      sJ t        dt        t               j                  d4      sJ t        t        dz
  t        d      j                  t        d5d6            sJ t        t         t        dz
  t              j                  t        d7d8            sJ t        dt        d9      d      j                  d:      rJ  dt         _        t        d;d<d=d>      j                  d?d@A      sJ t        dBdCddD      j                  dEd@A      sJ t        dFdGdHdI      j                  dJd@A      sJ t        dFdKdHdI      j                  dLdMA      sJ t        dFdNdHdI      j                  dOd@A      sJ t        dFdPdHdI      j                  dQd@A      sJ t        dFdRdHdI      j                  dS      sJ t        dFdTdHdI      j                  dU      sJ t        dVdWdX      j                  dY      sJ t        dZd[      j                  d\      sJ t        d]d^      j                  d_      sJ t        d`da      j                  db      sJ t        d[dZ      j                  dc      sJ t        d[d`      j                  dd      sJ y )eNr   r   r>   r   g2e_?r?   r@   gi+"?gP$M?yfFU?6?@y,R<8*y#62?z   g{ I|`?)r   y              ?y            ?yafG?Etw\?)rA   r   rf   <   r;   zo1.3110287771460599052324197949455597068413774757158115814084108519003952935352071251151477664807145467230678763r(   zn1.854074677301371918433850347195260046217598823521766905585928045056021776838119978357271861650371897277771871zp0.79612586584233913293056938229563057846592264089185680214929401744498956943287031832657642790719940442165621412zp-1.2138566698364959864300942567386038975419875860741507618279563735753073152507112254567291141460317931258599889zp0.58408284167715170669284916892566789240351359699303216166309375305508295130412919665541330837704050454472379308zo1.0441445654064360931078658361850779139591660747973017593275012615517220315993723776182276555339288363064476126zp0.93912050218619371196624617169781141161485651998254431830645241993282941057500174238125105410055253623847335313zq-0.53296252018635269264859303449447908970360344322834582313172115220559316331271520508208025270300138589669326136r   g      @zo1.1107207345395915617539702475151734246536554223439225557713489017391086982748684776438317336911913093408525532zp-1.1107207345395915617539702475151734246536554223439225557713489017391086982748684776438317336911913093408525532zo1.2260849569072198222319655083097718755633725139745941606203839524036426936825652935738621522906572884239069297zq-0.34471136988767679699935618332997956653521218571295874986708834375026550946053920574015526038040124556716711353zp0.77778596920447389875196055840799837589537035343923012237628610795937014001905822029050288316217145443865649819zo0.1983248499342877364755170948292130095921681309577950696116251029742793455964385947473103628983664877025779304zp0.77688623778582332014190282640545501102298064276022952731669118325952563819813258230708177398475643634103990878rA   zp0.14297579667156753833233879421985774801466647854232626336218889885463800128817976132826443904216546421431528308zp0.13613945827770535203521374457913768360237593025944342652613569368333226052158214183059386307242563164036672709zq-0.38207561624427164249600936454845112611060375760094156571007648297226090050927156176977091273224510621553615189zo1.6490011662710884518243257224860232300246792717163891216346170272567376981346412066066050103935109581019055806zp0.94148358841220238083044612133767270187474673547917988681610772381758628963408843935027667916713866133196845063zo1.8260115229009316249372594065790946657011067182850435297162034335356430755397401849070610280860044610878657501zo1.2290661908643471500163617732957042849283739403009556715926326841959667290840290081010472716420690899886276961zq-0.61127970812028172123588152373622636829986597243716610650831553882054127570542477508023027578037045504958619422zp-1.0684038390006807880182112972232562745485871763154040245065581157751693730095703406209466903752930797510491155zo1.8249027393703805304622013339009022294368078659619988943515764258335975852685224202567854526307030593012768954zp-1.2218475784827035854568450371590419833166777535029296025352291308244564398645467465067845461070602841312456831zo1.7255030280692277601061148835701141842692457170470456590515892070736643637303053506944907685301315299153040991zp0.42360654239698954330324956174109581824072295516347109253028968632986700241706737986160014699730561497106114281zp0.44660591677018372656731970402124510811555212083508861036067729944477855594654762496407405328607219895053798354zp0.70768352357515390073102719507612395221369717586839400605901402910893345301718731499237159587077682267374159282zp0.36023392184473309033675652092928695596803358846377334894215349632203382573844427952830064383286995172598964266zp0.40348623401722113740956336997761033878615232917480045914551915169013722542827052849476969199578321834819903921z0.0796zo1.0284758090288040009838871385180217366569777284430590125081211090574701293154645750017813190805144572673802094y            y      $      y      $      y            $@y+͸q?3(?g:0yE>)abs_epsgn?y'1@mgQy9]տ9DBٿgQkw?yS%MbX9?gX9v?g>W[yf0č[Ꭳ5yS%MbX9yݶ#?,eĿgh㈵>yS%vq-?yv0ƾ=T󵱿yS% y?yg%Xd毿yS%vq-y9px?`?yS% yycr??^JY?y @Gz?yffffff@\(\?y      @{Gz?y8Y+}ڿ<@y       @      y       @      ?yRع?Y\ny       @      y      ?      ?y;=?>%yg       @y      ?      ?y=R?IOyRع?Y\n?yi2)G@L !'- @)r)   r*   elliprdr   rj   elliprgelliprfr}   elliprcr\   ln2elliprjrH   ellippi)r   yrU   rT   s       r   test_elliptic_integralsr   D  s@	   BF1Qq>23331Qq>34441aR?45551Qr?LMMM1QqSOPPP2a42a4 ##$RSSS1Qq>Q1Qr?a   1R?a   2a?a   1Qq>56661Qq>56661Qq>5666EAa1Qq>MNNN1Qq>MNNN1Qq>MNNN1Qq>MNNN1Qq>MNNN1Qq>MNNN! (bq1~    "S  T  	T  Ts1Q""  $T  U  	U  Uq!A!!  #S  T  	T  Tqs1Q""3  (Z~$@ A 	A Aq1~    "T  U  	U  Uq!A!!  #T  U  	U  Uqs1QqS!$$S  *\&A B 	B Bq!!2#&&&tA!!3$'''q|s  $U~ @ A 	A Ar!}  %V!A B 	B BtB""3q5)))q}  %W}! @ 	@ @q1Q""  $V  W  	W  Wq1Q""  $V  W  	W  Wq1RT"%%c  +]'A B 	B Bq!Aa ##  %V  W  	W  Wr!tBqD1%((  *\  ]  	]  ]q!Aac"%%c  +\}' @ 	@ @r!tBqD2a4(++C  1d~-@ A 	A Ar!tBqD!BqD),,S  2c~.@ A 	A A qB""B3'''q1~    "S  T  	T  TqA2!!  #U  V  	V  Vqs1Q""3  (Z~$@ A 	A Ar!A#a ##C  )[~%@ A 	A Aq#h-+..  0a  b  	b  bQ(bR BF 7FFF3667cmq6rrr5.!V4778eos7ttt6=%9<<=isw<xxx6=%9<<=fpt<uuu6>5':==>jtx=yyy6?E7;>>?isw>xxx 6>5':==>jkkk6?E7;>>?klll;[9<<=mnnn8X&))*STTT8X&))*UVVV3!$$%OPPP8X&))*STTT8S!$$%OPPPr   c                  :    t        t        t                    sJ y )N)rM   )isnanr   nanr8   r   r   test_issue_238r     s    r   )__doc__mpmathr^   rY   r
   r   rH   rG   rX   r+   r   r   r   rF   r9   rN   rd   rp   rz   r   r   r   r   r   r   r   r   r   r8   r   r   <module>r      s         1v	!ftntntn%)?\4.b9Hv;z+Z9v+Z#J.BH2WQrr   