o
    1ήc'                     @   s  d Z ddlmZ ddlmZ ddlmZ ddlZdd Zeg dZ	d	d
 Z
e
ddgd e
dg d e
dg d e
dg d e
dg d e
dg d e
dg d e
dg d e
dg d e
dg d e
d g d! e
d"g d# e
d$g d% e
d&d'gd( e
d)d*gd+ e
d,d-gd. e
d/d0d1gd2 e
d3d4d5gd6 e
d7g d8 e
d9d:gd; e
d<d=gd> e
d?g d@ e
dAg dB e
dCg dD edEdFdG dHD ] ZedEedIdJjedKf edEedLdMe dNe dOe dPf qdQD ]!ZedEedRdMe dSe dTeej rdUe dVndW f qdS )Xz
This file is separate from ``_add_newdocs.py`` so that it can be mocked out by
our sphinx ``conf.py`` during doc builds, where we want to avoid showing
platform-dependent information.
    )dtype)numerictypes)
add_newdocNc                    s    fdd}t | S )Nc               	   3   sB     D ]\} }zt t| }W n	 ty   Y qw || |fV  qd S )N)getattr_numerictypesAttributeError)aliasdoc
alias_typealiases F/tmp/pip-target-vg8gfxp4/lib/python/numpy/core/_add_newdocs_scalars.pytype_aliases_gen   s   z.numeric_type_aliases.<locals>.type_aliases_gen)list)r   r   r   r   r   numeric_type_aliases   s   
	r   ))int8z*8-bit signed integer (``-128`` to ``127``))int16z116-bit signed integer (``-32_768`` to ``32_767``))int32z?32-bit signed integer (``-2_147_483_648`` to ``2_147_483_647``))int64zW64-bit signed integer (``-9_223_372_036_854_775_808`` to ``9_223_372_036_854_775_807``))intpzJSigned integer large enough to fit pointer, compatible with C ``intptr_t``)uint8z)8-bit unsigned integer (``0`` to ``255``))uint16z-16-bit unsigned integer (``0`` to ``65_535``))uint32z432-bit unsigned integer (``0`` to ``4_294_967_295``))uint64zA64-bit unsigned integer (``0`` to ``18_446_744_073_709_551_615``))uintpzMUnsigned integer large enough to fit pointer, compatible with C ``uintptr_t``)float16zX16-bit-precision floating-point number type: sign bit, 5 bits exponent, 10 bits mantissa)float32zX32-bit-precision floating-point number type: sign bit, 8 bits exponent, 23 bits mantissa)float64zY64-bit precision floating-point number type: sign bit, 11 bits exponent, 52 bits mantissa)float96z496-bit extended-precision floating-point number type)float128z5128-bit extended-precision floating-point number type)	complex64zIComplex number type composed of 2 32-bit-precision floating-point numbers)
complex128zIComplex number type composed of 2 64-bit-precision floating-point numbers)
complex192zRComplex number type composed of 2 96-bit extended-precision floating-point numbers)
complex256zSComplex number type composed of 2 128-bit extended-precision floating-point numbersc                    s   t t|  t j}|  jkrdnd| }ddd |D }|d fddtD 7 }dj| |||d}t	d| | d S )	N z :Canonical name: `numpy.{}`
    c                 s   s    | ]}d  |V  qdS )z:Alias: `numpy.{}`
    N)format).0r   r   r   r   	<genexpr>=   s    z-add_newdoc_for_scalar_type.<locals>.<genexpr>c                 3   s6    | ]\}}}| u rd  t t ||V  qdS )z5:Alias on this platform ({} {}): `numpy.{}`: {}.
    N)r&   platformsystemmachine)r'   r
   r   r	   or   r   r(   >   s    "z`
    {doc}

    :Character code: ``'{character_code}'``
    {canonical_name_doc}{alias_doc}
    )r	   character_codecanonical_name_doc	alias_docnumpy.core.numerictypes)
r   r   r   char__name__r&   joinpossible_aliasesstripr   )objfixed_aliasesr	   r.   r/   r0   	docstringr   r,   r   add_newdoc_for_scalar_type7   s   



r:   bool_bool8aD  
    Boolean type (True or False), stored as a byte.

    .. warning::

       The :class:`bool_` type is not a subclass of the :class:`int_` type
       (the :class:`bool_` is not even a number type). This is different
       than Python's default implementation of :class:`bool` as a
       sub-class of :class:`int`.
    bytez:
    Signed integer type, compatible with C ``char``.
    shortz;
    Signed integer type, compatible with C ``short``.
    intcz9
    Signed integer type, compatible with C ``int``.
    int_zK
    Signed integer type, compatible with Python `int` and C ``long``.
    longlongz?
    Signed integer type, compatible with C ``long long``.
    ubytezE
    Unsigned integer type, compatible with C ``unsigned char``.
    ushortzF
    Unsigned integer type, compatible with C ``unsigned short``.
    uintczD
    Unsigned integer type, compatible with C ``unsigned int``.
    uintzE
    Unsigned integer type, compatible with C ``unsigned long``.
    	ulonglongzH
    Signed integer type, compatible with C ``unsigned long long``.
    halfz4
    Half-precision floating-point number type.
    singlezS
    Single-precision floating-point number type, compatible with C ``float``.
    doublefloat_zk
    Double-precision floating-point number type, compatible with Python `float`
    and C ``double``.
    
longdouble	longfloatz
    Extended-precision floating-point number type, compatible with C
    ``long double`` but not necessarily with IEEE 754 quadruple-precision.
    csinglesinglecomplexzZ
    Complex number type composed of two single-precision floating-point
    numbers.
    cdoublecfloatcomplex_z|
    Complex number type composed of two double-precision floating-point
    numbers, compatible with Python `complex`.
    clongdouble
clongfloatlongcomplexz\
    Complex number type composed of two extended-precision floating-point
    numbers.
    object_z
    Any Python object.
    str_unicode_aV  
    A unicode string.

    When used in arrays, this type strips trailing null codepoints.

    Unlike the builtin `str`, this supports the :ref:`python:bufferobjects`, exposing its
    contents as UCS4:

    >>> m = memoryview(np.str_("abc"))
    >>> m.format
    '3w'
    >>> m.tobytes()
    b'a\x00\x00\x00b\x00\x00\x00c\x00\x00\x00'
    bytes_string_zX
    A byte string.

    When used in arrays, this type strips trailing null bytes.
    voidae  
    Either an opaque sequence of bytes, or a structure.

    >>> np.void(b'abcd')
    void(b'\x61\x62\x63\x64')

    Structured `void` scalars can only be constructed via extraction from :ref:`structured_arrays`:

    >>> arr = np.array((1, 2), dtype=[('x', np.int8), ('y', np.int8)])
    >>> arr[()]
    (1, 2)  # looks like a tuple, but is `np.void`
    
datetime64a  
    If created from a 64-bit integer, it represents an offset from
    ``1970-01-01T00:00:00``.
    If created from string, the string can be in ISO 8601 date
    or datetime format.

    >>> np.datetime64(10, 'Y')
    numpy.datetime64('1980')
    >>> np.datetime64('1980', 'Y')
    numpy.datetime64('1980')
    >>> np.datetime64(10, 'D')
    numpy.datetime64('1970-01-11')

    See :ref:`arrays.datetime` for more information.
    timedelta64zg
    A timedelta stored as a 64-bit integer.

    See :ref:`arrays.datetime` for more information.
    r1   integer)
is_integerz
    integer.is_integer() -> bool

    Return ``True`` if the number is finite with integral value.

    .. versionadded:: 1.22

    Examples
    --------
    >>> np.int64(-2).is_integer()
    True
    >>> np.uint32(5).is_integer()
    True
    )rG   rH   rI   rK   as_integer_ratioa  
        {ftype}.as_integer_ratio() -> (int, int)

        Return a pair of integers, whose ratio is exactly equal to the original
        floating point number, and with a positive denominator.
        Raise `OverflowError` on infinities and a `ValueError` on NaNs.

        >>> np.{ftype}(10.0).as_integer_ratio()
        (10, 1)
        >>> np.{ftype}(0.0).as_integer_ratio()
        (0, 1)
        >>> np.{ftype}(-.25).as_integer_ratio()
        (-1, 4)
        )ftyper^   z	
        z.is_integer() -> bool

        Return ``True`` if the floating point number is finite with integral
        value, and ``False`` otherwise.

        .. versionadded:: 1.22

        Examples
        --------
        >>> np.z0(-2.0).is_integer()
        True
        >>> np.z)(3.2).is_integer()
        False
        )r   r   r   r   r   r   r   r   r   r   r   r   	bit_countz.bit_count() -> int

        Computes the number of 1-bits in the absolute value of the input.
        Analogous to the builtin `int.bit_count` or ``popcount`` in C++.

        Examples
        --------
        >>> np.z(127).bit_count()
        7z
        >>> np.z%(-127).bit_count()
        7
        r%   )__doc__
numpy.corer   r   r   numpy.core.function_baser   r)   r   r5   r:   
float_namer&   int_namer2   islowerr   r   r   r   <module>   s    


