ó
    Eñi›:  ã                   ó”  • S r SS/rSSKrSSKrSSKrSSKJr  SSKJr  SSK	J
r
Jr  SS	KJr  S
 rS r\R"                  \R$                  \R&                  \R(                  \R*                  \R,                  0rSr\R2                  \R4                  S\R7                  S5      S.\R$                  \R8                  S\R7                  S5      S.\R,                  \R:                  S\R7                  S5      S.\R<                  \R>                  S\R7                  S5      S.0r \" S5       " S S5      5       r!\" S5       " S S5      5       r"g)zJMachine limits for Float32 and Float64 and (long double) if available...

ÚfinfoÚiinfoé    N)Úcached_property)Ú
set_moduleé   )ÚnumericÚnumerictypes)Ú_populate_finfo_constantsc                 óT   • U R                   S:X  a  U R                  5       n SU l        U $ )zfix rank-0 --> rank-1r   )r   )ÚndimÚcopyÚshape©Úas    ÚR/home/mande/repo/quber/.venv/lib/python3.13/site-packages/numpy/_core/getlimits.pyÚ_fr0r      s$   € à‡v�v�ƒ{Ø�F‰F‹HˆØˆŒØ€Hó    c                 óT   • U R                   S:X  a  U R                  5       n SU l        U $ )zfix rank > 0 --> rank-0r   © )Úsizer   r   r   s    r   Ú_fr1r      s$   € à‡v�v�ƒ{Ø�F‰F‹HˆØˆŒØ€Hr   z(numpy {} precision floating point numberz%24.16eÚdouble)ÚitypeÚfmtÚtitlez%15.7eÚsingleú%szlong doublez%12.5eÚhalfÚnumpyc                   óÈ   • \ rS rSrSr0 r\" \R                  5      r	S r
S r\S 5       r\S 5       r\S 5       r\S 5       r\S	 5       r\S
 5       rS rS r\S 5       rSrg)r   é<   a’  
finfo(dtype)

Machine limits for floating point types.

Attributes
----------
bits : int
    The number of bits occupied by the type.
dtype : dtype
    Returns the dtype for which `finfo` returns information. For complex
    input, the returned dtype is the associated ``float*`` dtype for its
    real and complex components.
eps : float
    The difference between 1.0 and the next smallest representable float
    larger than 1.0. For example, for 64-bit binary floats in the IEEE-754
    standard, ``eps = 2**-52``, approximately 2.22e-16.
epsneg : float
    The difference between 1.0 and the next smallest representable float
    less than 1.0. For example, for 64-bit binary floats in the IEEE-754
    standard, ``epsneg = 2**-53``, approximately 1.11e-16.
iexp : int
    The number of bits in the exponent portion of the floating point
    representation.
machep : int
    The exponent that yields `eps`.
max : floating point number of the appropriate type
    The largest representable number.
maxexp : int
    The smallest positive power of the base (2) that causes overflow.
    Corresponds to the C standard MAX_EXP.
min : floating point number of the appropriate type
    The smallest representable number, typically ``-max``.
minexp : int
    The most negative power of the base (2) consistent with there
    being no leading 0's in the mantissa. Corresponds to the C
    standard MIN_EXP - 1.
negep : int
    The exponent that yields `epsneg`.
nexp : int
    The number of bits in the exponent including its sign and bias.
nmant : int
    The number of explicit bits in the mantissa (excluding the implicit
    leading bit for normalized numbers).
precision : int
    The approximate number of decimal digits to which this kind of
    float is precise.
resolution : floating point number of the appropriate type
    The approximate decimal resolution of this type, i.e.,
    ``10**-precision``.
tiny : float
    An alias for `smallest_normal`, kept for backwards compatibility.
smallest_normal : float
    The smallest positive floating point number with 1 as leading bit in
    the mantissa following IEEE-754 (see Notes).
smallest_subnormal : float
    The smallest positive floating point number with 0 as leading bit in
    the mantissa following IEEE-754.

Parameters
----------
dtype : float, dtype, or instance
    Kind of floating point or complex floating point
    data-type about which to get information.

See Also
--------
iinfo : The equivalent for integer data types.
spacing : The distance between a value and the nearest adjacent number
nextafter : The next floating point value after x1 towards x2

Notes
-----
For developers of NumPy: do not instantiate this at the module level.
The initial calculation of these parameters is expensive and negatively
impacts import times.  These objects are cached, so calling ``finfo()``
repeatedly inside your functions is not a problem.

Note that ``smallest_normal`` is not actually the smallest positive
representable value in a NumPy floating point type. As in the IEEE-754
standard [1]_, NumPy floating point types make use of subnormal numbers to
fill the gap between 0 and ``smallest_normal``. However, subnormal numbers
may have significantly reduced precision [2]_.

For ``longdouble``, the representation varies across platforms. On most
platforms it is IEEE 754 binary128 (quad precision) or binary64-extended
(80-bit extended precision). On PowerPC systems, it may use the IBM
double-double format (a pair of float64 values), which has special
characteristics for precision and range.

This function can also be used for complex data types as well. If used,
the output will be the same as the corresponding real float type
(e.g. numpy.finfo(numpy.csingle) is the same as numpy.finfo(numpy.single)).
However, the output is true for the real and imaginary components.

References
----------
.. [1] IEEE Standard for Floating-Point Arithmetic, IEEE Std 754-2008,
       pp.1-70, 2008, https://doi.org/10.1109/IEEESTD.2008.4610935
.. [2] Wikipedia, "Denormal Numbers",
       https://en.wikipedia.org/wiki/Denormal_number

Examples
--------
>>> import numpy as np
>>> np.finfo(np.float64).dtype
dtype('float64')
>>> np.finfo(np.complex64).dtype
dtype('float32')

c                 óÖ  •  U R                   R                  U5      nUb  U$  Uc  [        R                  " S[
        SS9   [        R                  " U5      nU R                   R                  U5      nUb  U$ U/n[        R                  " U5      nXALa  UR                  U5        Un[        U[        R                  5      (       d  [        SU< S35      eU R                   R                  U5      nUb  U$ [        U[        R                  5      (       dX  [         U   nXALaK  UR                  U5        UnU R                   R                  US 5      nUb  U H  nX R                   U'   M     U$ ["        R%                  U 5      R'                  U5      nU H  nX R                   U'   M     U$ ! [         a     GN”f = f! [         a#    [        R                  " [        U5      5      n GN�f = f)Nzifinfo() dtype cannot be None. This behavior will raise an error in the future. (Deprecated in NumPy 1.25)é   )Ú
stacklevelz
data type z not inexact)Ú_finfo_cacheÚgetÚ	TypeErrorÚwarningsÚwarnÚDeprecationWarningr   ÚdtypeÚtypeÚntypesÚ
obj2sctypeÚappendÚ
issubclassÚinexactÚ
ValueErrorÚfloatingÚ_convert_to_floatÚobjectÚ__new__Ú_init)Úclsr+   ÚobjÚdtypesÚnewdtypeÚdts         r   r6   Úfinfo.__new__²   sÐ  € ð	Ø×"Ñ"×&Ñ& uÓ-ˆCØ‰Ø�
ð ð
 ‰=ä�MŠMðKä"Øò	ð	/Ü—M’M %Ó(ˆEð
 ×Ñ×"Ñ" 5Ó)ˆØ‰?ØˆJØ�ˆÜ×$Ò$ UÓ+ˆØÒ Ø�M‰M˜(Ô#ØˆEÜ˜%¤§¡×1Ñ1Ü˜z¨%©°,Ð?Ó@Ð@Ø×Ñ×"Ñ" 5Ó)ˆØ‰?ØˆJÜ˜%¤×!1Ñ!1×2Ñ2Ü(¨Ñ/ˆHØÒ$à—‘˜hÔ'Ø �à×&Ñ&×*Ñ*¨5°$Ó7�Ø‘?ó %˜Ø/2×(Ñ(¨Ó,ñ %à�JÜ�n‰n˜SÓ!×'Ñ'¨Ó.ˆÛˆBØ#&×Ñ˜RÓ ñ àˆ
øôc ó 	Úð	ûô ó 	/ä—M’M¤$ u£+Ó.‹Eð	/ús#   ‚F* ÁF; Æ*
F8Æ7F8Æ;)G(Ç'G(c                 ó¾   • [         R                  " U5      U l        U R                  R                  S-  U l        S U l        S U l        [        X R                  5        U $ )Né   )r   r+   ÚitemsizeÚbitsÚ_fmtÚ_reprr
   )Úselfr+   s     r   r7   Úfinfo._initê   sG   € Ü—]’] 5Ó)ˆŒ
Ø—J‘J×'Ñ'¨!Ñ+ˆŒ	ØˆŒ	ØˆŒ
Ü! $¯
©
Ô3Øˆr   c                 ó4   • U R                   U R                  -  $ ©N)ÚepsÚ_radix©rD   s    r   ÚepsnegÚfinfo.epsnegò   s   € ð �x‰x˜$Ÿ+™+Ñ%Ð%r   c                 óT   • U R                   R                  S5      U R                  * -  $ )Né
   )r+   r,   Ú	precisionrJ   s    r   Ú
resolutionÚfinfo.resolution÷   s    € à�z‰z�‰˜rÓ" T§^¡^ OÑ3Ð3r   c                 óT   • [        [        R                  " U R                  5      5      $ rG   )ÚintÚmathÚlog2rH   rJ   s    r   ÚmachepÚfinfo.machepû   s   € ä”4—9’9˜TŸX™XÓ&Ó'Ð'r   c                 óT   • [        [        R                  " U R                  5      5      $ rG   )rS   rT   rU   rK   rJ   s    r   ÚnegepÚfinfo.negepÿ   s   € ä”4—9’9˜TŸ[™[Ó)Ó*Ð*r   c                 óŠ   • [         R                  " [         R                  " U R                  U R                  -
  S-   5      5      $ )Nr#   ©rT   ÚceilrU   ÚmaxexpÚminexprJ   s    r   ÚnexpÚ
finfo.nexp  s.   € ô �yŠyœŸš 4§;¡;°·±Ñ#<¸qÑ#@ÓAÓBÐBr   c                 ó„   • [         R                  " [         R                  " U R                  U R                  -
  5      5      $ rG   r\   rJ   s    r   ÚiexpÚ
finfo.iexp  s)   € ô �yŠyœŸš 4§;¡;°·±Ñ#<Ó=Ó>Ð>r   c                 ó†  ^ • [        T SS 5      =nb  U$ S%U 4S jjnU" SS5      nU" SS5      nU" SS5      nU" SS5      nU" S	S5      nU" S
5      nU" S5      n	U" S5      n
U" S5      nU" S5      nU" S5      nU" SS5      nU" S5      n[        T S5      (       a/  [        T S5      (       a  T R                  * T R                  :X  a  SnOU" S5      nSR	                  / SPT R
                   PSPU PSPU PSPU PSPU	 PSPU PSPU
 PSPU PSPU PSPU PSPU PS PU PS!PU PS"PU PS#PU PS$P5      nUT l        U$ )&NrB   c                 óv   >• [        TU S 5      =nc  gUb  [        U5      R                  U5      n[        U5      $ )Nz<undefined>)ÚgetattrÚstrÚljust)ÚnameÚpadÚvalÚsrD   s       €r   Úget_strÚfinfo.__str__.<locals>.get_str  s:   ø€ Ü˜t T¨4Ó0Ð0�Ñ9Ø$Ø‰Ü˜“H—N‘N 3Ó'�Ü�s“8ˆOr   rO   é   rV   é   rY   r_   r^   rP   rH   rK   ÚtinyÚsmallest_normalÚsmallest_subnormalr`   ÚmaxÚminz-maxÚ zMachine parameters for zM
---------------------------------------------------------------
precision = z   resolution = z

machep = z   eps =        z

negep =  z   epsneg =     z

minexp = z   tiny =       z

maxexp = z   max =        z

nexp =   z   min =        z
smallest_normal = z   smallest_subnormal = zA
---------------------------------------------------------------
rG   )rg   Úhasattrrv   ru   Újoinr+   rB   )rD   r   rn   rO   rV   rY   r_   r^   rP   rH   rK   rr   rs   rt   r`   Úmax_Úmin_s   `                r   Ú__str__Úfinfo.__str__  sx  ø€ Ü˜4 ¨Ó.Ð.ˆCÑ;ØˆJ÷	ñ ˜K¨Ó+ˆ	Ù˜ 1Ó%ˆÙ˜ Ó#ˆÙ˜ 1Ó%ˆÙ˜ 1Ó%ˆÙ˜\Ó*ˆ
Ù�e‹nˆÙ˜Ó"ˆÙ�v‹ˆÙ!Ð"3Ó4ˆÙ$Ð%9Ó:ÐÙ�v˜qÓ!ˆÙ�u‹~ˆÜ�4˜×Ñ¤G¨D°%×$8Ñ$8¸d¿h¹h¸YÈ$Ï(É(Ó=RØ‰Dá˜5“>ˆD÷
Qó 
QÐ%ð 
Q d§j¡j \ð 
Qð 2ð 
Qà$˜+ð
Qà%5ð
Qà6@°\ð
QðBð
Qð �xð
Qð  0ð
Qð 14¨uð
Qð5ð
Qð �wð	
Qð /ð	
Qð 06¨hð	
Qð7ð	
Qð
 �xð
Qð
  0ð
Qð
 15¨vð
Qð
6ð
Qð �xð
Qð  0ð
Qð 15¨vð
Qð6ð
Qð �vð
Qð .ð
Qð /3¨Vð
Qð4!ð
Qð "1Ð 1ð
Qð2$ð
Qð %7Ð#7ð
Qð8Pô
Qð 	ð ˆŒ	Øˆ
r   c           
      óL  • [        U SS 5      =nb  U$ U R                  R                  n[        R	                  U R
                  R                  0 5      R	                  SS5      nUS:w  a[  [        U S5      (       aJ  [        U S5      (       a9  X0R                  -  R                  5       nX0R                  -  R                  5       nO*[        U R                  5      n[        U R                  5      n[        U R                  5      nU SU SU SU S	U R
                   S
3
nXl        U$ )NrC   r   r   ru   rv   z(resolution=z, min=ú, max=ú, dtype=Ú))rg   Ú	__class__Ú__name__Ú_MACHAR_PARAMSr&   r+   r,   rx   ru   Ústriprv   rh   rP   rC   )rD   Úrepr_strÚcÚfmt_strÚmax_strÚmin_strÚresolution_strs          r   Ú__repr__Úfinfo.__repr__:  sþ   € Ü  g¨tÓ4Ð4ˆHÑAØˆOà�N‰N×#Ñ#ˆô !×$Ñ$ T§Z¡Z§_¡_°bÓ9×=Ñ=¸eÀTÓJˆØ�d‹?œw t¨U×3Ñ3¼ÀÀe×8LÑ8LØ§¡Ñ)×0Ñ0Ó2ˆGØ§¡Ñ)×0Ñ0Ó2‰Gä˜$Ÿ(™(“mˆGÜ˜$Ÿ(™(“mˆGä˜TŸ_™_Ó-ˆà�c˜ nÐ%5°V¸G¸9ð EØ#˜9 H¨T¯Z©Z¨L¸ð;ˆàŒ
Øˆr   c                 ó   • U R                   $ )a  Return the value for tiny, alias of smallest_normal.

Returns
-------
tiny : float
    Value for the smallest normal, alias of smallest_normal.

Warns
-----
UserWarning
    If the calculated value for the smallest normal is requested for
    double-double.
)rs   rJ   s    r   rr   Ú
finfo.tinyP  s   € ð ×#Ñ#Ð#r   )rB   rC   rA   r+   N)rƒ   Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r%   ÚclassmethodÚtypesÚGenericAliasÚ__class_getitem__r6   r7   r   rK   rP   rV   rY   r`   rc   r|   rŒ   rr   Ú__static_attributes__r   r   r   r   r   <   sÅ   † ñnð` €Lá# E×$6Ñ$6Ó7Ðò6òpð ñ&ó ð&ð ñ4ó ð4ð ñ(ó ð(ð ñ+ó ð+ð ñCó ðCð ñ?ó ð?ò+òZð, ñ$ó ó$r   c                   óv   • \ rS rSrSr0 r0 r\" \R                  5      r
S r\S 5       r\S 5       rS rS rSrg	)
r   ib  a:  
iinfo(type)

Machine limits for integer types.

Attributes
----------
bits : int
    The number of bits occupied by the type.
dtype : dtype
    Returns the dtype for which `iinfo` returns information.
min : int
    The smallest integer expressible by the type.
max : int
    The largest integer expressible by the type.

Parameters
----------
int_type : integer type, dtype, or instance
    The kind of integer data type to get information about.

See Also
--------
finfo : The equivalent for floating point data types.

Examples
--------
With types:

>>> import numpy as np
>>> ii16 = np.iinfo(np.int16)
>>> ii16.min
-32768
>>> ii16.max
32767
>>> ii32 = np.iinfo(np.int32)
>>> ii32.min
-2147483648
>>> ii32.max
2147483647

With instances:

>>> ii32 = np.iinfo(np.int32(10))
>>> ii32.min
-2147483648
>>> ii32.max
2147483647

c                 óª  •  [         R                  " U5      U l        U R                  R                  U l        U R                  R
                  S-  U l        SU R                  U R                  4-  U l        U R                  S;  a  [        SU R                  < S35      eg ! [         a'    [         R                  " [        U5      5      U l         N´f = f)Nr?   z%s%dÚiuzInvalid integer data type Ú.)	r   r+   r'   r,   Úkindr@   rA   Úkeyr2   )rD   Úint_types     r   Ú__init__Úiinfo.__init__œ  s¦   € ð	7Ü Ÿš xÓ0ˆDŒJð —J‘J—O‘OˆŒ	Ø—J‘J×'Ñ'¨!Ñ+ˆŒ	Ø˜TŸY™Y¨¯	©	Ð2Ñ2ˆŒØ�9‰9˜DÓ ÜÐ9¸$¿)¹)¹ÀaÐHÓIÐIð !øô ó 	7Ü Ÿš¤t¨H£~Ó6ˆDŽJð	7ús   ‚B! Â!.CÃCc                 óø   • U R                   S:X  a  g [        R                  U R                     nU$ ! [         a=    [        SU R                  S-
  -  * 5      nU[        R                  U R                  '    U$ f = f)zMinimum value of given dtype.Úur   r   )r�   r   Ú	_min_valsrž   ÚKeyErrorrS   rA   ©rD   rl   s     r   rv   Ú	iinfo.min§  ss   € ð �9‰9˜ÓØð0Ü—o‘o d§h¡hÑ/�ð ˆJøô ó 0Ü˜A $§)¡)¨a¡-Ñ0Ð1Ó2�Ø,/”—‘ §¡Ò)ØˆJð0ús   “2 ²AA9Á8A9c                 ó2  •  [         R                  U R                     nU$ ! [         ak    U R                  S:X  a  [        SU R                  -  S-
  5      nO[        SU R                  S-
  -  S-
  5      nU[         R                  U R                  '    U$ f = f)zMaximum value of given dtype.r£   r   )r   Ú	_max_valsrž   r¥   r�   rS   rA   r¦   s     r   ru   Ú	iinfo.max´  s‡   € ð	,Ü—/‘/ $§(¡(Ñ+ˆCð ˆ
øô ó 	,Ø�y‰y˜CÓÜ˜1 §	¡	™>¨QÑ.Ó/‘ä˜1 §¡¨Q¡Ñ/°1Ñ4Ó5�Ø(+ŒE�O‰O˜DŸH™HÒ%Øˆ
ð	,ús   ‚! ¡A1BÂBc                 óR   • SnXR                   U R                  U R                  S.-  $ )zString representation.z½Machine parameters for %(dtype)s
---------------------------------------------------------------
min = %(min)s
max = %(max)s
---------------------------------------------------------------
©r+   rv   ru   r¬   )rD   r   s     r   r|   Úiinfo.__str__Á  s+   € ðPð 	ð Ÿz™z°$·(±(À4Ç8Á8ÑLÑLÐLr   c                 óŠ   • U R                   R                  < SU R                  < SU R                  < SU R                  < S3$ )Nz(min=r   r€   r�   )r‚   rƒ   rv   ru   r+   rJ   s    r   rŒ   Úiinfo.__repr__Ì  s.   € Ø15·±×1HÔ1HØ$(§H¤H¨d¯h¬h¸¿
¼
ðDð 	Dr   )rA   r+   rž   r�   N)rƒ   r�   r‘   r’   r“   r¤   r©   r”   r•   r–   r—   r    Úpropertyrv   ru   r|   rŒ   r˜   r   r   r   r   r   b  s_   † ñ1ðf €IØ€Iá# E×$6Ñ$6Ó7Ðò	Jð ñ
ó ð
ð ñ
ó ð
ò	MõDr   )#r“   Ú__all__rT   r•   r(   Ú	functoolsr   Únumpy._utilsr   rw   r   r	   r-   Ú_multiarray_umathr
   r   r   Úcsingler   Ú
complex128Úfloat64ÚclongdoubleÚ
longdoubler4   Ú
_title_fmtr   Úint64ÚformatÚint32Úlonglongr   Úint16r„   r   r   r   r   r   Ú<module>rÀ      sX  ðñð �GÐ
€ã Û Û Ý %å #ç -Ý 8òòð ‡N�N�F—M‘MØ
×Ñ�v—~‘~Ø
×Ñ˜×)Ñ)ðÐ ð 8€
à
‡M�MØ—‘ØØ×"Ñ" 8Ó,ñ.ð ‡M�MØ—‘ØØ×"Ñ" 8Ó,ñ.ð ×ÑØ—‘ØØ×"Ñ" =Ó1ñ3ð ‡K�KØ—‘ØØ×"Ñ" 6Ó*ñ,ð-€ñ& ˆGÓ÷b$ð b$ó ðb$ñJ	 ˆGÓ÷kDð kDó ñkDr   