
    \h                         S r SSKJr  SSKJr  SSKJr  SSKJrJ	r	J
r
Jr  SSKJrJrJrJrJrJrJrJrJrJrJrJrJrJr  \ " S S\	\5      5       r\ " S	 S
\
\5      5       r\R<                  r\ " S S\5      5       r g)zReal and complex elements.     )MPQ)DomainElement)public)PythonMPContext_mpf_mpc	_constant)MPZ_ONEfzerofonefinffninffnanround_nearestmpf_mulrepr_dps	int_typesfrom_int
from_floatfrom_strto_rationalc                   <    \ rS rSrSrSrS r\" S \5      rS r	Sr
g)RealElement   zAn element of a real domain. __mpf__c                     Xl         g Nr   selfvals     V/var/www/auris/envauris/lib/python3.13/site-packages/sympy/polys/domains/mpelements.py_set_mpfRealElement._set_mpf           c                     U R                   $ r   r   r    s    r"   <lambda>RealElement.<lambda>       $,,r&   c                 .    U R                   R                  $ r   context_parentr(   s    r"   parentRealElement.parent       ||###r&   N)__name__
__module____qualname____firstlineno____doc__	__slots__r#   property_mpf_r0   __static_attributes__ r&   r"   r   r      s#    'I .9E$r&   r   c                   <    \ rS rSrSrSrS r\" S \5      rS r	Sr
g)ComplexElement    z An element of a complex domain. __mpc__c                     Xl         g r   r@   r   s     r"   _set_mpcComplexElement._set_mpc&   r%   r&   c                     U R                   $ r   r@   r(   s    r"   r)   ComplexElement.<lambda>)   r+   r&   c                 .    U R                   R                  $ r   r-   r(   s    r"   r0   ComplexElement.parent+   r2   r&   N)r3   r4   r5   r6   r7   r8   rC   r9   _mpc_r0   r;   r<   r&   r"   r>   r>       s#    *I .9E$r&   r>   c                   j    \ rS rSrSS jrS rS rS rS r\	S 5       r
\	S	 5       rSS
 jrSS jrSrg)	MPContext0   Nc                     U[         /U l        Uc  U R                  U5        OU R                  U5        [        U l        [        U l        U R
                  [        U R                  /U R
                  l	        U R                  [        U R                  /U R                  l	        U(       a  X R
                  l
        OX R                  l
        [        U l        U R
                  [        U R                  /U R                  l	        X R                  l
        U R
                  U R                  U R                  /U l        SU l        SU l        Uc  U R!                  5       U l        O'USL a  [$        U l        OU R'                  U5      U l        U R)                  U R"                  5      U l        U R*                  (       d  SU l        O[/        SU R*                  -  5      U l        U R)                  [$        5      U l        U R)                  [2        5      U l        U R7                  [$        [2        45      U l        U R)                  [:        5      U l        U R)                  [>        5      U l         U R)                  [B        5      U l"        g )NTFi@B    )#r   _prec_rounding	_set_prec_set_dpsr   mpfr>   mpcnew_ctxdatar.   r	   constanttypestrap_complexpretty	_make_toltolr   _convert_tolmake_mpf	tolerance	max_denomintzeror   onemake_mpcjr   infr   ninfr   nan)ctxprecdpsr[   reals        r"   __init__MPContext.__init__3   s   "M2;MM$LL GGS#*<*<=GGS#*<*<=!GGO!GGO !$#s/A/A B"WWcggs||4	
;mmoCGE\CG&&s+CGSWW-}}#CM#--0CM<<&,,t$eT]+,,t$<<&,,t$r&   c                 J    SnS[         SU R                  -
  S4n[        X5      $ )N)r            r   rN   )r
   ri   r   )rh   hundredepss      r"   rZ   MPContext._make_tolb   s(    '1SXX:q)w$$r&   c                 @    U R                  U R                  5       5      $ r   )r]   rZ   rh   s    r"   make_tolMPContext.make_tolg   s    ||CMMO,,r&   c                 6   [        U[        5      (       a  [        U5      $ [        U[        5      (       a  [	        U5      $ [        US5      (       a  UR                  $ U R                  u  p#[        U[        5      (       a  [        XU5      $ [        SU-  5      e)Nr:   zexpected a real number, got %s)
isinstancer   r   floatr   hasattrr:   rO   strr   
ValueError)rh   r[   ri   roundings       r"   r\   MPContext._convert_tolj   s    c9%%C= c5!!c?"3  99++c3Cx009C?@@r&   c                 0    [        S[        U5      -   5      e)Nzcannot create mpf from )	TypeErrorrepr)rh   xstringss      r"   _convert_fallbackMPContext._convert_fallbackv   s    1DG;<<r&   c                 ,    [        U R                  5      $ r   )r   _precrv   s    r"   _repr_digitsMPContext._repr_digitsy   s    		""r&   c                     U R                   $ r   )_dpsrv   s    r"   _str_digitsMPContext._str_digits}   s    xxr&   c                 "   [        UR                  5      u  p4[        U5      nU(       a  X@R                  ::  a  X44$ Su  pVpxX4p X-  nXkU-  -   nXR                  :  a  OXxX[U-  -   U4u  pVpxXX-  -
  pM1  U R                  U-
  U-  n[	        X45      n[	        X]U-  -   XmU-  -   5      n[	        Xx5      nU(       a  U(       d  X44$ [        UU-
  5      [        X-
  5      ::  a  UR                  UR                  4$ UR                  UR                  4$ )N)r   rN   rN   r   )r   r:   r`   r_   r   abs	numeratordenominator)rh   slimitpqp0q0p1q1ndaq2knumberbound1bound2s                    r"   r   MPContext.to_rational   s   177#
 F]]*4K#1AdBMM!RB$Y2NBB!#gq  ]]R"$QRB$YrT	*RV4K&!S%99##V%7%777##V%7%777r&   c                 F   U R                  U5      nUc'  Uc$  U R                  =(       d    U R                  5       =p4Uc  U R                  U5      nOUc  U R                  U5      n[        X-
  5      nXT::  a  g[        U5      n[        U5      nXg:  a  XW-  nX:*  $ XV-  nX:*  $ )NT)convertr^   rw   r   )	rh   r   trel_epsabs_epsdiffabssabsterrs	            r"   almosteqMPContext.almosteq   s    KKN?w # ??G?kk'*G_kk'*G13x?1v1v;)C ~ )C~r&   r<   )5   NNF)T)NN)r3   r4   r5   r6   rl   rZ   rw   r\   r   r9   r   r   r   r   r;   r<   r&   r"   rK   rK   0   sP    -%^%
-
A= # #  !8Fr&   rK   N)!r7   sympy.external.gmpyr   !sympy.polys.domains.domainelementr   sympy.utilitiesr   mpmath.ctx_mp_pythonr   r   r   r	   mpmath.libmpr
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r>   object__new__rT   rK   r<   r&   r"   <module>r      s   
 " $ ; " G G1 1 1 1
 $$ $ $ $T= $ $ nnD D Dr&   