o
    Ô­jˆe  ã                   @  sž  d dl mZ ddlmZmZmZmZmZmZm	Z	m
Z
mZ ddlmZ d dlZd�d	d
„Zd�dd„Zd�dd„Zd‚dd„Zd�dd„Zd�dd„Zd�dd„Zd‚dd„Zd�dd„Zd‚dd„Zd‚dd „Zd�d!d"„Zd‚d#d$„Zd‚d%d&„Zd‚d'd(„Zd�d)d*„Zd�d+d,„Z d�d-d.„Z!d�d/d0„Z"d‚d1d2„Z#d‚d3d4„Z$d�d5d6„Z%d�d7d8„Z&d�d9d:„Z'd‚d;d<„Z(d‚d=d>„Z)d‚d?d@„Z*d�dAdB„Z+d�dCdD„Z,d�dEdF„Z-d�dGdH„Z.d‚dIdJ„Z/d‚dKdL„Z0d�dMdN„Z1d�dOdP„Z2d�dQdR„Z3d�dSdT„Z4d‚dUdV„Z5d‚dWdX„Z6d�dYdZ„Z7d‚d[d\„Z8d‚d]d^„Z9d‚d_d`„Z:d�dadb„Z;d‚dcdd„Z<d�dedf„Z=d‚dgdh„Z>d�didj„Z?d‚dkdl„Z@d�dmdn„ZAd�dodp„ZBd�dqdr„ZCd�dsdt„ZDd�dudv„ZEd�dwdx„ZFd‚dydz„ZGd�d{d|„ZHd�d}d~„ZId�dd€„ZJdS )ƒé    )Úannotationsé   )	Ú_boolean_dtypesÚ_floating_dtypesÚ_real_floating_dtypesÚ_complex_floating_dtypesÚ_integer_dtypesÚ_integer_or_boolean_dtypesÚ_real_numeric_dtypesÚ_numeric_dtypesÚ_result_type)ÚArrayNÚxr   Úreturnc                C  ó$   | j tvr	tdƒ‚t t | j¡¡S )zv
    Array API compatible wrapper for :py:func:`np.abs <numpy.abs>`.

    See its docstring for more information.
    z&Only numeric dtypes are allowed in abs)Údtyper   Ú	TypeErrorr   Ú_newÚnpÚabsÚ_array©r   © r   úc/var/www/html/CropPilot/venv/lib/python3.10/site-packages/numpy/array_api/_elementwise_functions.pyr      ó   
r   c                C  r   )z|
    Array API compatible wrapper for :py:func:`np.arccos <numpy.arccos>`.

    See its docstring for more information.
    z.Only floating-point dtypes are allowed in acos)r   r   r   r   r   r   Úarccosr   r   r   r   r   Úacos   r   r   c                C  r   )z~
    Array API compatible wrapper for :py:func:`np.arccosh <numpy.arccosh>`.

    See its docstring for more information.
    z/Only floating-point dtypes are allowed in acosh)r   r   r   r   r   r   Úarccoshr   r   r   r   r   Úacosh+   r   r   Úx1Úx2c                C  óP   | j tvs
|j tvrtdƒ‚t| j |j ƒ t | |¡\} }t t | j	|j	¡¡S )zv
    Array API compatible wrapper for :py:func:`np.add <numpy.add>`.

    See its docstring for more information.
    z&Only numeric dtypes are allowed in add)
r   r   r   r   r   Ú_normalize_two_argsr   r   Úaddr   ©r   r    r   r   r   r#   6   ó
   r#   c                C  r   )z|
    Array API compatible wrapper for :py:func:`np.arcsin <numpy.arcsin>`.

    See its docstring for more information.
    z.Only floating-point dtypes are allowed in asin)r   r   r   r   r   r   Úarcsinr   r   r   r   r   ÚasinE   r   r'   c                C  r   )z~
    Array API compatible wrapper for :py:func:`np.arcsinh <numpy.arcsinh>`.

    See its docstring for more information.
    z/Only floating-point dtypes are allowed in asinh)r   r   r   r   r   r   Úarcsinhr   r   r   r   r   ÚasinhQ   r   r)   c                C  r   )z|
    Array API compatible wrapper for :py:func:`np.arctan <numpy.arctan>`.

    See its docstring for more information.
    z.Only floating-point dtypes are allowed in atan)r   r   r   r   r   r   Úarctanr   r   r   r   r   Úatan]   r   r+   c                C  r!   )z~
    Array API compatible wrapper for :py:func:`np.arctan2 <numpy.arctan2>`.

    See its docstring for more information.
    z4Only real floating-point dtypes are allowed in atan2)
r   r   r   r   r   r"   r   r   Úarctan2r   r$   r   r   r   Úatan2i   r%   r-   c                C  r   )z~
    Array API compatible wrapper for :py:func:`np.arctanh <numpy.arctanh>`.

    See its docstring for more information.
    z/Only floating-point dtypes are allowed in atanh)r   r   r   r   r   r   Úarctanhr   r   r   r   r   Úatanhx   r   r/   c                C  r!   )z†
    Array API compatible wrapper for :py:func:`np.bitwise_and <numpy.bitwise_and>`.

    See its docstring for more information.
    z9Only integer or boolean dtypes are allowed in bitwise_and)
r   r	   r   r   r   r"   r   r   Úbitwise_andr   r$   r   r   r   r0   ƒ   ó   

r0   c                C  óh   | j tvs
|j tvrtdƒ‚t| j |j ƒ t | |¡\} }t |jdk ¡r)t	dƒ‚t 
t | j|j¡¡S )z„
    Array API compatible wrapper for :py:func:`np.left_shift <numpy.left_shift>`.

    See its docstring for more information.
    z5Only integer dtypes are allowed in bitwise_left_shiftr   z6bitwise_left_shift(x1, x2) is only defined for x2 >= 0)r   r   r   r   r   r"   r   Úanyr   Ú
ValueErrorr   Ú
left_shiftr$   r   r   r   Úbitwise_left_shift•   ó   r6   c                C  r   )z|
    Array API compatible wrapper for :py:func:`np.invert <numpy.invert>`.

    See its docstring for more information.
    z<Only integer or boolean dtypes are allowed in bitwise_invert)r   r	   r   r   r   r   Úinvertr   r   r   r   r   Úbitwise_invert§   r   r9   c                C  r!   )z„
    Array API compatible wrapper for :py:func:`np.bitwise_or <numpy.bitwise_or>`.

    See its docstring for more information.
    z8Only integer or boolean dtypes are allowed in bitwise_or)
r   r	   r   r   r   r"   r   r   Ú
bitwise_orr   r$   r   r   r   r:   ²   r1   r:   c                C  r2   )z†
    Array API compatible wrapper for :py:func:`np.right_shift <numpy.right_shift>`.

    See its docstring for more information.
    z6Only integer dtypes are allowed in bitwise_right_shiftr   z7bitwise_right_shift(x1, x2) is only defined for x2 >= 0)r   r   r   r   r   r"   r   r3   r   r4   r   Úright_shiftr$   r   r   r   Úbitwise_right_shiftÄ   r7   r<   c                C  r!   )z†
    Array API compatible wrapper for :py:func:`np.bitwise_xor <numpy.bitwise_xor>`.

    See its docstring for more information.
    z9Only integer or boolean dtypes are allowed in bitwise_xor)
r   r	   r   r   r   r"   r   r   Úbitwise_xorr   r$   r   r   r   r=   Õ   r1   r=   c                C  ó2   | j tvr	tdƒ‚| j tv r| S t t | j¡¡S )zx
    Array API compatible wrapper for :py:func:`np.ceil <numpy.ceil>`.

    See its docstring for more information.
    z,Only real numeric dtypes are allowed in ceil)	r   r
   r   r   r   r   r   Úceilr   r   r   r   r   r?   æ   ó
   

r?   c                C  ó"   | j tvr	tdƒ‚t t | ¡¡S )zx
    Array API compatible wrapper for :py:func:`np.conj <numpy.conj>`.

    See its docstring for more information.
    z6Only complex floating-point dtypes are allowed in conj)r   r   r   r   r   r   Úconjr   r   r   r   rB   ô   ó   
rB   c                C  r   )zv
    Array API compatible wrapper for :py:func:`np.cos <numpy.cos>`.

    See its docstring for more information.
    z-Only floating-point dtypes are allowed in cos)r   r   r   r   r   r   Úcosr   r   r   r   r   rD   ÿ   r   rD   c                C  r   )zx
    Array API compatible wrapper for :py:func:`np.cosh <numpy.cosh>`.

    See its docstring for more information.
    z.Only floating-point dtypes are allowed in cosh)r   r   r   r   r   r   Úcoshr   r   r   r   r   rE   
  r   rE   c                C  r!   )z|
    Array API compatible wrapper for :py:func:`np.divide <numpy.divide>`.

    See its docstring for more information.
    z0Only floating-point dtypes are allowed in divide)
r   r   r   r   r   r"   r   r   Údivider   r$   r   r   r   rF     r%   rF   c                C  ó4   t | j|jƒ t | |¡\} }t t | j|j¡¡S )zz
    Array API compatible wrapper for :py:func:`np.equal <numpy.equal>`.

    See its docstring for more information.
    )r   r   r   r"   r   r   Úequalr   r$   r   r   r   rH   #  ó   rH   c                C  r   )zv
    Array API compatible wrapper for :py:func:`np.exp <numpy.exp>`.

    See its docstring for more information.
    z-Only floating-point dtypes are allowed in exp)r   r   r   r   r   r   Úexpr   r   r   r   r   rJ   /  r   rJ   c                C  r   )zz
    Array API compatible wrapper for :py:func:`np.expm1 <numpy.expm1>`.

    See its docstring for more information.
    z/Only floating-point dtypes are allowed in expm1)r   r   r   r   r   r   Úexpm1r   r   r   r   r   rK   :  r   rK   c                C  r>   )zz
    Array API compatible wrapper for :py:func:`np.floor <numpy.floor>`.

    See its docstring for more information.
    z-Only real numeric dtypes are allowed in floor)	r   r
   r   r   r   r   r   Úfloorr   r   r   r   r   rL   E  r@   rL   c                C  r!   )zˆ
    Array API compatible wrapper for :py:func:`np.floor_divide <numpy.floor_divide>`.

    See its docstring for more information.
    z4Only real numeric dtypes are allowed in floor_divide)
r   r
   r   r   r   r"   r   r   Úfloor_divider   r$   r   r   r   rM   S  r%   rM   c                C  r!   )z~
    Array API compatible wrapper for :py:func:`np.greater <numpy.greater>`.

    See its docstring for more information.
    z/Only real numeric dtypes are allowed in greater)
r   r
   r   r   r   r"   r   r   Úgreaterr   r$   r   r   r   rN   a  r%   rN   c                C  r!   )zŠ
    Array API compatible wrapper for :py:func:`np.greater_equal <numpy.greater_equal>`.

    See its docstring for more information.
    z5Only real numeric dtypes are allowed in greater_equal)
r   r
   r   r   r   r"   r   r   Úgreater_equalr   r$   r   r   r   rO   o  r%   rO   c                C  rA   )zx
    Array API compatible wrapper for :py:func:`np.imag <numpy.imag>`.

    See its docstring for more information.
    z6Only complex floating-point dtypes are allowed in imag)r   r   r   r   r   r   Úimagr   r   r   r   rP   }  rC   rP   c                C  r   )z€
    Array API compatible wrapper for :py:func:`np.isfinite <numpy.isfinite>`.

    See its docstring for more information.
    z+Only numeric dtypes are allowed in isfinite)r   r   r   r   r   r   Úisfiniter   r   r   r   r   rQ   ˆ  r   rQ   c                C  r   )zz
    Array API compatible wrapper for :py:func:`np.isinf <numpy.isinf>`.

    See its docstring for more information.
    z(Only numeric dtypes are allowed in isinf)r   r   r   r   r   r   Úisinfr   r   r   r   r   rR   “  r   rR   c                C  r   )zz
    Array API compatible wrapper for :py:func:`np.isnan <numpy.isnan>`.

    See its docstring for more information.
    z(Only numeric dtypes are allowed in isnan)r   r   r   r   r   r   Úisnanr   r   r   r   r   rS   ž  r   rS   c                C  r!   )zx
    Array API compatible wrapper for :py:func:`np.less <numpy.less>`.

    See its docstring for more information.
    z,Only real numeric dtypes are allowed in less)
r   r
   r   r   r   r"   r   r   Úlessr   r$   r   r   r   rT   ©  r%   rT   c                C  r!   )z„
    Array API compatible wrapper for :py:func:`np.less_equal <numpy.less_equal>`.

    See its docstring for more information.
    z2Only real numeric dtypes are allowed in less_equal)
r   r
   r   r   r   r"   r   r   Ú
less_equalr   r$   r   r   r   rU   ·  r%   rU   c                C  r   )zv
    Array API compatible wrapper for :py:func:`np.log <numpy.log>`.

    See its docstring for more information.
    z-Only floating-point dtypes are allowed in log)r   r   r   r   r   r   Úlogr   r   r   r   r   rV   Å  r   rV   c                C  r   )zz
    Array API compatible wrapper for :py:func:`np.log1p <numpy.log1p>`.

    See its docstring for more information.
    z/Only floating-point dtypes are allowed in log1p)r   r   r   r   r   r   Úlog1pr   r   r   r   r   rW   Ð  r   rW   c                C  r   )zx
    Array API compatible wrapper for :py:func:`np.log2 <numpy.log2>`.

    See its docstring for more information.
    z.Only floating-point dtypes are allowed in log2)r   r   r   r   r   r   Úlog2r   r   r   r   r   rX   Û  r   rX   c                C  r   )zz
    Array API compatible wrapper for :py:func:`np.log10 <numpy.log10>`.

    See its docstring for more information.
    z/Only floating-point dtypes are allowed in log10)r   r   r   r   r   r   Úlog10r   r   r   r   r   rY   æ  r   rY   c                 C  r!   )z‚
    Array API compatible wrapper for :py:func:`np.logaddexp <numpy.logaddexp>`.

    See its docstring for more information.
    z8Only real floating-point dtypes are allowed in logaddexp)
r   r   r   r   r   r"   r   r   Ú	logaddexpr   r$   r   r   r   rZ   ñ  r%   rZ   c                C  r!   )z†
    Array API compatible wrapper for :py:func:`np.logical_and <numpy.logical_and>`.

    See its docstring for more information.
    z.Only boolean dtypes are allowed in logical_and)
r   r   r   r   r   r"   r   r   Úlogical_andr   r$   r   r   r   r[   ÿ  r%   r[   c                C  r   )z†
    Array API compatible wrapper for :py:func:`np.logical_not <numpy.logical_not>`.

    See its docstring for more information.
    z.Only boolean dtypes are allowed in logical_not)r   r   r   r   r   r   Úlogical_notr   r   r   r   r   r\     r   r\   c                C  r!   )z„
    Array API compatible wrapper for :py:func:`np.logical_or <numpy.logical_or>`.

    See its docstring for more information.
    z-Only boolean dtypes are allowed in logical_or)
r   r   r   r   r   r"   r   r   Ú
logical_orr   r$   r   r   r   r]     r%   r]   c                C  r!   )z†
    Array API compatible wrapper for :py:func:`np.logical_xor <numpy.logical_xor>`.

    See its docstring for more information.
    z.Only boolean dtypes are allowed in logical_xor)
r   r   r   r   r   r"   r   r   Úlogical_xorr   r$   r   r   r   r^   &  r%   r^   c                C  r!   )z€
    Array API compatible wrapper for :py:func:`np.multiply <numpy.multiply>`.

    See its docstring for more information.
    z+Only numeric dtypes are allowed in multiply)
r   r   r   r   r   r"   r   r   Úmultiplyr   r$   r   r   r   r_   4  r%   r_   c                C  r   )z€
    Array API compatible wrapper for :py:func:`np.negative <numpy.negative>`.

    See its docstring for more information.
    z+Only numeric dtypes are allowed in negative)r   r   r   r   r   r   Únegativer   r   r   r   r   r`   B  r   r`   c                C  rG   )z‚
    Array API compatible wrapper for :py:func:`np.not_equal <numpy.not_equal>`.

    See its docstring for more information.
    )r   r   r   r"   r   r   Ú	not_equalr   r$   r   r   r   ra   M  rI   ra   c                C  r   )z€
    Array API compatible wrapper for :py:func:`np.positive <numpy.positive>`.

    See its docstring for more information.
    z+Only numeric dtypes are allowed in positive)r   r   r   r   r   r   Úpositiver   r   r   r   r   rb   Y  r   rb   c                C  r!   )zz
    Array API compatible wrapper for :py:func:`np.power <numpy.power>`.

    See its docstring for more information.
    z&Only numeric dtypes are allowed in pow)
r   r   r   r   r   r"   r   r   Úpowerr   r$   r   r   r   Úpowe  r%   rd   c                C  rA   )zx
    Array API compatible wrapper for :py:func:`np.real <numpy.real>`.

    See its docstring for more information.
    z6Only complex floating-point dtypes are allowed in real)r   r   r   r   r   r   Úrealr   r   r   r   re   s  rC   re   c                C  r!   )z‚
    Array API compatible wrapper for :py:func:`np.remainder <numpy.remainder>`.

    See its docstring for more information.
    z1Only real numeric dtypes are allowed in remainder)
r   r
   r   r   r   r"   r   r   Ú	remainderr   r$   r   r   r   rf   ~  r%   rf   c                C  r   )zz
    Array API compatible wrapper for :py:func:`np.round <numpy.round>`.

    See its docstring for more information.
    z(Only numeric dtypes are allowed in round)r   r   r   r   r   r   Úroundr   r   r   r   r   rg   Œ  r   rg   c                C  r   )zx
    Array API compatible wrapper for :py:func:`np.sign <numpy.sign>`.

    See its docstring for more information.
    z'Only numeric dtypes are allowed in sign)r   r   r   r   r   r   Úsignr   r   r   r   r   rh   —  r   rh   c                C  r   )zv
    Array API compatible wrapper for :py:func:`np.sin <numpy.sin>`.

    See its docstring for more information.
    z-Only floating-point dtypes are allowed in sin)r   r   r   r   r   r   Úsinr   r   r   r   r   ri   ¢  r   ri   c                C  r   )zx
    Array API compatible wrapper for :py:func:`np.sinh <numpy.sinh>`.

    See its docstring for more information.
    z.Only floating-point dtypes are allowed in sinh)r   r   r   r   r   r   Úsinhr   r   r   r   r   rj   ­  r   rj   c                C  r   )z|
    Array API compatible wrapper for :py:func:`np.square <numpy.square>`.

    See its docstring for more information.
    z)Only numeric dtypes are allowed in square)r   r   r   r   r   r   Úsquarer   r   r   r   r   rk   ¸  r   rk   c                C  r   )zx
    Array API compatible wrapper for :py:func:`np.sqrt <numpy.sqrt>`.

    See its docstring for more information.
    z.Only floating-point dtypes are allowed in sqrt)r   r   r   r   r   r   Úsqrtr   r   r   r   r   rl   Ã  r   rl   c                C  r!   )z€
    Array API compatible wrapper for :py:func:`np.subtract <numpy.subtract>`.

    See its docstring for more information.
    z+Only numeric dtypes are allowed in subtract)
r   r   r   r   r   r"   r   r   Úsubtractr   r$   r   r   r   rm   Î  r%   rm   c                C  r   )zv
    Array API compatible wrapper for :py:func:`np.tan <numpy.tan>`.

    See its docstring for more information.
    z-Only floating-point dtypes are allowed in tan)r   r   r   r   r   r   Útanr   r   r   r   r   rn   Ü  r   rn   c                C  r   )zx
    Array API compatible wrapper for :py:func:`np.tanh <numpy.tanh>`.

    See its docstring for more information.
    z.Only floating-point dtypes are allowed in tanh)r   r   r   r   r   r   Útanhr   r   r   r   r   ro   ç  r   ro   c                C  r>   )zz
    Array API compatible wrapper for :py:func:`np.trunc <numpy.trunc>`.

    See its docstring for more information.
    z-Only real numeric dtypes are allowed in trunc)	r   r
   r   r   r   r   r   Útruncr   r   r   r   r   rp   ò  r@   rp   )r   r   r   r   )r   r   r    r   r   r   )KÚ
__future__r   Ú_dtypesr   r   r   r   r   r	   r
   r   r   Ú_array_objectr   Únumpyr   r   r   r   r#   r'   r)   r+   r-   r/   r0   r6   r9   r:   r<   r=   r?   rB   rD   rE   rF   rH   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rd   re   rf   rg   rh   ri   rj   rk   rl   rm   rn   ro   rp   r   r   r   r   Ú<module>   s~    ,

























































