§
    JŠtjk  ã                   ó0   — d dl T d dlT d dlZd„ Zd„ Zd„ ZdS )é    )Ú*Nc                  ó²  — 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¦  «        sJ ‚t          d¦  «        dz                       d¦  «        sJ ‚t          d¦  «        dz                       d¦  «        sJ ‚t          d¦  «        d
z                       d¦  «        sJ ‚t          d¦  «        dz                       d¦  «        sJ ‚t          d¦  «        dz                       d¦  «        sJ ‚d S )Né   é   g      @i   é@   g      à?é   g      à¿g      À?g      Àg      P?é
   gR[Ú:XL	@gX—úí¤Ãs@gIHb=Ô?g·�3äÆçi?g333333Ó?g¯¸[-˜ìÿ?g333333Ó¿gRB3Ï¹	à?)ÚmpÚdpsÚmpfÚae© ó    úU/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/mpmath/tests/test_power.pyÚtest_fractional_powr      sY  € Ø…B„FÝˆr‰7Œ7�c‰>˜TÒ!Ð!Ð!Ð!Ýˆr‰7Œ7�c‰>˜QÒÐÐÐÝˆr‰7Œ7�d‰?˜eÒ#Ð#Ð#Ð#Ýˆr‰7Œ7�d‰?˜lÒ*Ð*Ð*Ð*Ý�‰GŒG�s‰N×ÒÐ1Ñ2Ô2Ð2Ð2Ð2Ý�‰GŒG�s‰N×ÒÐ0Ñ1Ô1Ð1Ð1Ð1Ý�‰GŒG�t‰O×ÒÐ 3Ñ4Ô4Ð4Ð4Ð4Ý�‰GŒG�t‰O×ÒÐ 5Ñ6Ô6Ð6Ð6Ð6Ý�‰GŒG�s‰N×ÒÐ1Ñ2Ô2Ð2Ð2Ð2Ý�‰GŒG�t‰O×ÒÐ 3Ñ4Ô4Ð4Ð4Ð4Ð4Ð4r   c            
      óÜ  — t          j        d¦  «         dD ]Ô} t          d¦  «        D ]Â}t          j        d| dz
  z  d| z  ¦  «        }t          j        dd¦  «        }||z  }t	          t          t          |¦  «        t          |¦  «        | t          ¦  «        ¦  «        |k     sJ ‚t	          t          t          |¦  «        t          |¦  «        | t          ¦  «        ¦  «        |k    sJ ‚ŒÃŒÕdS )zR
    Test that inexact integer powers are rounded in the right
    direction.
    iÒ  )r	   é5   éÈ   é2   é   é   éd   N)	ÚrandomÚseedÚrangeÚrandintÚto_intÚmpf_powÚfrom_intÚ
round_downÚround_up)ÚprecÚiÚaÚbÚabs        r   Útest_pow_integer_directionr'      sï   € õ
 „K�ÑÔÐØð Rð RˆÝ�r‘”ð 	Rð 	RˆAÝ”˜q 4¨¡6™{¨A¨t©GÑ4Ô4ˆAÝ”˜q #Ñ&Ô&ˆAØ�A‘ˆBå�'¥(¨1¡+¤+­x¸©{¬{¸DÅ*ÑMÔMÑNÔNÐQSÒSÐSÐSÐSÝ�'¥(¨1¡+¤+­x¸©{¬{¸DÅ(ÑKÔKÑLÔLÈrÒQÐQÐQÐQÐQð	RðRð Rr   c                  óÄ
  — d„ } dD �]L\  }}|t           _        t          d¦  «        t          d¦  «        | dz   z  z   }t          d¦  «        t          d¦  «        | dz   z  z
  }| }| }|t           _        t          } | |d|¦  «        dk    sJ ‚ | |d|¦  «        dk    sJ ‚ | |d|¦  «        dk     sJ ‚ | |d|¦  «        dk    sJ ‚ | |d|¦  «        dk    sJ ‚ | |d|¦  «        dk    sJ ‚ | |d|¦  «        dk    sJ ‚ | |d|¦  «        dk    sJ ‚ | |d|¦  «        dk    sJ ‚ | |d|¦  «        dk    sJ ‚ | |d|¦  «        dk    sJ ‚ | |d|¦  «        dk     sJ ‚ | |d	|¦  «        dk    sJ ‚ | |d	|¦  «        dk    sJ ‚ | |d	|¦  «        dk    sJ ‚ | |d	|¦  «        dk    sJ ‚t          } | |d|¦  «        dk    sJ ‚ | |d|¦  «        dk     sJ ‚ | |d|¦  «        dk    sJ ‚ | |d|¦  «        dk    sJ ‚ | |d|¦  «        dk    sJ ‚ | |d|¦  «        dk     sJ ‚ | |d|¦  «        dk    sJ ‚ | |d|¦  «        dk     sJ ‚ | |d|¦  «        dk     sJ ‚ | |d|¦  «        dk    sJ ‚ | |d|¦  «        dk    sJ ‚ | |d|¦  «        dk    sJ ‚ | |d	|¦  «        dk     sJ ‚ | |d	|¦  «        dk    sJ ‚ | |d	|¦  «        dk     sJ ‚ | |d	|¦  «        dk    sJ ‚t
          } | |d|¦  «        dk    sJ ‚ | |d|¦  «        dk    sJ ‚ | |d|¦  «        dk    sJ ‚ | |d|¦  «        dk    sJ ‚ | |d|¦  «        dk    sJ ‚ | |d|¦  «        dk    sJ ‚ | |d|¦  «        dk    sJ ‚ | |d|¦  «        dk    sJ ‚ | |d|¦  «        dk    sJ ‚ | |d|¦  «        dk    sJ ‚ | |d|¦  «        dk    sJ ‚ | |d|¦  «        dk    sJ ‚ | |d	|¦  «        dk    sJ ‚ | |d	|¦  «        dk    sJ ‚ | |d	|¦  «        dk    sJ ‚ | |d	|¦  «        dk    sJ ‚t          } | |d|¦  «        dk    sJ ‚ | |d|¦  «        dk     sJ ‚ | |d|¦  «        dk     sJ ‚ | |d|¦  «        dk    sJ ‚ | |d|¦  «        dk    sJ ‚ | |d|¦  «        dk     sJ ‚ | |d|¦  «        dk    sJ ‚ | |d|¦  «        dk     sJ ‚ | |d|¦  «        dk     sJ ‚ | |d|¦  «        dk    sJ ‚ | |d|¦  «        dk    sJ ‚ | |d|¦  «        dk     sJ ‚ | |d	|¦  «        dk     sJ ‚ | |d	|¦  «        dk    sJ ‚ | |d	|¦  «        dk     sJ ‚ | |d	|¦  «        dk    sJ ‚�ŒNd
t           _        dS )aµ  
    Stress test directed rounding for powers with integer exponents.
    Basically, we look at the following cases:

    >>> 1.0001 ** -5 # doctest: +SKIP
    0.99950014996500702
    >>> 0.9999 ** -5 # doctest: +SKIP
    1.000500150035007
    >>> (-1.0001) ** -5 # doctest: +SKIP
    -0.99950014996500702
    >>> (-0.9999) ** -5 # doctest: +SKIP
    -1.000500150035007

    >>> 1.0001 ** -6 # doctest: +SKIP
    0.99940020994401269
    >>> 0.9999 ** -6 # doctest: +SKIP
    1.0006002100560125
    >>> (-1.0001) ** -6 # doctest: +SKIP
    0.99940020994401269
    >>> (-0.9999) ** -6 # doctest: +SKIP
    1.0006002100560125

    etc.

    We run the tests with values a very small epsilon away from 1:
    small enough that the result is indistinguishable from 1 when
    rounded to nearest at the output precision. We check that the
    result is not erroneously rounded to 1 in cases where the
    rounding should be done strictly away from 1.
    c                 ó^   — t          t          | j        |t          j        |¦  «        ¦  «        S )N)Úmake_mpfÚmpf_pow_intÚ_mpf_r
   r"   )ÚxÚnÚrs      r   Úpowrz'test_pow_epsilon_rounding.<locals>.powrC   s"   € Ý� A¤G¨Qµ´¸Ñ;Ô;Ñ<Ô<Ð<r   ))r   é   )iˆ  i¸  r   r   é   éÿÿÿÿé   éûÿÿÿiúÿÿÿr   N)r
   r"   r   r!   r    Úround_ceilingÚround_floorr   )r0   ÚinprecÚoutprecÚpos10001Úpos09999Úneg10001Úneg09999r/   s           r   Útest_pow_epsilon_roundingr>   #   sj  € ð@=ð =ð =ð 7ð T*ñ T*Ñˆ�à�Œå�q‘6”6�C ™FœF f W¨Q¡YÑ/Ñ/ˆÝ�q‘6”6�C ™FœF f W¨Q¡YÑ/Ñ/ˆØ�9ˆØ�9ˆà�ŒÝˆØˆt�H˜a Ñ#Ô# aÒ'Ð'Ð'Ð'Øˆt�H˜a Ñ#Ô# qÒ(Ð(Ð(Ð(Øˆt�H˜a Ñ#Ô# bÒ(Ð(Ð(Ð(Øˆt�H˜a Ñ#Ô# rÒ)Ð)Ð)Ð)Øˆt�H˜a Ñ#Ô# aÒ'Ð'Ð'Ð'Øˆt�H˜a Ñ#Ô# qÒ(Ð(Ð(Ð(Øˆt�H˜a Ñ#Ô# aÒ'Ð'Ð'Ð'Øˆt�H˜a Ñ#Ô# qÒ(Ð(Ð(Ð(àˆt�H˜b !Ñ$Ô$¨Ò)Ð)Ð)Ð)Øˆt�H˜b !Ñ$Ô$ qÒ(Ð(Ð(Ð(Øˆt�H˜b !Ñ$Ô$¨Ò*Ð*Ð*Ð*Øˆt�H˜b !Ñ$Ô$ rÒ)Ð)Ð)Ð)Øˆt�H˜b !Ñ$Ô$¨Ò)Ð)Ð)Ð)Øˆt�H˜b !Ñ$Ô$ qÒ(Ð(Ð(Ð(Øˆt�H˜b !Ñ$Ô$¨Ò)Ð)Ð)Ð)Øˆt�H˜b !Ñ$Ô$ qÒ(Ð(Ð(Ð(åˆØˆt�H˜a Ñ#Ô# qÒ(Ð(Ð(Ð(Øˆt�H˜a Ñ#Ô# aÒ'Ð'Ð'Ð'Øˆt�H˜a Ñ#Ô# rÒ)Ð)Ð)Ð)Øˆt�H˜a Ñ#Ô# bÒ(Ð(Ð(Ð(Øˆt�H˜a Ñ#Ô# qÒ(Ð(Ð(Ð(Øˆt�H˜a Ñ#Ô# aÒ'Ð'Ð'Ð'Øˆt�H˜a Ñ#Ô# qÒ(Ð(Ð(Ð(Øˆt�H˜a Ñ#Ô# aÒ'Ð'Ð'Ð'àˆt�H˜b !Ñ$Ô$ qÒ(Ð(Ð(Ð(Øˆt�H˜b !Ñ$Ô$¨Ò)Ð)Ð)Ð)Øˆt�H˜b !Ñ$Ô$ rÒ)Ð)Ð)Ð)Øˆt�H˜b !Ñ$Ô$¨Ò*Ð*Ð*Ð*Øˆt�H˜b !Ñ$Ô$ qÒ(Ð(Ð(Ð(Øˆt�H˜b !Ñ$Ô$¨Ò)Ð)Ð)Ð)Øˆt�H˜b !Ñ$Ô$ qÒ(Ð(Ð(Ð(Øˆt�H˜b !Ñ$Ô$¨Ò)Ð)Ð)Ð)åˆØˆt�H˜a Ñ#Ô# aÒ'Ð'Ð'Ð'Øˆt�H˜a Ñ#Ô# qÒ(Ð(Ð(Ð(Øˆt�H˜a Ñ#Ô# rÒ)Ð)Ð)Ð)Øˆt�H˜a Ñ#Ô# bÒ(Ð(Ð(Ð(Øˆt�H˜a Ñ#Ô# aÒ'Ð'Ð'Ð'Øˆt�H˜a Ñ#Ô# qÒ(Ð(Ð(Ð(Øˆt�H˜a Ñ#Ô# aÒ'Ð'Ð'Ð'Øˆt�H˜a Ñ#Ô# qÒ(Ð(Ð(Ð(àˆt�H˜b !Ñ$Ô$¨Ò)Ð)Ð)Ð)Øˆt�H˜b !Ñ$Ô$ qÒ(Ð(Ð(Ð(Øˆt�H˜b !Ñ$Ô$ rÒ)Ð)Ð)Ð)Øˆt�H˜b !Ñ$Ô$¨Ò*Ð*Ð*Ð*Øˆt�H˜b !Ñ$Ô$¨Ò)Ð)Ð)Ð)Øˆt�H˜b !Ñ$Ô$ qÒ(Ð(Ð(Ð(Øˆt�H˜b !Ñ$Ô$¨Ò)Ð)Ð)Ð)Øˆt�H˜b !Ñ$Ô$ qÒ(Ð(Ð(Ð(åˆØˆt�H˜a Ñ#Ô# qÒ(Ð(Ð(Ð(Øˆt�H˜a Ñ#Ô# aÒ'Ð'Ð'Ð'Øˆt�H˜a Ñ#Ô# bÒ(Ð(Ð(Ð(Øˆt�H˜a Ñ#Ô# rÒ)Ð)Ð)Ð)Øˆt�H˜a Ñ#Ô# qÒ(Ð(Ð(Ð(Øˆt�H˜a Ñ#Ô# aÒ'Ð'Ð'Ð'Øˆt�H˜a Ñ#Ô# qÒ(Ð(Ð(Ð(Øˆt�H˜a Ñ#Ô# aÒ'Ð'Ð'Ð'àˆt�H˜b !Ñ$Ô$ qÒ(Ð(Ð(Ð(Øˆt�H˜b !Ñ$Ô$¨Ò)Ð)Ð)Ð)Øˆt�H˜b !Ñ$Ô$¨Ò*Ð*Ð*Ð*Øˆt�H˜b !Ñ$Ô$ rÒ)Ð)Ð)Ð)Øˆt�H˜b !Ñ$Ô$ qÒ(Ð(Ð(Ð(Øˆt�H˜b !Ñ$Ô$¨Ò)Ð)Ð)Ð)Øˆt�H˜b !Ñ$Ô$ qÒ(Ð(Ð(Ð(Øˆt�H˜b !Ñ$Ô$¨Ò)Ð)Ð)Ð)Ñ)à…B„F€F€Fr   )ÚmpmathÚmpmath.libmpr   r   r'   r>   r   r   r   ú<module>rA      se   ðØ Ð Ð Ð Ø Ð Ð Ð à €€€ð5ð 5ð 5ðRð Rð Rð yð yð yð yð yr   