a
    ›¬<bwD  ã                   @   s„   d dl T dd„ Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Zdd„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zd S )!é    )Ú*c                  C   s‚  dt _tdƒtddƒksJ ‚tdƒtddƒks2J ‚tdƒtddƒkrHJ ‚tddƒtddƒks`J ‚ttdƒƒdkstJ ‚ttdƒƒdksˆJ ‚tdd	ƒ} d| v sžJ ‚d| v sªJ ‚d	| v s¶J ‚d
| vsÂJ ‚d| vsÎJ ‚tdd	ƒ| v sàJ ‚tddƒ| v sòJ ‚td
dƒ| vsJ ‚tddƒ| vsJ ‚tt tƒ}tddƒ|v s:J ‚tdtƒ|v sNJ ‚tddƒtddƒv shJ ‚d	tt dƒvs~J ‚d S )Né   é   éþÿÿÿéÿÿÿÿé   z0.1z1[0.099999999999999991673, 0.10000000000000000555]z2mpi('0.099999999999999992', '0.10000000000000001')é   gš™™™™™ñ¿gÍÌÌÌÌÌ@r   ç      @éûÿÿÿé   é
   )ÚivÚdpsÚmpiÚstrÚreprÚinf)ÚuÚw© r   új/Users/vegardjervell/Documents/master/model/venv/lib/python3.9/site-packages/mpmath/tests/test_interval.pyÚtest_interval_identity   s,    
r   c                   C   s®   t tdƒƒt dƒksJ ‚t tdƒƒt dƒks0J ‚t tddƒƒt tddƒƒksPJ ‚t t d¡ƒt dƒksjJ ‚t t dd¡ƒt dƒks†J ‚t t dd¡ƒt t dd¡ƒksªJ ‚d S )Nr   g      
@é   y      @      @)r   r   )r   r   )Úhashr   r   Úmpcr   r   r   r   Útest_interval_hash   s     r   c                  C   sÌ  dt _tdƒtddƒ tddƒks&J ‚tddƒd tddƒksBJ ‚tdƒtdd	ƒ tdtd
ƒƒksfJ ‚ddtdƒ  } | jd  k rŽ| jk s”n J ‚tdƒtdƒ } t  jd7  _t  d¡}t  jd8  _| j|  k râ| jk sèn J ‚tdƒtdtƒ sþJ ‚tddƒt tddƒksJ ‚tdƒt dks2J ‚tdƒd tt tƒksPJ ‚ttƒd tt tƒksnJ ‚tdƒt tt tƒksŒJ ‚dtdtƒ tddƒksªJ ‚ttddƒtddƒ d ƒdksÐJ ‚tddƒd tddƒksîJ ‚tddƒj	dksJ ‚dt _tt j
ƒ}dt _|
 }|j|jk s2J ‚|j|jksDJ ‚tt j
ƒ}||
 ks^J ‚ttddƒƒtddƒks|J ‚ttddƒƒtddƒksšJ ‚ttddƒƒtddƒks¸J ‚ttddƒƒtddƒksÖJ ‚tdƒtddƒ tdƒksöJ ‚tddƒtdƒ tdƒksJ ‚tddƒjdks,J ‚tddƒtddƒ tddƒksPJ ‚tt dƒtdtƒ tt dƒksxJ ‚tt dƒtt tƒ tt tƒks¢J ‚tdtƒtt dƒ tdtƒksÈJ ‚d S )Nr   r   r   r   r   é   r   r   g¸ÔJzî5z1.0000000000000002ç      à?é2   iöÿÿÿz0[-166.66666666666668561, -166.66666666666665719]é@   é   r   éýÿÿÿç      à¿)r   r   r   ÚmpfÚaÚbÚsqrtr   r   ZmidÚpiÚabsÚdelta)ÚxÚsqr$   r%   r   r   r   Útest_interval_arithmetic#   sT     $
ÿ


  $(*r,   c                   C   s€  t ddƒt t t dƒksJ ‚t ddƒt  t dtƒks<J ‚t ddƒt t dtƒksXJ ‚t ddƒt dtƒ t dtƒkszJ ‚t ddƒt t t tƒks˜J ‚t ddƒt dtƒ t t tƒks¼J ‚t ddƒt t tƒ t t tƒksâJ ‚t t dƒt ddƒ t t dƒks
J ‚t t dƒt ddƒ t t dƒ s2J ‚t t dƒt t tƒ t t tƒks\J ‚t ddƒt ddƒ t ddƒks€J ‚t d	d
ƒt dd	ƒ t ddƒks¤J ‚t ttƒd t t tƒksÄJ ‚t t t ƒd t t tƒksèJ ‚t dƒt t d	ƒ t t tƒksJ ‚t dƒt dtƒ t t tƒks2J ‚t dtƒt dƒ t t tƒksVJ ‚t t d	ƒt dƒ t t tƒks|J ‚d S )Nr   r   r   r
   iàÿÿÿé   itÿÿÿé    r   r   r!   r   r   ©r   r   r   r   r   r   Útest_interval_mulN   s$    "$&((*$$ $&$$r0   c                   C   s`  t dƒd t ddƒksJ ‚t dƒd t ddƒks4J ‚t ddƒd t ddƒksPJ ‚t ddƒd t ddƒkslJ ‚t ddƒd t ddƒksˆJ ‚t ddƒd t ddƒks¤J ‚t d	dƒd t ddƒksÀJ ‚t ddƒd t ddƒksÜJ ‚t d
ƒd t ddƒksöJ ‚t dƒd t ddƒksJ ‚t d
ƒd	 t ddƒks.J ‚t dƒd	 t ddƒksJJ ‚t ddƒt t ddƒkshJ ‚t ddƒt  t dtƒksˆJ ‚t dtƒt t dtƒks¦J ‚t dtƒt  t dtƒksÆJ ‚t dtƒt t dtƒksäJ ‚t dtƒt  t ddƒksJ ‚t ddƒd t ddƒks"J ‚t ddƒd dks:J ‚t ddƒt dƒ t ddƒks\J ‚d S )Nr   r   é	   r!   r   r   r   iåÿÿÿr   r   ç      Ð?éüÿÿÿç      Ð¿g      °?r/   r   r   r   r   Útest_interval_powc   s*       r5   c                   C   s   t dƒd t dƒksJ ‚d S )Nr   r   r   )r   r   r   r   r   Útest_interval_sqrtz   s    r6   c                   C   sÀ	  t ddƒt ddƒ t t dƒks$J ‚t ddƒt ddƒ t dtƒksFJ ‚t ttƒt ttƒ t dtƒkshJ ‚t ttƒt dtƒ t dtƒksŠJ ‚t ttƒt ddƒ t ttƒks¬J ‚t dtƒt dtƒ t dtƒksÎJ ‚t dtƒt ddƒ t dtƒksðJ ‚t dtƒt ddƒ t dtƒksJ ‚t dtƒt dtƒ t dtƒks8J ‚t ddƒt dtƒ t ddƒks\J ‚t ddƒt dtƒ t d	d
ƒks€J ‚t t dƒt dtƒ t t d
ƒks¨J ‚t t tƒt dtƒ t t tƒksÐJ ‚t dtƒt dtƒ t dtƒksôJ ‚t d	tƒt dtƒ t dtƒksJ ‚t ddƒt ttƒ t ddƒks<J ‚t ddƒt ttƒ t ddƒks`J ‚t ddƒt ttƒ t ddƒks„J ‚t t dƒt ttƒ t t dƒks¬J ‚t t dƒt ttƒ t t dƒksÔJ ‚t t tƒt ttƒ t t tƒksüJ ‚t d	tƒt ttƒ t dtƒks J ‚t dtƒt ttƒ t dtƒksDJ ‚t dtƒt ttƒ t dtƒkshJ ‚t ttƒt ttƒ t dtƒksŒJ ‚t ddƒt ddƒ t t t
 ƒks´J ‚t ddƒt ddƒ t dt
 ƒksÚJ ‚t ddƒt ddƒ t t dƒks J ‚t ddƒt ddƒ t t dƒks&J ‚t ddƒt ddƒ t dt
 ƒksLJ ‚t ddƒt ddƒ t dt
 ƒksrJ ‚t ddƒt ddƒ t t dƒks˜J ‚t ddƒt ddƒ t t dƒks¾J ‚t ddƒt ddƒ t t t
 ƒksæJ ‚t ddƒt ddƒ t t t
 ƒksJ ‚t ddƒt ddƒ t t t
 ƒks6J ‚t ddƒt ddƒ t t t
 ƒks^J ‚t ddƒt ddƒ t t t
 ƒks†J ‚t ddƒt ddƒ t t t
 ƒks®J ‚t ddƒt ddƒ t t t
 ƒksÖJ ‚t ddƒt ddƒ t t t
 ƒksþJ ‚t ddƒt ddƒ t t t
 ƒks&J ‚t ddƒt ddƒ t t dƒksLJ ‚t ddƒt ddƒ t dt
 ƒksrJ ‚t ddƒt ddƒ t dt
 ƒks˜J ‚t ddƒt ddƒ t t dƒks¾J ‚t ddƒt ddƒ t t dƒksäJ ‚t ddƒt ddƒ t dt
 ƒks
J ‚t ddƒt ddƒ t dt
 ƒks0J ‚t ddƒt ddƒ t ddƒksTJ ‚t ddƒt ddƒ t ddƒksxJ ‚t ddƒt ddƒ t ddƒksœJ ‚t ddƒt ddƒ t ddƒksÀJ ‚t ddƒt ddƒ t ddƒksäJ ‚t ddƒt ddƒ t ddƒksJ ‚t ddƒt ddƒ t ddƒks,J ‚t ddƒt ddƒ t ddƒksPJ ‚t ddƒt ddƒ t ddƒkstJ ‚t ddƒt ddƒ t ddƒks˜J ‚t ddƒt ddƒ t ddƒks¼J ‚t ddƒt ddƒ t ddƒksàJ ‚t ddƒt ddƒ t ddƒk	sJ ‚t ddƒt ddƒ t ddƒk	s(J ‚t ddƒt ddƒ t ddƒk	sLJ ‚t ddƒt ddƒ t ddƒk	spJ ‚t ddƒt ddƒ t t tƒk	s–J ‚t ddƒt ddƒ t t tƒk	s¼J ‚d S )Nr   r   r   r   r"   r   r3   é   éøÿÿÿé   iðÿÿÿç        r4   r   r   r2   g       Àg      @g       @g      ð¿g       @g       Àg      Àg      À?ç      ð?r/   r   r   r   r   Útest_interval_div}   s†    $""""""$$$$(($$$$$((($$$$(&&&&&&&(((((((((&&&&&&&$$$$$$$$$$$$$$$$&r<   c            
      C   sÖ  dt _t j} t j}t j}t j}| tdƒƒdks2J ‚|tdƒƒdksFJ ‚| tddƒƒtddƒksbJ ‚|tddƒƒtddƒks~J ‚| tddƒƒtdd	ƒksšJ ‚|tddƒƒtd
dƒks¶J ‚|tddƒƒtddƒksÒJ ‚| tddƒƒtddƒksîJ ‚| tddƒƒtddƒksJ ‚| tddƒƒtddƒks*J ‚|tddƒƒtddƒksHJ ‚|tddƒƒtddƒksfJ ‚tddƒ|tddƒƒv s„J ‚tddƒ|tddƒƒv s¢J ‚| tddƒƒs¶J ‚| tddƒƒtddƒksÔJ ‚| tddƒƒtddƒksòJ ‚tddƒ|tddƒƒv sJ ‚|tddƒƒtdd ƒks.J ‚|tddƒƒtd!d"ƒksLJ ‚d#t _dd$d%  tdƒ }d&D ]¸}|t _d|dt|ƒ ƒv sŽJ ‚d|dd$d%  t|ƒ ƒv s°J ‚d| d't|ƒ ƒv sÊJ ‚d| |t|ƒ ƒv säJ ‚d| dt|ƒ ƒv sþJ ‚d| dd$d%  t|ƒ ƒv sjJ ‚qjdt _| tdtƒƒtddƒksHJ ‚|tdtƒƒtddƒksfJ ‚| tt dƒƒtddƒks†J ‚|tt dƒƒtddƒks¦J ‚|tddƒƒ}t|j	ƒ 
t d¡¡sÐJ ‚t|jƒ 
t d¡¡sìJ ‚t  tddƒ¡}t|j	ƒ 
t d¡¡sJ ‚t|jƒ 
t d¡¡s4J ‚td(d)dƒD ]~}t  |t j ¡}	d|	v sbJ ‚|	dkspJ ‚|	dks~J ‚t  |d t j ¡}	d|	v s J ‚|	dks®J ‚|	dks@J ‚q@td*d+dƒD ]„}t  |t j ¡}	d|	v sîJ ‚|	dksüJ ‚|r|	dksJ ‚t  |d t j ¡}	d|	v s2J ‚|	dks@J ‚|	dksÌJ ‚qÌtd*d)ƒD ]t}t  |d t j ¡}	|	j	d  k r|	jk s–n J ‚t  |t j ¡}	|r\|	j	d  k rÈ|	jk s\n J ‚q\d S ),Nr   r   r   g‹µ(Já?r;   gï	Tíê?r   grSW&¢Ú¿gŒµ(Já?gî	Tíê?r	   g°ÊÏ¯&ã?r   r   ç      ø?g§ùÅOÕ²?gï	Tíê¿gðKtè®Þ?g0Žä.ÿ++g0Žä.ÿ;«ç      @r   g_Át÷í¿gÀ$Û¦êä¿r   g      @gÙJkp…'Ò?gIÔ<l­æ?g±ÊÏ¯&ã?gF´Ñêöí?g¯ÜÝ¹7è¿gbº~;sÖ¿g4™àõ¯î¿gV°
NÉ“æ¿é7   r   r   )r   é(   éP   g      @r
   é   iúÿÿÿr7   )r   r   ÚcosÚsinÚtanr'   r   r   r#   r$   ÚaeÚmpr%   ZcotÚrange)
rC   rD   rE   r'   r   Úpr   ÚvÚnr*   r   r   r   Útest_interval_cos_sinÃ   sŽ    "&  "rL   c                   C   sh  dt _dt_t  dd¡dks J ‚t  dd¡dks4J ‚t  dd¡dksHJ ‚dt  ddgddg¡v sdJ ‚d	t  ddgddg¡vs€J ‚t  dd¡d
 dks˜J ‚t  ddgddg¡d d t  ddgddg¡ksÌJ ‚t  ddgddg¡d t  ddgddg¡ksüJ ‚t  ddgddg¡d t  ddgddg¡ks.J ‚t  ddgddg¡d t  ddgddg¡ks`J ‚t  d¡ t d¡¡s|J ‚t  d¡ t d¡¡s˜J ‚t  dd¡t  dd¡  t dd¡t dd¡ ¡sÐJ ‚d
t  d¡d v sèJ ‚d
t  d¡d v s J ‚tt  d¡ƒdksJ ‚tt  t	¡ƒt	ks0J ‚tt  dd¡ƒdksJJ ‚tt  d¡ƒdksbJ ‚tt  dd¡ƒdks|J ‚tt  dddg¡ƒt  ddg¡ks¤J ‚tt  dddg¡ƒt  ddg¡ksÌJ ‚tt  ddgddg¡ƒt  ddg¡ksøJ ‚tt  ddgddg¡ƒt  ddg¡ks$J ‚t  dd¡d dks>J ‚t  dd¡d dksXJ ‚t  dd¡d dksrJ ‚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 dksôJ ‚t  
d¡ t 
d¡¡sJ ‚t  d¡ t d¡¡s,J ‚t  
d¡ t 
d¡¡sHJ ‚t  d¡ t d¡¡sdJ ‚d S )Nr   r   r   ù       @      @y       @      @ù      ð?      @r   r   y       @      @y              ð?y              @r   r   r7   y               @r8   r3   r   r   r   r   r!   é   é   y      À      (@y      GÀ      "@y     À]À      ^Ày     €^@     ¨‚Ày      Ð?      Ð¿y              À¿)r   r   rG   r   ÚexprF   Úlogr#   r(   r   rC   rD   r   r   r   r   Útest_interval_complex  sL    40228((,,rS   c                  C   s$  dt _dt_t d¡dksJ ‚t d¡dks0J ‚t ddg¡dksFJ ‚t d¡ t¡sZJ ‚t d¡ t d¡¡stJ ‚t ddgddg¡} t | ¡}|j t  d	¡¡s¨J ‚|j t  d
¡¡s¾J ‚t ddgddg¡} t | ¡}|j t  d¡¡sòJ ‚|j t  d
¡¡s
J ‚t ddgddg¡} t | ¡}|j t  d¡¡s@J ‚|j t  d¡¡sXJ ‚t ddgddg¡} t | ¡}|j t  d¡¡sŽJ ‚|j t  d¡¡s¦J ‚t ddgddg¡} t | ¡}|j t  d¡¡sÜJ ‚|j t  d¡¡sôJ ‚t ddgddg¡} t | ¡}|j t  d¡¡s*J ‚|j t  d¡¡sBJ ‚t ddgddg¡} t | ¡}|j t  d¡¡sxJ ‚|j t  d¡¡sJ ‚t ddgddg¡} t | ¡}|j t j ¡sÄJ ‚|j t j¡sØJ ‚t ddgddg¡} t | ¡}|j t j ¡sJ ‚|j t j¡s J ‚d S )Nr   r   r   r!   rM   r   r   r   y      ð¿      @y       À      @r   rN   r   y      ð?      @y      ð?       Àr3   y      ð?      Ày       @      Ày      ð¿      Ày       À      Ày      ð¿      À)	rG   r   r   ÚargrF   r'   r   r$   r%   )ÚzÚtr   r   r   Útest_interval_complex_arg9  sV    








rW   c                  C   s  dt _t  ddg¡} |  d¡d u s&J ‚|  d¡d u s8J ‚|  d¡d u sJJ ‚|  d¡du s\J ‚|  d¡du snJ ‚t  d¡} |  d¡d	u sŠJ ‚|  d
¡d	u sœJ ‚|  d¡d	u s®J ‚|  d¡du sÀJ ‚|  d¡du sÒJ ‚|  t  ddg¡¡d u sîJ ‚|  t  ddg¡¡d u sJ ‚d S )Nr   r   r   r=   g®Gáz @Fg®Gáz®ï?r>   Tg     @gþÿÿÿÿÿ@g5^ºI@gË¡E¶óý@g     @)r   r   r#   rF   )r*   r   r   r   Útest_interval_aef  s    
rX   c                  C   s.  d t _} tddƒ}t j|| ddddks.J ‚t j|| dddd	d
ksJJ ‚t j|| dddksbJ ‚t j|| ddddks|J ‚t j|| ddddks–J ‚tddƒ}t j|| dddks¸J ‚t jt  tdƒ¡| ddddksÜJ ‚t jtddƒ| dddksúJ ‚t j}t jt  tdƒ¡| dddks$J ‚dt _d S )Nr    r   r   Z	plusminusr   )ÚmodeÚ	error_dpsú
1.5 +- 0.5F)rY   Ú
use_spacesrZ   z1.5+-0.5Úpercent)rY   z1.5 (33.33%)Úbrackets)rY   r\   z	[1.0,2.0])ú<ú>)rY   r^   z
<1.0, 2.0>z5.2582327113062393041z5.2582327113062749951Údiffz5.2582327113062[393041, 749951]z*0.54030230586813971740093660744[2955,3053]Z1e123Z1e129z[1.0e+123, 1.0e+129]z5000.1z-3.2797365856787867069110487[0926, 1191]e+2171r   )r   r   r   ZnstrrC   rQ   )rK   r*   rQ   r   r   r   Útest_interval_nstrw  s    


$$rb   c                   C   s¢   dt _t  d¡ttdƒtdƒƒks&J ‚tddƒt  d¡v s>J ‚t  d¡tddƒksVJ ‚t  d	¡td
dƒksnJ ‚t  d¡tddƒks†J ‚t  d¡tddƒksžJ ‚d S )Nr   r[   z1.0z2.0r   r   z'1.5 (33.33333333333333333333333333333%)z[1, 2]z1[2, 3]rO   rP   z1.[23,46]e-8z1.23e-8z1.46e-8z12[3.4,5.9]e4z123.4e+4z125.9e4)r   r   Úconvertr   r#   r   r   r   r   Útest_mpi_from_strˆ  s     rd   c                  C   s¦  dt _dt_t d¡dksJ ‚t d¡dks0J ‚t d¡dksBJ ‚t d¡dksTJ ‚t d¡dksfJ ‚t d¡t tgks~J ‚t d¡dksJ ‚t d¡dks¢J ‚t d¡dks´J ‚dt d¡v sÆJ ‚t d¡dksØJ ‚t d¡dksêJ ‚d	t d¡v süJ ‚t ddgdd
g¡t ddgddg¡t ddgdd
g¡t ddgddg¡t ddgdd
g¡t ddgdd
g¡t ddgddg¡g} | D ]}t  t  |j	|j
¡¡t  t  |j|j
¡¡t  t  |j	|j¡¡t  t  |j|j¡¡g}d|jv r|t  |j	¡t  |j¡g7 }tdd„ |D ƒƒ}tdd„ |D ƒƒ}tdd„ |D ƒƒ}tdd„ |D ƒƒ}t |¡}|j	 |¡shJ ‚|j |¡szJ ‚|j
 |¡sŒJ ‚|j |¡s‚J ‚q‚d S )Nr   r   r   r   r   r   gkï´‘ø[Àr"   gï9úþB.æ?r   r3   r   r!   r   c                 S   s   g | ]
}|j ‘qS r   ©Úreal©Ú.0Úyr   r   r   Ú
<listcomp>±  ó    z'test_interval_gamma.<locals>.<listcomp>c                 S   s   g | ]
}|j ‘qS r   re   rg   r   r   r   rj   ²  rk   c                 S   s   g | ]
}|j ‘qS r   ©Úimagrg   r   r   r   rj   ³  rk   c                 S   s   g | ]
}|j ‘qS r   rl   rg   r   r   r   rj   ´  rk   )rG   r   r   ZrgammaZfacÚgammar   Zloggammar   r$   Úcr%   Údrm   ÚminÚmaxrF   )Úxsr*   ZysZmin_realZmax_realZmin_imagZmax_imagrU   r   r   r   Útest_interval_gamma‘  sP    ú
ý
rt   c                  C   s¬   dt _dt_dddddttdƒƒffD ]€\} }t| |ƒ}t|jƒt|ƒksNJ ‚t|jƒt| ƒksdJ ‚t|jƒt|ƒkszJ ‚t	|jƒt	| ƒksJ ‚t	|jƒt	|ƒks&J ‚q&d S )Nr   )g       €r   )r:   r   )r;   r   )ú-infg     €4@ru   r   )
rG   r   r   Úfloatr&   r   Úintr%   r$   Úcomplex)r$   r%   Úrr   r   r   Útest_interval_conversions»  s    ÿ
rz   N)Zmpmathr   r   r,   r0   r5   r6   r<   rL   rS   rW   rX   rb   rd   rt   rz   r   r   r   r   Ú<module>   s   +FM)-	*