
    g;                         d dl Z d dl T d dlT d dlZd dlZ	 eZn# e$ r eZY nw xY w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 Zd Zd Zd Zd Zd Zd ZdS )    N)*c                     t          d          t          dd          k    sJ t          d          t          d          k    sJ t          d          t          dd          k    sJ t          d          dk    sJ t          d          dk    sJ t          d          dk    sJ t          d          dk    sJ t          d          dk    sJ d S )N   r   gh㈵>       @      @z2.0mpfmpc     W/var/www/html/ai-engine/env/lib/python3.11/site-packages/mpmath/tests/test_basic_ops.pytest_type_comparer      s    q66S1XXq66SVVq66SG__$$$$q66S====q66S====q66Q;;;;q66U????q66U??????r   c                     t          d          t          d          z   dk    sJ t          d          dz   dk    sJ t          d          dz   dk    sJ dt          d          z   dk    sJ dt          d          z   dk    sJ dt          d          z   dk    sJ t          d          t          d          z   dk    sJ t          d          dz   dk    sJ t          d          dz   dk    sJ t          d          dz   dk    sJ dt          d          z   dk    sJ dt          d          z   dk    sJ dt          d          z   dk    sJ d S )N      @   g      @r         @        r   r   r   r   test_addr      x   s88c!ff####s88a<3s88c>S    s3xx<3S>S    CHH####s88c!ff####s88a<3s88c>S    s88t####s3xx<3S>S    CHH######r   c                     t          d          t          d          z
  dk    sJ t          d          dz
  dk    sJ t          d          dz
  dk    sJ dt          d          z
  dk    sJ dt          d          z
  dk    sJ dt          d          z
  dk    sJ t          d          t          d          z
  dk    sJ t          d          dz
  dk    sJ t          d          dz
  dk    sJ t          d          dz
  dk    sJ dt          d          z
  dk    sJ dt          d          z
  dk    sJ dt          d          z
  dk    sJ d S )Nr   r   g      r         ?r   r   r   r   r   test_subr   %   sx   s88c!ff$$$$s88a<4s88c>T!!!!s3xx<3S>S    CHH####s88c!ff$$$$s88a<4s88c>T!!!!s88t$$$$s3xx<3S>S    CHH######r   c                     t          d          t          d          z  dk    sJ t          d          dz  dk    sJ t          d          dz  dk    sJ dt          d          z  dk    sJ dt          d          z  dk    sJ dt          d          z  dk    sJ t          d          t          d          z  dk    sJ t          d          dz  dk    sJ t          d          dz  dk    sJ t          d          dz  dk    sJ dt          d          z  dk    sJ dt          d          z  dk    sJ dt          d          z  dk    sJ d S )Nr   r   g      @r   r   r   r   r   r   test_mulr   4   r   r   c                     t          d          t          d          z  dk    sJ t          d          dz  dk    sJ t          d          dz  dk    sJ dt          d          z  dk    sJ dt          d          z  dk    sJ dt          d          z  dk    sJ t          d          t          d          z  dk    sJ t          d          dz  dk    sJ t          d          dz  dk    sJ t          d          dz  dk    sJ dt          d          z  dk    sJ dt          d          z  dk    sJ dt          d          z  dk    sJ d S )N   r   r   r         @      @        r   r   r   r   r   test_divr   C   st   q66CFF?c!!!!q66A:q66C<3s1vv:Q<3CHH####q66CFF?c!!!!q66A:q66C<3q66T?c!!!!s1vv:Q<3CFF?c!!!!!!r   c                     t          d          t          d          z  dk    sJ t          d          dz  dk    sJ t          d          dz  dk    sJ dt          d          z  dk    sJ dt          d          z  dk    sJ dt          d          z  dk    sJ t          d          t          d          z  dk    sJ t          d          dz  dk    sJ t          d          dz  dk    sJ t          d          dz  dk    sJ dt          d          z  dk    sJ dt          d          z  dk    sJ dt          d          z  dk    sJ d S )Nr   r   g      k@r   r   r   r   r   r   r   r   test_powr    R   sx   q66SVVu$$$$q66Q;%q66S=E!!!!A;%#a&&=E!!!!SXX&&&&q66SVVu$$$$q66Q;%q66S=E!!!!q66du$$$$A;%#a&&=E!!!!SVVu$$$$$$r   c                     dt          d          z   t          d          dz   cxk    rdk    sn J dt          d          z
  t          d          dz
   cxk    rdk    sn J dt          d          z  t          d          dz  cxk    rdk    sn J dt          d          z  t          d          dz  cxk    rdk    sn J dt          d          z   t          d          dz   cxk    rdk    sn J dt          d          z
  t          d          dz
   cxk    rdk    sn J dt          d          z  t          d          dz  cxk    rdk    sn J d	t          d          z  t          d          d
z  cxk    rdk    sn J d S )N   r      r   r   g      ?r   r   r   )r	   r   r   r   test_mixed_miscr%   a   s   s1vv:Q!((((q((((((s1vv:3q66A:,,,,",,,,,,s1vv:Q!((((q((((((s1vv:Q!((((q((((((Q<3q66C<,,,,1,,,,,,Q<SVVc\?0000b000000Q<3q66C<,,,,1,,,,,,Q<3q66C<,,,,1,,,,,,,,r   c                  V   dt           _        t          d          t          d          z   dk    sJ t          d          t          d          dz  z   dk    sJ t          d	          t          d
          z   t          d	          k    sJ t          d
          t          d	          z   t          d	          k    sJ t          d          t          d
          z   t          d
          k    sJ t          d
          t          d          z   t          d
          k    sJ t          d          dz   dk    sJ t          d          dz   dk    sJ t          d          dz   t          d          k    sJ t          d          t          d          z   t          d          k    sJ d S )N   r#   iir"   g?P   gQ8?)r"       d(	 r   )r"    d(	 gV瞯<g#B;g@r\+`;r   )mpdpsr	   r   r   r   test_add_miscr-   k   s   BFq66CHH####q66CHHRK:----  3q66)S1A-B-BBBBBq66C()))S1A-B-BBBBB !!CFF*c!ff4444q66C)***c!ff4444q66E>Qq66E>Qx==1H----q66CMM!S]]222222r   c                      dt          d          z   dk    sJ t          d                              d          rJ t          d                              d          sJ d S )Nr"   r   r   g      @y       @V瞯<)r
   aer   r   r   test_complex_miscr0   x   s]    s1vv:????1vvyy#####x==Ar   c            
          dD ]W} dD ]R}dD ]M}dD ]H}t          | |          t          ||          z  t          | |          t          ||          z  k    sJ INSXd S )N)r   r   )r   r   r   r#   )r      )r
   complex)abcds       r   test_complex_zerosr9   ~   s     J J 	J 	JA J J J JAq88C!HH,!WQq\\0IIIIIIJJ	JJ Jr   c                     t          dd          D ]1} t          t          |                     t          |           k    sJ 2t          t          d                    t          d          k    sJ t          t          dd                    t          d          k    sJ t          t                    sJ t          t          d                    t          d          k    sJ t          t          d	d                    t          t          d
d                    k    sJ ddlm} t          t                              dd                    sJ t          t                              dd                    dk    sJ t          t                              dd                    t          d          k    sJ t          t                              dd                    t          d          k    sJ t          t                              dd                    t          d          k    sJ t          t                              dd                    t          d          k    sJ t          j	        dk    rzt          t          d          ddz  z            t          ddz            k    sJ t          t          d          ddz  z            t           |dddz                      k    sJ d S d S )Ni    r   r   r   y       @      @1e10001e10000d      r   mpqr"   r3   r   r   i  )
rangehashr	   r
   infmpmath.rationalrA   r+   sysversion_info)irA   s     r   	test_hashrK      s   4 ' 'CFF||tAww&&&&&C>>T#YY&&&&Aa>>T$ZZ''''99H$y//1111C!!""d3s8+<+<&=&=====######qq!!!!r!b))))qQ''''qQ''''qS		))))
6!!CFF1d7N##tAtG}}4444CFF1d7N##tCC!T'NN';';;;;; "!;;r   c            	         dt           _        t          d          } t          t	          t
          | dt                    t
          dt                    t          d          k    sJ t          t
          | dt                    t
          k    sJ t          t
          t          t
          | dt                    dt                    t          d          k    sJ t	          t
          | dt                    t
          k    sJ d S )Nr'   gJz55   g      <g      <)r+   r,   
from_floatmpf_submpf_addfoneround_up
round_down)r5   s    r   test_add_roundingrT      s    BF5A74B114XFF*UkJlJlllll4B))T11114q"j992zJJjYoNpNppppp4B
++t333333r   c                  0   t          d                              t          d          d          sJ t          d                              t          d          d          rJ t          d                              t          d                    rJ d S )Ng333333?ge533?gHz>g&.>gKugX͈N)r	   r/   r   r   r   test_almost_equalrV      s    s88;;s:-----3xx{{3z??D11111&''**3/A+B+BCCCCCCCr   c            	      Z   dd l } | j        t          f| j        t          f| j        t          f| j        t          fg}t          d          }t          d          }t          d          }t          d          }||||fD ] }||||fD ]}|D ]\  }}	|	t          urdt          _         |||          }
dt          _         |||          }dt          _         |||          } |	||d	          |k    sJ  |	||          |k    sJ |	t          urF |	||t          	          |
k    sJ  |	||t          
          |
k    sJ  |	||d          |
k    sJ t          t          |d          t          	          |k    sJ t          |          |
  k    sJ "dt          _        d S )Nr   gHzG?gGz?yRQ?HzG@yHzG?Gzr?   <   rM   prec)r,   Texactr'   )operatoraddfaddsubfsubmulfmultruedivfdivr	   r
   r+   rZ   rF   fnegr,   )r]   opsr5   r6   r7   r8   xyopfopz0z1z2s                r   test_arithmetic_functionsro      s   OOOL$(,!5d7K		4 "CD		AD		AJAJA!AY * *Aa 	* 	*A * *Cd??!BGAaBR!WWR!WWs1ab)))R////s1ayyBd??3q!#..."44443q!---33333q!4000B6666D4000s;;;rAAAABxxbS6)))))*	*" BFFFr   c            
         t          j        d           dD ]} dD ]}| t          _        d| dz
  z  }d| dz  dz
  z  }t	          d          D ]}t          j        | |          }t          j        | |          }t          ||          |k    sJ t          t          ||                    |k    sJ t          t          t          |          |                    |k    sJ t          |          t          |          z   ||z   k    sJ t          |          t          |          z
  ||z
  k    sJ t          |           | k    sJ t          j        | |          }t          j        | |          }t          |          t          |          z  ||z  k    sJ t          t          |          t          |          t          j        |          t          ||z            k    sJ אdt          _        d S )Nr   )r   
      (   r>      i  )r8   ufr7   nrq   r   )roundingr'   )randomseedr+   r,   rD   randintr	   intstrmpf_mulfrom_intrZ   )rZ   rx   MM2rJ   r5   r6   s          r   test_exact_integer_arithmeticr      s   
KNNN. ] ]1 	] 	]HBFT!VAdAgaiB2YY ] ]NA2q))NA2q))1x000A55553q844455::::3s1vv999::a????1vvA!a%////1vvA!a%////Aw1"}}}}NB3++NB3++1vvA!A#----x{{HQKK(KKxXYZ[X[}}\\\\\]		]" BFFFr   c                  V    t          t          d          t                    dk    sJ d S )Nr   )to_intr   round_nearestr   r   r   test_odd_int_bugr      s)    (1++}--222222r   c                      dt           _        t          t          d          dz            dd         dd d         k    sJ t          t                    dd         dd d         k    sJ d	t           _        d S )
Ni  r   r   rB   
9518488472	   
2164201989r'   r+   r,   r}   r	   pir   r   r   test_str_1000_digitsr      sq    BFs1vvs{CF#|BQB'77777r773r6?l2A2.....BFFFr   c                      dt           _        t          t          d          dz            dd         dd d         k    sJ t          t                    dd         dd d         k    sJ d	t           _        d S )
Ni'  r   r   r   rB   
5873258351r   
5256375678r'   r   r   r   r   test_str_10000_digitsr      sq    BFs1vvs{CF#|BQB'77777r773r6?l2A2.....BFFFr   c                      d } g }g }t          | |j        |j                  } |d          dk    sJ  |d          dk    sJ |d         di fk    sJ |d         dk    sJ d S )Nc                     | dz  S )Nr   r   )rh   s    r   <lambda>ztest_monitor.<locals>.<lambda>   s
    !Q$ r   r   r   r#      r   )r   )monitorappend)rv   r5   r6   gs       r   test_monitorr      s    A
A
A18QX&&A1Q44199991Q442::::Q4D":Q41999999r   c                     t          t          d                    dt           fk    sJ t          t          d                    dt           fk    sJ t          t          d                    dk    sJ t          t          d                    dk    sJ t          t          d                    dk    sJ t          t          d                    d	k    sJ t          t          d
                    dk    sJ t          t          d                    dk    sJ t          t          d                    dk    sJ t          t          d                    d	k    sJ t          t          d                    dk    sJ t          t          d                    dk    sJ t          t          d                    dk    sJ t          t          d                    dk    sJ t          t          d                    dk    sJ t          t          d                    dt           fk    sJ t          t          d                    dk    sJ t          t          d                    dk    sJ d S )Ng)r   r   gGz)r   g5^I)r   ig9m4 )r   ig333333gQgˡEg):y      ?y      {Gz?y?yGz{Gz?y5^IMbP?r   g{Gz?)r   r   z1e-100)r   i)nint_distancer	   rF   r
   r   r   r   test_nint_distancer      sL   R!!b3$Z////R!!b3$Z////T##x////U$$0000V%%1111W&&)3333T##x////U$$0000V%%1111W&&)3333W&&(2222X''83333Y((H4444[))**h6666]++,,8888Q  QI----T##w....X''9444444r   c                     dt           _        t          dd          D ]} t          |           | k    sJ t          | dz             | k    sJ t	          |           | k    sJ t	          | dz             | dz   k    sJ t          |           | k    sJ | dz  dk    rt          | dz             | dz   k    sJ t          | dz             | k    sJ t          t                    t          k    sJ t          t                    t          k    sJ t          t          t                              sJ t	          t                    t          k    sJ t	          t                    t          k    sJ t          t	          t                              sJ t          t                    t          k    sJ t          t                    t          k    sJ t          t          t                              sJ t          d          dk    sJ t          d	          dk    sJ t          d
          dk    sJ t          d          dk    sJ t          d          dk    sJ t          d          dk    sJ t          d          dk    sJ t          d          dk    sJ t          d          dk    sJ t          d          dk    sJ t          d          dk    sJ t          d          dk    sJ t	          d          dk    sJ t	          d	          dk    sJ t	          d
          dk    sJ t	          d          dk    sJ t	          d          dk    sJ t	          d          dk    sJ t	          d          dk    sJ t	          d          dk    sJ t	          d          dk    sJ t	          d          dk    sJ t	          d          dk    sJ t	          d          dk    sJ t          d          dk    sJ t          d	          dk    sJ t          d
          dk    sJ t          d          dk    sJ t          d          dk    sJ t          d          dk    sJ t          d          dk    sJ t          d          dk    sJ t          d          dk    sJ t          d          dk    sJ t          d          dk    sJ t          d          dk    sJ t          d          dk    sJ t	          d          dk    sJ t          d          dk    sJ t          dd          D ]} t          |           dk    sJ t          d          dk    sJ t          d          dk    sJ t          d          dk    sJ t          d           d!k    sJ t          d"          d!k    sJ t          d#          d!k    sJ t          d$          dk    sJ t          d%          }t          |          |k    sJ t          |           dk    sJ t          d&          }t          | d'          t          d|d()          k    sJ t          d*          d+k    sJ d S ),Nr'   r   rq   r   r"   r   g?r   g?grB   gg  _Br)   g33 _Bg  _ld(	 g33 _g0.++g0.+g}Ô%ITg}Ô%Il   d(	 r*   y	@ffffff@      @      @y      @      @y      @      @g      ?g      ?g      @g      пg      ?g      g      1e100000000000000z1e-100000000000000z1e-400rY   Tr[   y      
@      @y      ?      ?)r+   r,   rD   floorceilnintrF   ninfisnannanfracr	   ra   )rw   ru   s     r   test_floor_ceil_nint_fracr   
  s   BF3r]] 
$ 
$Qxx1}}}}QsU||q    Aww!||||AcE{{ac!!!!Aww!||||q5A::#;;!A#%%%%%#;;!#####::;;$s99::c99::c::????::????;;";;";....;....  N2222  N2222==A>>R<<5    ==F""""99>>>>99>>>>::????::????-////-////<////<////<<1==A;;%<<6!!!!99>>>>99>>>>::????::+-----////<////>1111<<1==A;;%<<6!!!!??d"""">>T!!!!>>T!!!!3r]]  Aww!|||||::::::;;$;;$;;$#$$)))) !!A77a<<<<88q====HAtAq5555555
z))))))r   c                  &   ddl m}  t          t                    dk    sJ t          d          dk    sJ t          t	          d                    dk    sJ t          t
                    dk    sJ t          t          dt                              dk    sJ t          t          dt                              dk    sJ t          t          t          t                              dk    sJ t          t          dd                    dk    sJ t          t          t          t
                              dk    sJ t          t          t
          t
                              dk    sJ t           | d                    dk    sJ t           | d                    dk    sJ t          t
                    dk    sJ t          t
                     dk    sJ t          d          dk    sJ t          t                    dk    sJ t          d	          dk    sJ t          t          t
                              dk    sJ t          t          dt
                              dk    sJ t          t          t
          d                    dk    sJ t          t          t
          t
                              dk    sJ t          t          t          t
                              dk    sJ t          t          t
          t                              dk    sJ t          t          t          t                              dk    sJ t           | d                    dk    sJ t           | d                    dk    sJ t          d          dk    sJ t          d
          dk    sJ t          t	          d
                    dk    sJ t          d          dk    sJ t          t	          d                    dk    sJ t          d          dk    sJ t          t
                    dk    sJ t          t
                     dk    sJ t          t                    dk    sJ t          t          t
                              dk    sJ t          t          dd                    dk    sJ t          t          dd                    dk    sJ t          t          dd                    dk    sJ t          t          dd                    dk    sJ t          t          dt                              dk    sJ t          t          dt
                              dk    sJ t          t          dt                              dk    sJ t          t          dt
                              dk    sJ t          t          dt
                               dk    sJ t          t          t          d                    dk    sJ t          t          t
          d                    dk    sJ t          t          t          d                    dk    sJ t          t          t
          d                    dk    sJ t          t          t
          t                              dk    sJ t          t          t          t
                              dk    sJ t          t          t          t                              dk    sJ t          t          t
          t
                              dk    sJ t           | d                    dk    sJ t           | d                    dk    sJ t          d          dk    sJ t          d          dk    sJ t          t          d                    dk    sJ t          t          d                    dk    sJ t          t	          d                    dk    sJ t          t	          d                    dk    sJ t          t	          d                    dk    sJ t          t	          d                    dk    sJ t          d          dk    sJ t          t                    dk    sJ t          t
                    dk    sJ t          t
                     dk    sJ t          t          d                    dk    sJ t          t          d                    dk    sJ t          t          d                    dk    sJ t          t          dt
                              dk    sJ t          t          t
                              dk    sJ t          t          dd                    dk    sJ t          t          dd                    dk    sJ t          t          dd          d          dk    sJ t          t          dd          d          dk    sJ t          t          dd          d          dk    sJ t          d	          dk    sJ t          d	d          dk    sJ t          d          dk    sJ t           | d                    dk    sJ t           | d                    dk    sJ t           | d                    dk    sJ t           | d                    dk    sJ t           | d                    dk    sJ t           | d                    dk    sJ t                              d          dk    sJ t                              d          dk    sJ t                              d          dk    sJ t                              d          dk    sJ t                              d          dk    sJ t                              t                              dd                    dk    sJ t                              t                              dd                    dk    sJ t                              t                              dd                    dk    sJ t                              t                              dd                    dk    sJ t                              t                              dd                    dk    sJ t                              d          dk    sJ t                              d          dk    sJ t                              d          dk    sJ t                              d          dk    sJ t                              d          dk    sJ d S )Nr   r@   Tr   Fr   rC   )r   r"   r   g      @g        r   g	@)gaussianr   )r   r   )r   r   r2   )r"   r"   )rB   r"   r"   rB   gg      y                y              y        y      𿚙?y        ?)rG   rA   r   r   r	   rF   r
   isinfisnormalfloatisintlongr+   isnpintr@   s    r   test_isnan_etcr   W  s   ######::88uQ==E!!!!::Qs$$$$Qs$$$$S$&&&&Qq??e####S$&&&&S%''''U%%%%U%%%%::#;;$88u::;;%S??d""""Qs$$$$S$$$$S$&&&&S$&&&&S$&&&&S%''''U%%%%U%%%%A;;$C==D    CHH%%%%A;;%CFFu$$$$C==E!!!!C==E!!!!SD>>U""""C==E!!!!E#JJ5((((C!HH&&&&C!HH%%%%C!HH%%%%C!HH%%%%C#JJ5((((C#JJ5((((C#JJ5((((C#JJ5((((C3$KK  E))))CAJJ5((((CAJJ5((((CAJJ5((((CAJJ5((((CCLL!!U****CCLL!!U****CCLL!!U****CCLL!!U****CCJJ4''''CCJJ5((((88t88ta>>T!!!!a>>T!!!!Q==D    Q==D    R>>T!!!!S??e####::::::#;;%Q==D    Q==D    S??e####Qs%%%%S??e####Qq??e####Qq??e####Qq4(((D0000Qq4(((D0000Qq4(((D0000;;%%%%----;;$U%%%%U%%%%U$$$$U$$$$U$$$$V%%%%::a==D    ::a==E!!!!::b>>T!!!!::du$$$$::dt####::bffQqkk""e++++::bffRll##u,,,,::bffRll##t++++::bffQqkk""d****::bffQqkk""e++++::dt####::e$$$$::g%''''::g%''''::f&&&&&&r   c                     t          t                    t          d          k    sJ t          t                    t          d          k    sJ t          t                    j        t          d          j        k    sJ d S )NrF   z-infr   )r	   finffninffnan_mpf_r   r   r   test_issue_438r     sd    t99E

""""u::V$$$$t99?c%jj.......r   )mpmathmpmath.libmpry   rH   r   	NameErrorr|   r   r   r   r   r   r    r%   r-   r0   r9   rK   rT   rV   ro   r   r   r   r   r   r   r   r   r   r   r   r   <module>r      s             



DD   DDD  $ $ $$ $ $$ $ $" " "% % %- - -3 3 3  J J J< < <,4 4 4D D D
  8  .3 3 3      5 5 5(K* K* K*Zf' f' f'R/ / / / /s    ##