
    ":h"                          G d  d      Z y)c                      e Zd Zd4d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d5d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$e%d$        Z&e%d5d%       Z'e%d&        Z(e%d'        Z)e%d(        Z*e%d)        Z+e%d*        Z,e%d+        Z-e%d,        Z.e%d-        Z/e%d.        Z0e%d/        Z1e%d0        Z2e%d1        Z3e%d2        Z4e%d3        Z5y)6PreciseNc                    |d}|j                         }d|v r|j                  d      \  }}t        |      }|j                  d      }|dkD  r7t	        |      |z
  dz
  | _        t        |j                  dd            | _        nd| _        t        |      | _        | j
                  |z
  | _        d| _        y || _        || _        d| _        y )N    e.    
   )	lowersplitintfindlendecimalsreplaceintegerbase)selfnumberr   modifierdecimal_indexs        K/var/www/html/turnos/venv/lib/python3.12/site-packages/ccxt/base/precise.py__init__zPrecise.__init__   s    H\\^Ff}#)<<#4 x="KK,Mr! #Fm ;a ?"6>>#r#:; !"6{ MMH4DM 	 "DL$DM	    c                 $    | j                  |      S N)addr   others     r   __add__zPrecise.__add__#       xxr   c                 $    | j                  |      S r   )subr   s     r   __sub__zPrecise.__sub__&   r"   r   c                 $    | j                  |      S r   )mulr   s     r   __mul__zPrecise.__mul__)   r"   r   c                 $    | j                  |      S r   )divr   s     r   __truediv__zPrecise.__truediv__,   r"   r   c                 $    | j                  |      S r   )modr   s     r   __mod__zPrecise.__mod__/   r"   r   c                 "    | j                         S r   )negr   s    r   __neg__zPrecise.__neg__2       xxzr   c                 "    | j                         S r   )absr1   s    r   __abs__zPrecise.__abs__5   r3   r   c                 $    | j                  |      S r   )minr   s     r   __min__zPrecise.__min__8   r"   r   c                 $    | j                  |      S r   )maxr   s     r   __max__zPrecise.__max__;   r"   r   c                 $    | j                  |      S r   ltr   s     r   __lt__zPrecise.__lt__>       wwu~r   c                 $    | j                  |      S r   )ler   s     r   __le__zPrecise.__le__A   rA   r   c                 $    | j                  |      S r   gtr   s     r   __gt__zPrecise.__gt__D   rA   r   c                 $    | j                  |      S r   ger   s     r   __ge__zPrecise.__ge__G   rA   r   c                 `    t        |t              rt        |       |k(  S | j                  |      S r   )
isinstancestrequalsr   s     r   __eq__zPrecise.__eq__J   s*    eS!t9%%{{5!!r   c                 z    | j                   |j                   z  }t        || j                  |j                  z         S r   r   r   r   r   r    integer_results      r   r'   zPrecise.mulP   s.    5~t}}u~~'EFFr   c                 J   || j                   z
  |j                   z   }|dk(  r| j                  }nC|dk  r | j                  | z  }| j                  |z  }n| j                  |z  }| j                  |z  }t        ||j                        \  }}|dk  r|r|dz   n|}t	        ||      S )Nr   r	   )r   r   r   divmodr   )r   r    	precisiondistance	numeratorexponentresultr-   s           r   r*   zPrecise.divT   s    t}},u~~=q=I\yyXI-H0IyyH,Hx/IY6  &zc!vvy))r   c                    | j                   |j                   k(  r/| j                  |j                  z   }t        || j                         S | j                   |j                   kD  r|| gn| |g\  }}|j                   |j                   z
  }|j                  | j                  |z  z  }||j                  z   }t        ||j                         S r   )r   r   r   r   )r   r    rU   smallerbiggerr[   
normalisedr\   s           r   r   zPrecise.addd   s    ==ENN*!\\EMM9N>4==99/3}}u~~/MudmTXZ_S`OGV)9)99H DII,ABJ&..0F66??33r   c                 f    t        |j                   |j                        }| j                  |      S r   )r   r   r   r   )r   r    negatives      r   r$   zPrecise.subo   s'    EMM>5>>:xx!!r   c                 T    t        t        | j                        | j                        S r   )r   r5   r   r   r1   s    r   r5   zPrecise.abss   s    s4<<($--88r   c                 D    t        | j                   | j                        S r   )r   r   r   r1   s    r   r0   zPrecise.negv   s    }dmm44r   c                 >   t        | j                   |j                  z   d      }| j                  | j                  |z  z  }t        |j                   | j                  z   d      }|j                  | j                  |z  z  }||z  }t	        |||j                  z         S Nr   )r;   r   r   r   r   )r   r    rationizerNumberatorrZ   rationizerDenominatordenominatorr\   s          r   r-   zPrecise.mody   s    "DMM>ENN#BAFLLDII1E$EF	 #U^^Odmm$CQ Gmmtyy4I'IJ[(v4u~~EFFr   c                 `    | j                   |j                   z  }t        || j                        S r   rS   rT   s      r   ornzPrecise.orn   s%    5~t}}55r   c                 ,    | j                  |      r| S |S r   r>   r   s     r   r8   zPrecise.min       wwu~t050r   c                 ,    | j                  |      r| S |S r   rF   r   s     r   r;   zPrecise.max   rm   r   c                 B    | j                  |      }|j                  dkD  S rf   r$   r   r   r    r   s      r   rG   z
Precise.gt   s    hhuo{{Qr   c                 B    | j                  |      }|j                  dk\  S rf   rp   rq   s      r   rK   z
Precise.ge   s    hhuo{{ar   c                 $    |j                  |       S r   rF   r   s     r   r?   z
Precise.lt       xx~r   c                 $    |j                  |       S r   rJ   r   s     r   rC   z
Precise.le   rt   r   c                    t        | j                        }t        |      dz
  }|dk(  r|dk(  rd| _        | S t	        |dd      D ]  }||   dk7  s n |z
  }|dk(  r| S | xj                  |z  c_        t        |d |dz          | _        y )Nr	   r   0r   )rO   r   r   r   ranger   )r   stringstarti
differences        r   reducezPrecise.reduce   s    T\\"FaA:} !Kub"% 	AayC	 QY
?K#6&1q5>*r   c                     | j                          |j                          | j                  |j                  k(  xr | j                  |j                  k(  S r   )r}   r   r   r   s     r   rP   zPrecise.equals   s9    }}.P4<<5==3PPr   c                    | j                          | j                  dk  rdnd}t        t        t	        | j                              j                  | j                  d            }t        |      | j                  z
  }|dk(  rd}n4| j                  dk  rd| j                   z  }n| j                  dk(  rd}nd}|j                  ||       |dj                  |      z   S )Nr   -r
   rw   z0.r   )
r}   r   listrO   r5   rjustr   r   insertjoin)r   signinteger_arrayindexitems        r   __str__zPrecise.__str__   s    llQ&sBST\\!2399$--MNM"T]]2A:D]]Q4==.)D]]aDDUD)bggm,,,r   c                 $    dt        |       z   dz   S )NzPrecise())rO   r1   s    r   __repr__zPrecise.__repr__   s    CI%++r   c                 *    t        t        |             S r   )floatrO   r1   s    r   	__float__zPrecise.__float__   s    SYr   c                 d    | |y t        t        |       j                  t        |                  S r   )rO   r   r'   string1string2s     r   
string_mulzPrecise.string_mul   .    ?go77#''(89::r   c                     | |y t        |      }|j                  dk(  ry t        t        |       j                  ||            S rf   )r   r   rO   r*   )r   r   rX   string2_precises       r   
string_divzPrecise.string_div   sF    ?go!'*""a'77#''CDDr   c                 t    | |y | |S || S t        t        |       j                  t        |                  S r   )rO   r   r   r   s     r   
string_addzPrecise.string_add   sB    ?w?N_N77#''(89::r   c                 d    | |y t        t        |       j                  t        |                  S r   )rO   r   r$   r   s     r   
string_subzPrecise.string_sub   r   r   c                 L    | y t        t        |       j                               S r   )rO   r   r5   ry   s    r   
string_abszPrecise.string_abs   "    >76?&&())r   c                 L    | y t        t        |       j                               S r   )rO   r   r0   r   s    r   
string_negzPrecise.string_neg   r   r   c                 d    | |y t        t        |       j                  t        |                  S r   )rO   r   r-   r   s     r   
string_modzPrecise.string_mod   r   r   c                 d    | |y t        t        |       j                  t        |                  S r   )rO   r   rk   r   s     r   	string_orzPrecise.string_or   r   r   c                 R    | |y t        |       j                  t        |            S r   r   rP   r   s     r   string_equalszPrecise.string_equals   )    ?gow&&ww'788r   c                 R    | |y t        |       j                  t        |            S r   r   r   s     r   	string_eqzPrecise.string_eq  r   r   c                 d    | |y t        t        |       j                  t        |                  S r   )rO   r   r8   r   s     r   
string_minzPrecise.string_min  r   r   c                 d    | |y t        t        |       j                  t        |                  S r   )rO   r   r;   r   s     r   
string_maxzPrecise.string_max  r   r   c                 R    | |y t        |       j                  t        |            S r   )r   rG   r   s     r   	string_gtzPrecise.string_gt  )    ?gow""77#344r   c                 R    | |y t        |       j                  t        |            S r   )r   rK   r   s     r   	string_gezPrecise.string_ge  r   r   c                 R    | |y t        |       j                  t        |            S r   )r   r?   r   s     r   	string_ltzPrecise.string_lt  r   r   c                 R    | |y t        |       j                  t        |            S r   )r   rC   r   s     r   	string_lezPrecise.string_le%  r   r   r   )   )6__name__
__module____qualname__r   r!   r%   r(   r+   r.   r2   r6   r9   r<   r@   rD   rH   rL   rQ   r'   r*   r   r$   r5   r0   r-   rk   r8   r;   rG   rK   r?   rC   r}   rP   r   r   r   staticmethodr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r   r   r   r      s   ("G* 	4"95G611 + Q
- ,  ; ;
 E E ; ; ; ;
 * *
 * *
 ; ;
 ; ;
 9 9
 9 9
 ; ;
 ; ;
 5 5
 5 5
 5 5
 5 5r   r   N)r   r   r   r   <module>r      s   [5 [5r   