
    ei"                           G d  d          Z dS )c                   @   e 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d6d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%d6d&            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%d0             Z1e%d1             Z2e%d2             Z3e%d3             Z4e%d4             Z5dS )7PreciseNc                    |d}|                                 }d|v r'|                    d          \  }}t          |          }|                    d          }|dk    rCt	          |          |z
  dz
  | _        t          |                    dd                    | _        nd| _        t          |          | _        | j        |z
  | _        n|| _        || _        d| _        d S )N    e.    
   )	lowersplitintfindlendecimalsreplaceintegerbase)selfnumberr   modifierdecimal_indexs        O/var/www/html/volatility/venv/lib/python3.11/site-packages/ccxt/base/precise.py__init__zPrecise.__init__   s    H\\^^Ff}}#)<<#4#4 x=="KK,,Mr!! #Fm ;a ?"6>>#r#:#:;; !"6{{ MH4DMM!DL$DM			    c                 ,    |                      |          S N)addr   others     r   __add__zPrecise.__add__#       xxr   c                 ,    |                      |          S r   )subr   s     r   __sub__zPrecise.__sub__&   r"   r   c                 ,    |                      |          S r   )mulr   s     r   __mul__zPrecise.__mul__)   r"   r   c                 ,    |                      |          S r   )divr   s     r   __truediv__zPrecise.__truediv__,   r"   r   c                 ,    |                      |          S r   )modr   s     r   __mod__zPrecise.__mod__/   r"   r   c                 *    |                                  S r   )negr   s    r   __neg__zPrecise.__neg__2       xxzzr   c                 *    |                                  S r   )absr1   s    r   __abs__zPrecise.__abs__5   r3   r   c                 ,    |                      |          S r   )minr   s     r   __min__zPrecise.__min__8   r"   r   c                 ,    |                      |          S r   )maxr   s     r   __max__zPrecise.__max__;   r"   r   c                 ,    |                      |          S r   ltr   s     r   __lt__zPrecise.__lt__>       wwu~~r   c                 ,    |                      |          S r   )ler   s     r   __le__zPrecise.__le__A   rA   r   c                 ,    |                      |          S r   gtr   s     r   __gt__zPrecise.__gt__D   rA   r   c                 ,    |                      |          S r   ger   s     r   __ge__zPrecise.__ge__G   rA   r   c                 |    t          |t                    rt          |           |k    S |                     |          S r   )
isinstancestrequalsr   s     r   __eq__zPrecise.__eq__J   s7    eS!! 	&t99%%{{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FFr      c                    || j         z
  |j         z   }|dk    r| j        }n0|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==II\\yXI-H0IIyH,Hx/IY66  &zzcz!vvy)))r   c                     | j         |j         k    r$| j        |j        z   }t          || j                   S | j         |j         k    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    =EN**!\EM9N>4=999/3}u~/M/MudmmTXZ_S`OGV)99H DI,ABJ&.0F66?333r   c                 b    t          |j         |j                  }|                     |          S r   )r   r   r   r   )r   r    negatives      r   r$   zPrecise.subo   s)    EM>5>::xx!!!r   c                 P    t          t          | j                  | j                  S r   )r   r5   r   r   r1   s    r   r5   zPrecise.abss   s    s4<(($-888r   c                 8    t          | j         | j                  S r   )r   r   r   r1   s    r   r0   zPrecise.negv   s    }dm4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    rationizerNumberatorr[   rationizerDenominatordenominatorr]   s          r   r-   zPrecise.mody   s    "DM>EN#BAFFLDI1E$EF	 #U^Odm$CQ G Gmty4I'IJ[(v4u~EFFFr   c                 J    | j         |j         z  }t          || j                  S r   rS   rT   s      r   ornzPrecise.orn   s"    5~t}555r   c                 4    |                      |          r| n|S r   r>   r   s     r   r8   zPrecise.min       wwu~~0tt50r   c                 4    |                      |          r| n|S r   rF   r   s     r   r;   zPrecise.max   rn   r   c                 B    |                      |          }|j        dk    S rg   r$   r   r   r    r   s      r   rG   z
Precise.gt   s    hhuoo{Qr   c                 B    |                      |          }|j        dk    S rg   rq   rr   s      r   rK   z
Precise.ge   s    hhuoo{ar   c                 ,    |                     |           S r   rF   r   s     r   r?   z
Precise.lt       xx~~r   c                 ,    |                     |           S r   rJ   r   s     r   rC   z
Precise.le   ru   r   c                 8   t          | j                  }t          |          dz
  }|dk    r|dk    rd| _        | S t	          |dd          D ]}||         dk    r n||z
  }|dk    r| S | xj        |z  c_        t          |d |dz                      | _        d S )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        k    o| j        |j        k    S r   )r~   r   r   r   s     r   rP   zPrecise.equals   s9    }.P4<5=3PPr   c                    |                                   | j        dk     rdnd}t          t          t	          | j                                                | j        d                    }t          |          | j        z
  }|dk    rd}n'| j        dk     rd| j         z  }n| j        dk    rd}nd}|                    ||           |d	                    |          z   S )Nr   -r
   rx   z0.r   )
r~   r   listrO   r5   rjustr   r   insertjoin)r   signinteger_arrayindexitems        r   __str__zPrecise.__str__   s    lQ&&ssBST\!2!23399$-MMNNM""T]2A::DD]Q4=.)DD]aDDDUD)))bggm,,,,r   c                 ,    dt          |           z   dz   S )NzPrecise())rO   r1   s    r   __repr__zPrecise.__repr__   s    CII%++r   c                 :    t          t          |                     S r   )floatrO   r1   s    r   	__float__zPrecise.__float__   s    SYYr   c                     | |d S t          t          |                               t          |                              S r   )rO   r   r'   string1string2s     r   
string_mulzPrecise.string_mul   <    ?go477##''(8(899:::r   c                     | |d S t          |          }|j        dk    rd S t          t          |                               ||                    S rg   )r   r   rO   r*   )r   r   rY   string2_precises       r   
string_divzPrecise.string_div   sV    ?go4!'**"a''477##''CCDDDr   c                     | |d S | |S || S t          t          |                               t          |                              S r   )rO   r   r   r   s     r   
string_addzPrecise.string_add   sP    ?w4?N_N77##''(8(899:::r   c                     | |d S t          t          |                               t          |                              S r   )rO   r   r$   r   s     r   
string_subzPrecise.string_sub   r   r   c                 f    | d S t          t          |                                                     S r   )rO   r   r5   rz   s    r   
string_abszPrecise.string_abs   ,    >476??&&(()))r   c                 f    | d S t          t          |                                                     S r   )rO   r   r0   r   s    r   
string_negzPrecise.string_neg   r   r   c                     | |d S t          t          |                               t          |                              S r   )rO   r   r-   r   s     r   
string_modzPrecise.string_mod   r   r   c                     | |d S t          t          |                               t          |                              S r   )rO   r   rl   r   s     r   	string_orzPrecise.string_or   r   r   c                 l    | |d S t          |                               t          |                    S r   r   rP   r   s     r   string_equalszPrecise.string_equals   4    ?go4w&&ww'7'7888r   c                 l    | |d S t          |                               t          |                    S r   r   r   s     r   	string_eqzPrecise.string_eq  r   r   c                     | |d S t          t          |                               t          |                              S r   )rO   r   r8   r   s     r   
string_minzPrecise.string_min  r   r   c                     | |d S t          t          |                               t          |                              S r   )rO   r   r;   r   s     r   
string_maxzPrecise.string_max  r   r   c                 l    | |d S t          |                               t          |                    S r   )r   rG   r   s     r   	string_gtzPrecise.string_gt  4    ?go4w""77#3#3444r   c                 l    | |d S t          |                               t          |                    S r   )r   rK   r   s     r   	string_gezPrecise.string_ge  r   r   c                 l    | |d S t          |                               t          |                    S r   )r   r?   r   s     r   	string_ltzPrecise.string_lt  r   r   c                 l    | |d S t          |                               t          |                    S r   )r   rC   r   s     r   	string_lezPrecise.string_le%  r   r   r   )rV   )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-   rl   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 G G* * * * 	4 	4 	4" " "9 9 95 5 5G G G6 6 61 1 11 1 1           + + + Q Q Q
- - - , , ,      ; ; \;
 E E E \E ; ; \; ; ; \;
 * * \*
 * * \*
 ; ; \;
 ; ; \;
 9 9 \9
 9 9 \9
 ; ; \;
 ; ; \;
 5 5 \5
 5 5 \5
 5 5 \5
 5 5 \5 5 5r   r   N)r   r   r   r   <module>r      sA   [5 [5 [5 [5 [5 [5 [5 [5 [5 [5r   