
    gqf                         d Z ddlZddlZddlZddlT 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dS )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}|o| j                             |j         |          }|o| j                            |j        |          }|S )NT)realaeimag)abepsress       V/var/www/html/ai-engine/env/lib/python3.11/site-packages/mpmath/tests/test_elliptic.pympc_aer      sD    
C

(!&))AFC((C

(!&))AFC((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                              t	          d	                    sJ t          d
d	d                              t          d	                    sJ t          dd	d                              d          sJ t          dd	d                              t          d	                    sJ t          dd	d                              t          d	                    sJ t          dd	d                              d          sJ t          dd	d                              t          d	                    sJ t          dd	d                              t	          d	                    sJ t          dd	d                              t          d	                    sJ t          dd	d                              t          d	                    sJ t          dd	d                              t          d	                    sJ t          dd	d                              t          d	                    sJ t          dd	d                              t          d	                    sJ t          d
d	d                              t          d	                    sJ t          dd	d                              t          d	                    sJ t          dd	d                              t          d	                    sJ t          dd	d                              t          d	                    sJ t          dd	d                              t          d	                    sJ t          dd	d                              t          d	                    sJ t          dd	d                              t          d	                    sJ t          dd	d                              d          sJ t          dd	d                              t          d	                    sJ t          dd	d                              d          sJ t          dd	d                              t          d	                    sJ t          dd	d                              d          sJ t          d
d	d                              d          sJ t          dd	d                              d          sJ t          dd	d                              d          sJ t          dd	d                              d          sJ t          dd	d                              d          sJ t          dd	d                              d          sJ t          dd	d                              d          sJ t          dd	d                              d          sJ t          dd	d                              d          sJ t          dd	d                              d           sJ t          dd	d                              d!          sJ d S )"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$ii00000D$""%%c$ii00000D$""%%a(((((D$""%%c$ii00000D$""%%c$ii00000D$""%%a(((((D$""%%c$ii00000D$""%%c$ii00000D$""%%c$ii00000D$""%%c$ii00000D$""%%c$ii00000D$""%%c$ii00000D$""%%d4jj11111D$""%%d4jj11111D$""%%d4jj11111D$""%%d4jj11111D$""%%d4jj11111D$""%%d4jj11111D$""%%d4jj11111D$""%%d4jj11111D$""%%a(((((D$""%%d4jj11111D$""%%a(((((D$""%%d4jj11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 ]C}|d         }t          t          |                    } |                     |d                   sJ Ddt           _        d S )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   s   BFtA9999BF!ffRi<==>!ffRi;<<=!ffRi;<<=!ffRi;<<=!ffRi;<<=!ffRi;<<=!ffRi;<<=!ffRi;<<=!ffRi:;;<!ffRi:;;<	>E   aD477##ttAaDzzBFFFr   c                  l  	 dt           _        t          x	t          dd          D ]!t	          	          } | dz
  dz  k    sJ "t
          t          d          fD ]4t          dd          D ]!t          j        t          	fd           "5t
          dz  	t
          dz  t          d          }t	          d	          }|
                    |          sJ t          d	          }t	          d	          }|
                    |          sJ t          d
          }t	          d	          }|
                    |          sJ t          d          }t	          d	          }|
                    |          sJ t          }t          dz  }t          d          D ]}t          t          j                              }t          |          t	          d|          }|
                    d          sJ t	          d|          }|
                    d          sJ dt           _        d S )Nr<   r   rA   r>   c                  &    t                     S Njtheta)nrJ   zs   r   r   ztest_jtheta.<locals>.<lambda>w   s    fQ1oo 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   s8   BFLA1QZZ " "q!Q1q     3q66] ? ?q 	? 	?AM*&=&=&=&=&=&=>>>>	? 	BABA +
,
,CAq!__F99S>> *
+
+CAq!__F99S>> *
+
+CAq!__F99S>> +
,
,CAq!__F99S>> 
B	AB2YY  fmoo&&LL2q!!yy||2q!!yy||BFFFr   c                  2   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	|          }|	                    |           sJ dt           _        ddt          z  z   }ddt          z  z   t          d	|          }dt           _        t          d	|          }|	                    |          sJ dt           _        dt          z   }t          t          dz            }t          d	d          D ]W}dt           _        |d	t          d	          d|z  z  z
  z  t          d	|          }dt           _        t          d	|          }X|	                    |          sJ dt           _        t          dddd          	                    d          sJ t          dddd          	                    d          sJ dt           _        t          dddd          }|	                    d          sJ t          dddd          }|	                    d          sJ d S )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1oo 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      s1    BFFFbLFFAr	CIAr	A-AFFbLFF
 /
0
0
/
0
01
45CAq!__FFFbLFFAr	CIAr	A-AFFbLFF
M*5555666 BF	
1aAOV#c/&:&:6&AA&EEA
4
5
5
4
5
5q
89CBFAq!__F99S>>BF	AaCAc!eA	1aBBF	1aB5599BF	AA	QqSB 1a[[  CFF2q5L !Aq!__Aq!__5599BF!S$""%%&677777!S$##&&'<=====BFq#tQA44DEEEEEq#tR  A44FGGGGGGGr   c                     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   }	|	
                    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   }	|	
                    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   }	|	
                    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   }	|	
                    d|           sJ t          dt          |          dz  }t          dt          |          dz  }t          dt          |          dz  }||z   |z
  }	|	
                    d|           sJ d
t           _        dS )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      s   
 BFb>>D2YY 2% 2%fmoo&&LLb())LL 1a!#q$(:(:A(=>1a!#q$(:(:A(=>1a!#q$(:(:A(=>5=5({{1d##$$$c&-//)**LL 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##$$$$BFFFr   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                    sJ "dt           _        d S )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     so   BFAq1Q3AAq1Q3A
5
6
6
5
6
6
:;Cq!QA!S>> 4
5
5
4
5
5
9:Cq!QA!S>> 4
5
5
4
5
5
9:Cq!QA!S>> 5
6
6
5
6
6
:;Cq!QA!S>> BFAq1Q3AAq1Q3AFFbLFF	
1fQ1oovaAq!Q@A	
F1aOOVAq!__fQ1oova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
 FFbLFF " "aQ  !!!!BFFFr   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  }|	                    |          s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 ]\  
} dD ]	t          	| 
d          }t          	
fd| d          }|	                    |          sJ t          	| 
d          }t          	
fd| d          }|	                    |          sJ 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
  }|	                    d          sJ dt           _        d S )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!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  s   BFA!AA!A
4
5
5
5
6
6
:;CAq!QF&# 5
6
6
5
6
6
:;CAq!QF&# 5
6
6
5
6
6
:;CAq!QF&# 6
7
7
5
6
6
:;CAq!QF&#2YY   1V]__#44a71aA1aOOF1aOO+F1aOO;ttAww BFQAQ1c!e 4	QA!s1uqs{CEAaCK8:  ! 	 	Aq!Q""A111111:::B4488OOOq!Q""A111111:::B4488OOOO	 	AAA	
AA!Q1fQ1a000AaD 2 2aAq!!&Aq//1!tad{QqT!AaD(H;;q>>BFFFr   c                     dt           _        t          t          t                    } | t          k    sJ t	          d          D ]]}t          t          j                              }t          |          }t          t          |          }|                    d          sJ ^dt           _        t          dz  }t          d          }t          t          d          }t          ||          } |                     |          sJ t          d          }t          ||          } |                     |          sJ dt           _        d	S )
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>>>> 2YY  fmoo&&LLtQ<<{{1~~ BF
b&C
,
-
-Cc4Aa[[F99S>> ,
-
-Cc]]F99S>>BFFFr   c                  $   dt           _        t          t          j                              } t	          |           }t          t          |          }|                    t                    sJ dt           _        t          dz  }t          t          d          }t	          d          }t          ||          }|                    |          sJ t	          d          }t          ||          }|                    |          sJ dt           _        dS )	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>>BFFFr   c                     dt           _        t          t          j                              } t	          |           }t          t          |          }|                    t                    sJ dt           _        t	          d          }t          dz  }t          ||          }|                    |          sJ dt           _        dS )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>>BFFFr   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
  }|	                    d          sJ t          |           D ]}t          t	          j                              }	t          |          }
|

                                }t          dt	          j                    z            }t          |          }|dz  t          ||
          dz  z  }t          ||
          dz  }t          |z
  |z
  }|	                    d          sJ t          |           D ]`}t          t	          j                              }	t          |	          }
|

                                }t          t	          j                              }t          |          }|dz  t          ||
          dz  z  }d|dz  z
  }t          ||
          dz  }||z
  |z
  }|	                    d          sJ t          |dz            }t          ||
          }|	                    t                    sJ t          ||
          }|	                    d          sJ |
}t          |t                    }|	                    t                    sJ bdt           _        dS )	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     s   
 BF	A1XX  fmoo&&LLc&-//)**LL Aq		1Aq		1;&{{1~~ 1XX 	 	fmoo&&LLFFHHb())LL1s1ayy!|#Aq		1;&{{1~~ 1XX  fmoo&&LLFFHHfmoo&&LL 1s1ayy!|#AqDAq		15=5({{1~~1a4LL 1IIttCyy q!99{{1~~ Atxx}}BFFFr   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           _        d S )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
2
3
3a
78CAq1Q3AAq1Q3AAq		A!S>> 1
2
2
1
2
21
45CAq		A !S>> 5
6
6
5
6
6q
89CAq		A!S>>BFFFr   c                     dt           _        t          ddd                              d          sJ t          ddd                              d          sJ t          t          t           d                              d	          sJ t          dt          t                                         d
          sJ t          dt          dz
  t                                        d          sJ t          dt          z
  t           dt          z                                 d          sJ t          ddd          dk    sJ t          ddd                              d          sJ t          ddd                              d          sJ t          ddd                              d          sJ t          ddd                              d          sJ t          ddd                              d          sJ t          ddd                              d          sJ d\  } }}t          | ||                              d          sJ t          | ||                              d          sJ t          || |                              d          sJ t          |||                               d          sJ t          || |                              d          sJ t          |||                               d          sJ dD ]}|t           _        t          ddd                              d          sJ t          ddd                              d          sJ t          t          t           d                              d          sJ t          t          dz
  t          d                              t          dd                    sJ t          ddd                              d          sJ t          t          t           d                              d          sJ t          t          dz
  t          dt          z
                                t          dd                    sJ t          dd                              t          
           sJ t          dd                              t          
           sJ t          dt                                        t          dd                     sJ t          t           t                                        t          d!d"                    sJ t          dd                              t          dz            sJ t          t          d                              t          d#d$                    sJ t          dddd                              d%          sJ t          dddd&                              d'          sJ t          ddddt          z                                 t          d(d)                    sJ t          t          t           dd                              d*          sJ t          dt          z   dt          z
  dd                              d+          sJ t          t          t           ddt          z
                                t          d,d-                    sJ t          dt          z   dt          z
  dd.t          z                                 t          d/d0                    sJ t          dt          z   dt          z
  t           dt          z                                 t          d1d2                    sJ t          ddd                              t          
           sJ t          ddd                              d3          sJ t          dt          t                                         d4          sJ t          t          dz
  t          d                              t          d5d6                    sJ t          t           t          dz
  t                                        t          d7d8                    sJ t          dt          d9          d                              d:          sJ dt           _        t          d;d<d=d>                              d?d@A          sJ t          dBdCddD                              dEd@A          sJ t          dFdGdHdI                              dJd@A          sJ t          dFdKdHdI                              dLdMA          sJ t          dFdNdHdI                              dOd@A          sJ t          dFdPdHdI                              dQd@A          sJ t          dFdRdHdI                              dS          sJ t          dFdTdHdI                              dU          sJ t          dVdWdX                              dY          sJ t          dZd[                              d\          sJ t          d]d^                              d_          sJ t          d`da                              db          sJ t          d[dZ                              dc          sJ t          d[d`                              dd          sJ d S )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331Qq>>3444441aR??4555551Qr??LMMMMM1QqSOPPPPP2a42a4  ##$RSSSSS1Qq>>Q1Qr??a     1R??a     2a??a     1Qq>>5666661Qq>>5666661Qq>>566666EAa1Qq>>MNNNNN1Qq>>MNNNNN1Qq>>MNNNNN1Qq>>MNNNNN1Qq>>MNNNNN1Qq>>MNNNNN! (b (bq1~~    "S  T  T  	T  	T  	Ts1Q""  $T  U  U  	U  	U  	Uq!A!!  #S  T  T  	T  	T  	Tqs1Q""3  (Z~$@ $@ A A 	A 	A 	Aq1~~    "T  U  U  	U  	U  	Uq!A!!  #T  U  U  	U  	U  	Uqs1QqS!!$$S  *\&A &A B B 	B 	B 	Bq!!2#&&&&&tA!!3$'''''q||s  $U~ @  @ A A 	A 	A 	Ar!}}  %V!A !A B B 	B 	B 	BtB""3q5)))))q}}  %W}! ! @ @ 	@ 	@ 	@q1Q""  $V  W  W  	W  	W  	Wq1Q""  $V  W  W  	W  	W  	Wq1RT""%%c  +]'A 'A B B 	B 	B 	Bq!Aa  ##  %V  W  W  	W  	W  	Wr!tBqD1%%((  *\  ]  ]  	]  	]  	]q!Aac""%%c  +\}' ' @ @ 	@ 	@ 	@r!tBqD2a4((++C  1d~-@ -@ A A 	A 	A 	Ar!tBqD!BqD)),,S  2c~.@ .@ A A 	A 	A 	A qB""B3'''''q1~~    "S  T  T  	T  	T  	TqA2!!  #U  V  V  	V  	V  	Vqs1Q""3  (Z~$@ $@ A A 	A 	A 	Ar!A#a  ##C  )[~%@ %@ A A 	A 	A 	Aq#h--++..  0a  b  b  	b  	b  	b  	bBF 7FFF33667cmq6rrrrr5.!V44778eos7ttttt6=%99<<=isw<xxxxx6=%99<<=fpt<uuuuu6>5'::==>jtx=yyyyy6?E7;;>>?isw>xxxxx 6>5'::==>jkkkkk6?E7;;>>?klllll;[99<<=mnnnnn8X&&))*STTTTT8X&&))*UVVVVV3!!$$%OPPPPP8X&&))*STTTTT8S!!$$%OPPPPPPPr   c                  N    t          t          t                              sJ d S )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               s1vv	c!ffhtnnhtnnhtnn%%)? )? )?\  4. . .b9H 9H 9Hv; ; ;z+ + +Z9 9 9v+ + +Z# # #J  .B B BH  2WQ WQ WQr    r   