+
    i                     l    R t ^ RI5 ^ RI5 R tR tR tR tR tR tR t	R	 t
R
 tR tR tR tR tR# )z+
Test bit-level integer and mpf operations
)*c                     \        ^ 4      ^ 8X  g   Q h\        ^4      ^8X  g   Q h\        ^4      ^8X  g   Q h\        ^4      ^8X  g   Q h\        ^^d,          4      ^e8X  g   Q h\        ^^d,          ^,
          4      ^d8X  g   Q hR#     N)bitcount     y/Users/tonyclaw/.openclaw/workspace/skills/math-calculator/venv/lib/python3.14/site-packages/mpmath/tests/test_bitwise.pytest_bitcountr
      s|    A;!A;!A;!A;!AsFs"""AsF1H$$$r   c                  ,   \        ^ 4      ^ 8X  g   Q h\        ^4      ^ 8X  g   Q h\        ^4      ^8X  g   Q h\        ^4      ^ 8X  g   Q h\        ^4      ^8X  g   Q h\        ^^d,          4      ^d8X  g   Q h\        ^^d,          ^,
          4      ^ 8X  g   Q hR# r   )trailingr   r   r	   test_trailingr      s    A;!A;!A;!A;!A;!AsFs"""AsF1H"""r   c                     \        ^ R^\        4      R,          R8X  g   Q h\        ^R^\        4      R,          R8X  g   Q h\        ^R^\        4      R,          R8X  g   Q h\        ^R^\        4      R,          R8X  g   Q h\        RR^\        4      R,          R8X  g   Q h\        RR^\        4      R,          R8X  g   Q h\        R	R^\        4      R,          R8X  g   Q hR# )
r   N   NNr   r   r   r      r      r   r   )from_man_exp
round_downr   r   r	   test_round_downr      s    2q*-b1Y>>>b!Z04
BBBb!Z04
BBBb!Z04
BBBr1j1"5CCCr1j1"5CCCr1j1"5CCCr   c                     \        ^ R^\        4      R,          R8X  g   Q h\        ^R^\        4      R,          R8X  g   Q h\        ^R^\        4      R,          R8X  g   Q h\        ^R^\        4      R,          R8X  g   Q h\        RR^\        4      R,          R8X  g   Q h\        R	R^\        4      R,          R
8X  g   Q h\        RR^\        4      R,          R
8X  g   Q hR# )r   r   Nr   r   r   r   r      r   r   r   r   r   r   r   )r   round_upr   r   r	   test_round_upr"   "   s    2q(+B/9<<<b!X.r2j@@@b!X.r2i???b!X.r2i???r1h/3zAAAr1h/3y@@@r1h/3y@@@r   c                     \        ^ R^\        4      R,          R8X  g   Q h\        ^R^\        4      R,          R8X  g   Q h\        ^R^\        4      R,          R8X  g   Q h\        ^R^\        4      R,          R8X  g   Q h\        RR^\        4      R,          R8X  g   Q h\        RR^\        4      R,          R	8X  g   Q h\        R
R^\        4      R,          R	8X  g   Q hR# )r   r   Nr   r   r   r   r   r   r    r   )r   round_floorr   r   r	   test_round_floorr%   +   s    2q+.r2i???b![1"5CCCb![1"5CCCb![1"5CCCr1k226*DDDr1k226)CCCr1k226)CCCr   c                     \        ^ R^\        4      R,          R8X  g   Q h\        ^R^\        4      R,          R8X  g   Q h\        ^R^\        4      R,          R8X  g   Q h\        ^R^\        4      R,          R8X  g   Q h\        RR^\        4      R,          R8X  g   Q h\        R	R^\        4      R,          R8X  g   Q h\        R
R^\        4      R,          R8X  g   Q hR# )r   r   Nr   r   r   r   r   r   r   r   )r   round_ceilingr   r   r	   test_round_ceilingr(   4   s    2q-04	AAAb!]3B7:EEEb!]3B79DDDb!]3B79DDDr1m4R8JFFFr1m4R8JFFFr1m4R8JFFFr   c                  F   \        ^ R^\        4      R,          R8X  g   Q h\        ^R^\        4      R,          R8X  g   Q h\        ^R^\        4      R,          R8X  g   Q h\        ^R^\        4      R,          R8X  g   Q h\        ^R^\        4      R,          R8X  g   Q h\        ^R^\        4      R,          R8X  g   Q h\        ^R^\        4      R,          R8X  g   Q h\        RR^\        4      R,          R	8X  g   Q h\        R
R^\        4      R,          R	8X  g   Q h\        RR^\        4      R,          R8X  g   Q h\        RR^\        4      R,          R8X  g   Q h\        RR^\        4      R,          R8X  g   Q h\        RR^\        4      R,          R	8X  g   Q hR# )r   r   Nr   r   r   r   )r      r   r   r   i	ir    ii)r   r*   r   i)r   round_nearestr   r   r	   test_round_nearestr,   =   s   2q-04	AAAb!]3B7:EEEb!]3B7:EEEb!]3B79DDDb!]3B79DDDb!]3B79DDDb!]3B7:EEEr1m4R8JFFFr1m4R8JFFFr1m4R8IEEEr1m4R8IEEEr1m4R8IEEEr1m4R8JFFFr   c                  2   \        R R^5\        4      R8X  g   Q h\        RR^5\        4      R8X  g   Q h\        ^^ ^\        4      R8X  g   Q h\        R^ ^\        4      R	8X  g   Q h\        ^^ ^\        4      R
8X  g   Q h\        R^ ^\        4      R8X  g   Q hR# )l   l   ~? Ni)r   r   r   r   i)r   r   r   r   )r   r      r   i)r   r   r.   r   )r   r      r   r   )r   r   r/   r   )r   r!   r+   r$   r   r   r	   test_rounding_bugsr0   L   s    )3H=MMM,c2}EUUUAq(+|;;;Q;/<???Q8,<<<aK0L@@@r   c                      \        R R4      p \        R R4      p\        R^ 4      pRp\        W^
R4      V8X  g   Q h\        W^
R4      V8X  g   Q h\        W ^
R4      V8X  g   Q h\        W!^
R4      V8X  g   Q hR# )i&  dNii8)r   i  i
   )r   mpf_add)abczs       r	   test_rounding_issue_200r:   U   s    T$AT$ARAA1S!Q&&&1S!Q&&&1S!Q&&&1S!Q&&&r   c                  h   \         p \        R 4      p\        R4      p\        V ^ ^5\        4      V 8X  g   Q h\        V ^^5\        4      V 8X  g   Q h\        V ^ ^5\        4      V8X  g   Q h\        V ^ ^5\
        4      V8X  g   Q h\        V ^ ^5\        4      V 8X  g   Q h\        V ^ ^5\        4      V 8X  g   Q h\        V ^^5\        4      V 8X  g   Q h\        V ^^5\
        4      V 8X  g   Q h\        V ^^5\        4      V8X  g   Q h\        V ^^5\        4      V8X  g   Q h\        V 4      p \        V4      p\        V4      p\        V ^ ^5\        4      V 8X  g   Q h\        V ^^5\        4      V 8X  g   Q h\        V ^ ^5\        4      V 8X  g   Q h\        V ^ ^5\        4      V 8X  g   Q h\        V ^ ^5\        4      V8X  g   Q h\        V ^ ^5\
        4      V8X  g   Q h\        V ^^5\        4      V8X  g   Q h\        V ^^5\        4      V8X  g   Q h\        V ^^5\        4      V 8X  g   Q h\        V ^^5\
        4      V 8X  g   Q hR# )g?g     ?N)	fone
from_floatmpf_perturbr+   r!   r'   r   r$   mpf_neg)r6   r7   r8   s      r	   test_perturbr@   _   s,   A&'A%&Aq!R/1444q!R/1444q!R*a///q!R/1444q!R,111q!R-222q!R*a///q!R/1444q!R,111q!R-222
A
A
Aq!R/1444q!R/1444q!R*a///q!R-222q!R,111q!R/1444q!R*a///q!R-222q!R,111q!R/1444r   c                  |   \         p \        V ! R 4      V ! R4      4      V ! R4      8X  g   Q h\        V ! R 4      V ! R4      4      V ! R4      8X  g   Q h\        V ! R4      V ! R4      4      V ! R4      8X  g   Q h\        V ! R4      V ! R4      4      V ! R	4      8X  g   Q h\        \        \        V ! R4      4      \        4      V ! R4      8X  g   Q h\        \        V ! R4      \        4      \        4      V ! R4      8X  g   Q h\        \        \        V ! R
4      4      \        4      V ! R
4      8X  g   Q h\        \        V ! R
4      \        4      \        4      V ! R
4      8X  g   Q h\        \        \        4      \        8X  g   Q h\        \        \        4      \        8X  g   Q h\        \        \        4      \        8X  g   Q hR# )g      @g      @g      @g      ?g0.++Ng      g      g      g      g0.+)r=   r5   mpf_subr<   fzero)ffs    r	   test_add_exactrE   {   sZ   	B2c7BsG$3///2c7BtH%C0002d8RW%D1112d8RX&"T(22274F,d3r&zAAA72f:t,d3r&zAAA74G-t47CCC72g;-t47CCC44'''5$4'''5% E)))r   c                  F   ^\         n        \        ^4      p R EF  p\        ^^V^,
          ,          4      p\        ^^V,          4      p\        ^^V^,           ,          4      p\        ^^V^,
          ,          ) 4      p\        ^^V,          ) 4      p\        ^^V^,           ,          ) 4      pW,           V8X  g   Q hW,           V8X  g   Q hW,           V8X  g   Q hW,           V 8X  g   Q hW,           V 8X  g   Q hW,           V 8X  g   Q hW ,           V8X  g   Q hW0,           V8X  g   Q hW@,           V8X  g   Q hWP,           V 8X  g   Q hW`,           V 8X  g   Q hWp,           V 8X  g   Q hW,
          V) 8X  g   Q hW,
          V) 8X  g   Q hW,
          V) 8X  g   Q hW,
          V 8X  g   Q hW,
          V 8X  g   Q hW,
          V 8X  g   Q hW ,
          V8X  g   Q hW0,
          V8X  g   Q hW@,
          V8X  g   Q hWP,
          V ) 8X  g   Q hW`,
          V ) 8X  g   Q hWp,
          V ) 8X  d   EK  Q h	  R# )r   N)    @   )mpdpsmpfldexp)xpr6   r7   r8   r2   efs           r	   test_long_exponent_shiftsrQ      s   BF 	AA!A!H!AqDM!A!H!Q1XI!QTEN!Q1XIzzzzzzzzzzzzzzzzzzzzzzzz{{{{{{zzzzzzzzzzzz{{{{{{= r   c                  ^   ^@\         n        \        ^4      \        ^4      \        ,           \        ^4      \        ,
          \        ^4      ) \        ,           \        ^4      ) \        ,
          3 F  p \	        V 4      p\	        \        V ^ ^5RR7      4      pW8X  g   Q h\        W 4      p\        V4      p\        \        V^ ^5RR7      4      pWE8X  g   Q hR FF  p\        V P                  VR7      p\        \        V ^ ^5VR7      P                  VR7      pW8X  d   KF  Q h	  K  	  ^5\         n        R# )rH   n)precrounding)rndN)rS   r2   urP   r8   )
rI   rT   rK   epsfloatfaddmpccomplexto_float_mpf_)rM   fafbr9   cacbrV   s          r	   test_float_roundingrc      s    BG!fc!fSj#a&*s1vgckCF73;G1X4!S12xxHQZT!A2s34xx,C!''s+B$qC8>>CHB8O8 - H BGr   N)__doc__mpmathmpmath.libmpr
   r   r   r"   r%   r(   r,   r0   r:   r@   rE   rQ   rc   r   r   r	   <module>rg      sZ     %#DADGGA'58*#Jr   