
    g                     v    d dl T d dlmZmZ d dlmZmZmZ ee	e
eegZeZeZeZd Zd Zd Zd Zd Zd	 Zd
 ZdS )    )*)mpfmp)randintchoiceseedc                     t          d          } t          d          }t          d          }t          | |dt                    t          d          k    sJ t          | |dt                    t          d          k    sJ t          | |dt
                    t          d          k    sJ t          | |dt                    t          d          k    sJ t          | |dt                    t          d          k    sJ t          ||dt                    t          d          k    sJ t          ||dt                    t          d          k    sJ t          ||dt
                    t          d          k    sJ t          ||dt                    t          d          k    sJ t          ||dt                    t          d          k    sJ d S 	N         z
0.01010101z
0.01010110z-0.01010110z-0.01010101)fimpf_divround_floorfbround_ceiling
round_downround_upround_nearestabcs      V/var/www/html/ai-engine/env/lib/python3.11/site-packages/mpmath/tests/test_division.pytest_div_1_3r      s   
1A
1A
2A 1aK((b.>.>>>>>1aM**b.>.>>>>>1aJ''b.>.>>>>>1aH%%b.>.>>>>>1aM**b.>.>>>>> 1aK((b.?.?????1aM**b.?.?????1aJ''b.?.?????1aH%%b.?.?????1aM**b.?.???????    c                  t   d} t          d          }d}t          | |dt                    t          d          k    sJ t          | |dt                    t          d          k    sJ t          | |dt
                    t          d          k    sJ t          | |dt                    t          d          k    sJ t          | |dt                    t          d          k    sJ t          ||dt                    t          d          k    sJ t          ||dt                    t          d          k    sJ t          ||dt
                    t          d          k    sJ t          ||dt                    t          d          k    sJ t          ||dt                    t          d          k    sJ d S r
   )r   mpf_rdiv_intr   r   r   r   r   r   r   s      r   test_mpf_divi_1_3r        s   	A
1A
A1a--2l3C3CCCCC1a//2l3C3CCCCC1a,,2l3C3CCCCC1a**2l3C3CCCCC1a//2l3C3CCCCC1a--2m3D3DDDDD1a//2m3D3DDDDD1a,,2m3D3DDDDD1a**2m3D3DDDDD1a//2m3D3DDDDDDDr   c                     t          d          } t          d          }t          d          }t          d          }t          || dt                    t          d          k    sJ t          || dt                    t          d          k    sJ t          || dt                    t          d          k    sJ t          || dt                    t          d          k    sJ t          || dt                    t          d          k    sJ t          || dt                    t          d          k    sJ t          || dt                    t          d          k    sJ t          || dt                    t          d          k    sJ t          || dt                    t          d          k    sJ t          d          }t          d	          }t          d
          }t          || dt                    t          d          k    sJ t          || dt                    t          d          k    sJ t          || dt                    t          d          k    sJ d S )Ni@B iDi Di!D	   i,  i-  i_i`iai.  )r   r   r   r   r   )qr   r   r   s       r   test_div_300r$   0   s   
7A
9A
9A
9A 1aJ''2c7722221aJ''2c7722221aJ''2c7722221aH%%C00001aH%%C00001aH%%C0000 1aM**bgg55551aM**bgg55551aM**bgg5555 	9A
9A
9A1aM**bgg55551aM**bgg55551aM**bgg555555r   c            
         d} t          d           t          |           D ]}t          ddg          t          ddt          dd          z            z  }t          ddg          t          ddt          dd          z            z  }||z  }t	          t          |                    t          |          z
  }t          |          }t          |          }t          |          }t          D ]}t          ||||          |k    sJ d S )Nd   r   r   
   )
r   ranger   r   bitcountabstrailingr   	all_modesr   )Nir   r   pwidthmodes          r   test_tight_integer_divisionr2   N   s   AGGG1XX 3 3Ar7OOgaGB,<,<)<===Ar7OOgaGB,<,<)<===EQ  8A;;.qEEr!uu1"Q%%a 	3 	3D1a--22222	33 3r   c                  2   t          d          } t          d          }t          | |dt                    }t          ||t	          | d                   t                    | k    sJ t          ||dt
                    t          d          k    sJ t          ||dt
                    t          d          k    sJ t          ||dt                    t          d	          k    sJ t          ||dt                    t          d
          k    sJ t          ||dt                    t          d          k    sJ t          ||dt                    t          d          k    sJ t          ||dt                    t          d	          k    sJ t          ||dt                    t          d
          k    sJ t          d          } t          d          }t          | |dt                    }t          ||t	          | d                   t                    | k    sJ t          ||dt
                    t          d          k    sJ t          ||dt                    t          d          k    sJ t          ||dt                    t          d          k    sJ t          ||dt                    t          d          k    sJ t          ||dt                    t          d          k    sJ t          ||dt                    t          d          k    sJ d S )Nz0.101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001z1.10101   r      z0.10r   z0.101z0.11z0.110z-0.101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001z-0.10z-0.110z-0.11z-0.101)r   mpf_mulr   r   r)   r   r   r   r   s      r   test_epsilon_roundingr7   \   s    	$%%A
9A1c;''A1a!A$55::::1aJ''2f::55551aJ''2g;;66661aH%%F33331aH%%G44441aK((BvJJ66661aK((BwKK77771aM**bjj88881aM**bkk9999 	%&&A
9A1c;''A1a!A$55::::1aJ''2g;;66661aH%%H5555 1aK((BwKK77771aK((BxLL88881aM**bkk99991aM**bll::::::r   c                     dt           _        t          d          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 t          d          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  t          d          k    sJ dt          d          z  dk    sJ d S )N      r   r         g      ?g    @g    g    g      пg    @1e10000000000z1.23e-1000000000r   z1.75g      ?r   dpsr    r   r   test_modrB   ~   s   BFs88a<1r77S=Ct99w$&&&&t99x9,,,,u::8++++u:: E))))!#q((((!""Q&#.@*A*AAAAAs6{{?d""""""r   c                      dt           _        dt          d          z  t          d          k    sJ t          d          t          d          z  t          d          k    sJ d S )Nr9   r;   z0.1531879017645047z-19.583791966887116z-2.6342475750861301z0.35126216427941814z-7.4993775104985909r?   rA   r   r   test_div_negative_rnd_bugrD      sh    BF#*+++s3H/I/IIIII$%%,A(B(BBcJ_F`F```````r   N)mpmath.libmpmpmathr   r   randomr   r   r   r   r   r   r   r   r,   	from_bstrr   from_intr   
from_floatffr   r    r$   r2   r7   rB   rD   rA   r   r   <module>rL      s                ( ( ( ( ( ( ( ( ( (-X}M	@ @ @&E E E 6 6 6<3 3 3; ; ;D# # #a a a a ar   