K ijdZddlddldZdZdZdZdZdZd Z d Z d Z d Z d Z dZdZy)z+ Test bit-level integer and mpf operations )*ctddk(sJtddk(sJtddk(sJtddk(sJtddzd k(sJtddzdz dk(sJy) Nrde)bitcount_/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/mpmath/tests/test_bitwise.py test_bitcountrs| A;!   A;!   A;!   A;!   AsF s "" " AsF1H  $$ $rctddk(sJtddk(sJtddk(sJtddk(sJtddk(sJtddzdk(sJtddzdz dk(sJy)Nrrr rrrr )trailingrrr test_trailingrs A;!   A;!   A;!   A;!   A;!   AsF s "" " AsF1H  "" "rcptdddtdddk(sJtdddtdddk(sJtdddtdddk(sJtd ddtdddk(sJtd ddtddd k(sJtd ddtddd k(sJtd ddtddd k(sJy)Nrr rrrrrrrrr) from_man_exp round_downrrrtest_round_downr#s 2q* -bq 1Y >> > b!Z 0! 4 BB B b!Z 0! 4 BB B b!Z 0! 4 BB B r1j 1"1 5 CC C r1j 1"1 5 CC C r1j 1"1 5 CC Crcptdddtdddk(sJtdddtdddk(sJtdddtddd k(sJtd ddtddd k(sJtd ddtddd k(sJtd ddtdddk(sJtdddtdddk(sJy)Nrrr rrrrrrrr rrrrrrr r )r!round_uprrr test_round_upr("s 2q( +BQ /9 << < b!X .r 2j @@ @ b!X .r 2i ?? ? b!X .r 2i ?? ? r1h / 3z AA A r1h / 3y @@ @ r1h / 3y @@ @rcptdddtdddk(sJtdddtdddk(sJtdddtdddk(sJtd ddtdddk(sJtd ddtddd k(sJtd ddtddd k(sJtdddtddd k(sJy)Nrrr rrrrrrrrrr&r )r! round_floorrrrtest_round_floorr++s 2q+ .r 2i ?? ? b![ 1"1 5 CC C b![ 1"1 5 CC C b![ 1"1 5 CC C r1k 22A 6* DD D r1k 22A 6) CC C r1k 22A 6) CC Crcptdddtdddk(sJtdddtdddk(sJtdddtddd k(sJtd ddtddd k(sJtd ddtddd k(sJtd ddtddd k(sJtdddtddd k(sJy)Nrrr rrrrrr%rrrrr )r! round_ceilingrrrtest_round_ceilingr.4s 2q- 0! 4 AA A b!] 3BQ 7: EE E b!] 3BQ 79 DD D b!] 3BQ 79 DD D r1m 4Ra 8J FF F r1m 4Ra 8J FF F r1m 4Ra 8J FF Frctdddtdddk(sJtdddtdddk(sJtdddtdddk(sJtd ddtddd k(sJtd ddtddd k(sJtd ddtddd k(sJtdddtdddk(sJtdddtdddk(sJtdddtdddk(sJtdddtdddk(sJtdddtdddk(sJtdddtdddk(sJtdddtdddk(sJy)Nrrr rrrrr%)rrrrri ir&ii)rrri)r! round_nearestrrrtest_round_nearestr6=s 2q- 0! 4 AA A b!] 3BQ 7: EE E b!] 3BQ 7: EE E b!] 3BQ 79 DD D b!] 3BQ 79 DD D b!] 3BQ 79 DD D b!] 3BQ 7: EE E r1m 4Ra 8J FF F r1m 4Ra 8J FF F r1m 4Ra 8I EE E r1m 4Ra 8I EE E r1m 4Ra 8I EE E r1m 4Ra 8J FF Frctdddtdk(sJtdddtdk(sJtdd d td k(sJtd d d td k(sJtdd dtdk(sJtdd dtdk(sJy)Nli5)rrrrl~?i)rrrrrr )rrri)rrr:rrr)rrrrr )rrrr)r!r'r5r*rrrtest_rounding_bugsr;Ls )3H = MM M ,c2} E UU U Aq( +| ;; ; Q; /< ?? ? Q8 , << < aK 0L @@ @rctdd}tdd}tdd}d}t||dd|k(sJt||dd|k(sJt||dd|k(sJt||dd|k(sJy) Ni&ii8r)rii r>d)r!mpf_add)abczs rtest_rounding_issue_200rEUsT$AT$ARAA 1aS !Q && & 1aS !Q && & 1aS !Q && & 1aS !Q && &rct}td}td}t|ddt|k(sJt|ddt|k(sJt|ddt|k(sJt|ddt |k(sJt|ddt |k(sJt|ddt|k(sJt|ddt|k(sJt|ddt |k(sJt|ddt |k(sJt|ddt|k(sJt|}t|}t|}t|ddt|k(sJt|ddt|k(sJt|ddt|k(sJt|ddt|k(sJt|ddt |k(sJt|ddt |k(sJt|ddt|k(sJt|ddt|k(sJt|ddt |k(sJt|ddt |k(sJy)Ng?g?rr8r) fone from_float mpf_perturbr5r'r-r"r*mpf_neg)rArBrCs r test_perturbrK_s, A&'A%&A q!R /1 44 4 q!R /1 44 4 q!R *a // / q!R /1 44 4 q!R , 11 1 q!R - 22 2 q!R *a // / q!R /1 44 4 q!R , 11 1 q!R - 22 2 A A A q!R /1 44 4 q!R /1 44 4 q!R *a // / q!R - 22 2 q!R , 11 1 q!R /1 44 4 q!R *a // / q!R - 22 2 q!R , 11 1 q!R /1 44 4rcNt}t|d|d|dk(sJt|d|d|dk(sJt|d|d|dk(sJt|d|d|dk(sJttt|d t|d k(sJtt|d tt|d k(sJttt|d t|d k(sJtt|d tt|d k(sJttttk(sJttttk(sJttttk(sJy) Ng@g@g@gg?gggg0.++g0.+)rHr@mpf_subrGfzero)ffs rtest_add_exactrP{sZ B 2c7BsG $3 // / 2c7BtH %C 00 0 2d8RW %D 11 1 2d8RX &"T( 22 2 74F,d 3r&z AA A 72f:t,d 3r&z AA A 74G-t 47 CC C 72g;-t 47 CC C 4 4 '' ' 5$ 4 '' ' 5% E )) )rcdt_td}dD]b}tdd|dz z}tdd|z}tdd|dzz}tdd|dz z }tdd|z }tdd|dzz }||z|k(sJ||z|k(sJ||z|k(sJ||z|k(sJ||z|k(sJ||z|k(sJ||z|k(sJ||z|k(sJ||z|k(sJ||z|k(sJ||z|k(sJ||z|k(sJ||z | k(sJ||z | k(sJ||z | k(sJ||z |k(sJ||z |k(sJ||z |k(sJ||z |k(sJ||z |k(sJ||z |k(sJ||z | k(sJ||z | k(sJ||z | k(rcJy)Nrr) @r )mpdpsmpfldexp)xprArBrCr?efs rtest_long_exponent_shiftsr\s# BF AA  !A!H  !AqDM !A!H  !Q1XI  !QTEN !Q1XI !zz!zz!zz!zz!zz!zz!zz!zz!zz!zz!zz!zz!{{!{{!{{!zz!zz!zz!zz!zz!zz!{{!{{!{{=rc 0dt_tdtdtztdtz td tztd tz fD]}t |}t t |ddd}||k(sJt ||}t|}tt |ddd}||k(sJdD]D}t|j|}tt |dd|j|}||k(rDJdt_y) NrSrrr8n)precrounding)r^r?ur[rC)rnd) rTr_rVepsfloatfaddmpccomplexto_float_mpf_)rXfafbrDcacbrbs rtest_float_roundingrnsBG!fc!fSj#a&*s1vgckCF73; G  1X 4!S1 2Rxx !H QZ T!A2s3 4Rxx, C!''s+B$qC8>>CHB8O8  BGrN)__doc__mpmath mpmath.libmprrr#r(r+r.r6r;rErKrPr\rnrrrrrsZ%#DADG GA'58 *#Jr