§
    €ÛgÄ`  ã                  ó  — d dl mZ ddlmZmZmZmZmZmZ ddl	m
Z
 d dlZdCd	„ZdCd
„ZdCd„ZdDd„ZdCd„ZdCd„ZdCd„ZdDd„ZdCd„ZdDd„ZdDd„ZdCd„ZdDd„ZdDd„ZdDd„ZdCd„ZdCd„ZdCd„ZdDd„ZdDd„Z dCd„Z!dCd „Z"dCd!„Z#dDd"„Z$dDd#„Z%dDd$„Z&dCd%„Z'dCd&„Z(dCd'„Z)dDd(„Z*dDd)„Z+dCd*„Z,dCd+„Z-dCd,„Z.dCd-„Z/dDd.„Z0dDd/„Z1dCd0„Z2dDd1„Z3dDd2„Z4dDd3„Z5dCd4„Z6dDd5„Z7dCd6„Z8dDd7„Z9dDd8„Z:dCd9„Z;dCd:„Z<dCd;„Z=dCd<„Z>dCd=„Z?dCd>„Z@dDd?„ZAdCd@„ZBdCdA„ZCdCdB„ZDdS )Eé    )Úannotationsé   )Ú_boolean_dtypesÚ_floating_dtypesÚ_integer_dtypesÚ_integer_or_boolean_dtypesÚ_numeric_dtypesÚ_result_type)ÚArrayNÚxr   Úreturnc               ó’   — | j         t          vrt          d¦  «        ‚t          j        t          j        | 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   s    ú\/granary/edev/quantum/lib/python3.11/site-packages/numpy/array_api/_elementwise_functions.pyr   r      s<   € ð 	„w•oÐ%Ð%ÝÐ@ÑAÔAÐAÝŒ:•b”f˜QœXÑ&Ô&Ñ'Ô'Ð'ó    c               ó’   — | j         t          vrt          d¦  «        ‚t          j        t          j        | j        ¦  «        ¦  «        S )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   s    r   Úacosr      ó=   € ð 	„wÕ&Ð&Ð&ÝÐHÑIÔIÐIÝŒ:•b”i ¤Ñ)Ô)Ñ*Ô*Ð*r   c               ó’   — | j         t          vrt          d¦  «        ‚t          j        t          j        | j        ¦  «        ¦  «        S )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   s    r   Úacoshr   (   ó=   € ð 	„wÕ&Ð&Ð&ÝÐIÑJÔJÐJÝŒ:•b”j ¤Ñ*Ô*Ñ+Ô+Ð+r   Úx1Úx2c               ó  — | j         t          vs|j         t          vrt          d¦  «        ‚t          | j         |j         ¦  «         t	          j        | |¦  «        \  } }t	          j        t          j        | 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!   s     r   r$   r$   3   sv   € ð 
„x•Ð&Ð&¨"¬(½/Ð*IÐ*IÝÐ@ÑAÔAÐAå�”˜2œ8Ñ$Ô$Ð$ÝÔ& r¨2Ñ.Ô.�F€BˆÝŒ:•b”f˜RœY¨¬	Ñ2Ô2Ñ3Ô3Ð3r   c               ó’   — | j         t          vrt          d¦  «        ‚t          j        t          j        | j        ¦  «        ¦  «        S )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   s    r   Úasinr(   B   r   r   c               ó’   — | j         t          vrt          d¦  «        ‚t          j        t          j        | j        ¦  «        ¦  «        S )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   s    r   Úasinhr+   N   r   r   c               ó’   — | j         t          vrt          d¦  «        ‚t          j        t          j        | j        ¦  «        ¦  «        S )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   s    r   Úatanr.   Z   r   r   c               ó  — | j         t          vs|j         t          vrt          d¦  «        ‚t          | j         |j         ¦  «         t	          j        | |¦  «        \  } }t	          j        t          j        | j	        |j	        ¦  «        ¦  «        S )z~
    Array API compatible wrapper for :py:func:`np.arctan2 <numpy.arctan2>`.

    See its docstring for more information.
    z/Only floating-point dtypes are allowed in atan2)
r   r   r   r
   r   r#   r   r   Úarctan2r   r%   s     r   Úatan2r1   f   sx   € ð 
„xÕ'Ð'Ð'¨2¬8Õ;KÐ+KÐ+KÝÐIÑJÔJÐJå�”˜2œ8Ñ$Ô$Ð$ÝÔ& r¨2Ñ.Ô.�F€BˆÝŒ:•b”j ¤¨B¬IÑ6Ô6Ñ7Ô7Ð7r   c               ó’   — | j         t          vrt          d¦  «        ‚t          j        t          j        | j        ¦  «        ¦  «        S )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   s    r   Úatanhr4   u   r   r   c               ó  — | j         t          vs|j         t          vrt          d¦  «        ‚t          | j         |j         ¦  «         t	          j        | |¦  «        \  } }t	          j        t          j        | j	        |j	        ¦  «        ¦  «        S )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%   s     r   r6   r6   €   óy   € ð 	ŒÕ2Ð2Ð2ØŒ8Õ5Ð5Ð5åÐSÑTÔTÐTå�”˜2œ8Ñ$Ô$Ð$ÝÔ& r¨2Ñ.Ô.�F€BˆÝŒ:•b”n R¤Y°´	Ñ:Ô:Ñ;Ô;Ð;r   c               óv  — | j         t          vs|j         t          vrt          d¦  «        ‚t          | j         |j         ¦  «         t	          j        | |¦  «        \  } }t          j        |j        dk     ¦  «        rt          d¦  «        ‚t	          j
        t          j        | 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%   s     r   Úbitwise_left_shiftr<   ’   sž   € ð 
„x•Ð&Ð&¨"¬(½/Ð*IÐ*IÝÐOÑPÔPÐPå�”˜2œ8Ñ$Ô$Ð$ÝÔ& r¨2Ñ.Ô.�F€Bˆå	„vˆbŒi˜!ŠmÑÔð SÝÐQÑRÔRÐRÝŒ:•b”m B¤I¨r¬yÑ9Ô9Ñ:Ô:Ð:r   c               ó’   — | j         t          vrt          d¦  «        ‚t          j        t          j        | j        ¦  «        ¦  «        S )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   s    r   Úbitwise_invertr?   ¤   s=   € ð 	„wÕ0Ð0Ð0ÝÐVÑWÔWÐWÝŒ:•b”i ¤Ñ)Ô)Ñ*Ô*Ð*r   c               ó  — | j         t          vs|j         t          vrt          d¦  «        ‚t          | j         |j         ¦  «         t	          j        | |¦  «        \  } }t	          j        t          j        | j	        |j	        ¦  «        ¦  «        S )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%   s     r   rA   rA   ¯   sy   € ð 	ŒÕ2Ð2Ð2ØŒ8Õ5Ð5Ð5åÐRÑSÔSÐSå�”˜2œ8Ñ$Ô$Ð$ÝÔ& r¨2Ñ.Ô.�F€BˆÝŒ:•b”m B¤I¨r¬yÑ9Ô9Ñ:Ô:Ð:r   c               óv  — | j         t          vs|j         t          vrt          d¦  «        ‚t          | j         |j         ¦  «         t	          j        | |¦  «        \  } }t          j        |j        dk     ¦  «        rt          d¦  «        ‚t	          j
        t          j        | j        |j        ¦  «        ¦  «        S )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   r9   r   r:   r   Úright_shiftr%   s     r   Úbitwise_right_shiftrD   Á   sž   € ð 
„x•Ð&Ð&¨"¬(½/Ð*IÐ*IÝÐPÑQÔQÐQå�”˜2œ8Ñ$Ô$Ð$ÝÔ& r¨2Ñ.Ô.�F€Bˆå	„vˆbŒi˜!ŠmÑÔð TÝÐRÑSÔSÐSÝŒ:•b”n R¤Y°´	Ñ:Ô:Ñ;Ô;Ð;r   c               ó  — | j         t          vs|j         t          vrt          d¦  «        ‚t          | j         |j         ¦  «         t	          j        | |¦  «        \  } }t	          j        t          j        | j	        |j	        ¦  «        ¦  «        S )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%   s     r   rF   rF   Ò   r7   r   c               ó²   — | j         t          vrt          d¦  «        ‚| j         t          v r| S t	          j        t          j        | j        ¦  «        ¦  «        S )zx
    Array API compatible wrapper for :py:func:`np.ceil <numpy.ceil>`.

    See its docstring for more information.
    z'Only numeric dtypes are allowed in ceil)	r   r	   r   r   r   r   r   Úceilr   r   s    r   rH   rH   ã   sN   € ð 	„w•oÐ%Ð%ÝÐAÑBÔBÐBØ„w•/Ð!Ð!àˆÝŒ:•b”g˜aœhÑ'Ô'Ñ(Ô(Ð(r   c               ó’   — | j         t          vrt          d¦  «        ‚t          j        t          j        | j        ¦  «        ¦  «        S )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   s    r   rJ   rJ   ñ   ó=   € ð 	„wÕ&Ð&Ð&ÝÐGÑHÔHÐHÝŒ:•b”f˜QœXÑ&Ô&Ñ'Ô'Ð'r   c               ó’   — | j         t          vrt          d¦  «        ‚t          j        t          j        | j        ¦  «        ¦  «        S )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   s    r   rM   rM   ü   ó=   € ð 	„wÕ&Ð&Ð&ÝÐHÑIÔIÐIÝŒ:•b”g˜aœhÑ'Ô'Ñ(Ô(Ð(r   c               ó  — | j         t          vs|j         t          vrt          d¦  «        ‚t          | j         |j         ¦  «         t	          j        | |¦  «        \  } }t	          j        t          j        | j	        |j	        ¦  «        ¦  «        S )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%   s     r   rP   rP     sx   € ð 
„xÕ'Ð'Ð'¨2¬8Õ;KÐ+KÐ+KÝÐJÑKÔKÐKå�”˜2œ8Ñ$Ô$Ð$ÝÔ& r¨2Ñ.Ô.�F€BˆÝŒ:•b”i ¤	¨2¬9Ñ5Ô5Ñ6Ô6Ð6r   c               óÈ   — t          | j        |j        ¦  «         t          j        | |¦  «        \  } }t          j        t          j        | 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%   s     r   rR   rR     sN   € õ �”˜2œ8Ñ$Ô$Ð$ÝÔ& r¨2Ñ.Ô.�F€BˆÝŒ:•b”h˜rœy¨"¬)Ñ4Ô4Ñ5Ô5Ð5r   c               ó’   — | j         t          vrt          d¦  «        ‚t          j        t          j        | j        ¦  «        ¦  «        S )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   s    r   rT   rT   !  rK   r   c               ó’   — | j         t          vrt          d¦  «        ‚t          j        t          j        | j        ¦  «        ¦  «        S )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   s    r   rV   rV   ,  ó=   € ð 	„wÕ&Ð&Ð&ÝÐIÑJÔJÐJÝŒ:•b”h˜qœxÑ(Ô(Ñ)Ô)Ð)r   c               ó²   — | j         t          vrt          d¦  «        ‚| j         t          v r| S t	          j        t          j        | j        ¦  «        ¦  «        S )zz
    Array API compatible wrapper for :py:func:`np.floor <numpy.floor>`.

    See its docstring for more information.
    z(Only numeric dtypes are allowed in floor)	r   r	   r   r   r   r   r   Úfloorr   r   s    r   rY   rY   7  óN   € ð 	„w•oÐ%Ð%ÝÐBÑCÔCÐCØ„w•/Ð!Ð!àˆÝŒ:•b”h˜qœxÑ(Ô(Ñ)Ô)Ð)r   c               ó  — | j         t          vs|j         t          vrt          d¦  «        ‚t          | j         |j         ¦  «         t	          j        | |¦  «        \  } }t	          j        t          j        | j	        |j	        ¦  «        ¦  «        S )zˆ
    Array API compatible wrapper for :py:func:`np.floor_divide <numpy.floor_divide>`.

    See its docstring for more information.
    z/Only numeric dtypes are allowed in floor_divide)
r   r	   r   r
   r   r#   r   r   Úfloor_divider   r%   s     r   r\   r\   E  sv   € ð 
„x•Ð&Ð&¨"¬(½/Ð*IÐ*IÝÐIÑJÔJÐJå�”˜2œ8Ñ$Ô$Ð$ÝÔ& r¨2Ñ.Ô.�F€BˆÝŒ:•b”o b¤i°´Ñ;Ô;Ñ<Ô<Ð<r   c               ó  — | j         t          vs|j         t          vrt          d¦  «        ‚t          | j         |j         ¦  «         t	          j        | |¦  «        \  } }t	          j        t          j        | j	        |j	        ¦  «        ¦  «        S )z~
    Array API compatible wrapper for :py:func:`np.greater <numpy.greater>`.

    See its docstring for more information.
    z*Only numeric dtypes are allowed in greater)
r   r	   r   r
   r   r#   r   r   Úgreaterr   r%   s     r   r^   r^   S  sv   € ð 
„x•Ð&Ð&¨"¬(½/Ð*IÐ*IÝÐDÑEÔEÐEå�”˜2œ8Ñ$Ô$Ð$ÝÔ& r¨2Ñ.Ô.�F€BˆÝŒ:•b”j ¤¨B¬IÑ6Ô6Ñ7Ô7Ð7r   c               ó  — | j         t          vs|j         t          vrt          d¦  «        ‚t          | j         |j         ¦  «         t	          j        | |¦  «        \  } }t	          j        t          j        | j	        |j	        ¦  «        ¦  «        S )zŠ
    Array API compatible wrapper for :py:func:`np.greater_equal <numpy.greater_equal>`.

    See its docstring for more information.
    z0Only numeric dtypes are allowed in greater_equal)
r   r	   r   r
   r   r#   r   r   Úgreater_equalr   r%   s     r   r`   r`   a  sw   € ð 
„x•Ð&Ð&¨"¬(½/Ð*IÐ*IÝÐJÑKÔKÐKå�”˜2œ8Ñ$Ô$Ð$ÝÔ& r¨2Ñ.Ô.�F€BˆÝŒ:•bÔ& r¤y°"´)Ñ<Ô<Ñ=Ô=Ð=r   c               ó’   — | j         t          vrt          d¦  «        ‚t          j        t          j        | j        ¦  «        ¦  «        S )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   s    r   rb   rb   o  ó<   € ð 	„w•oÐ%Ð%ÝÐEÑFÔFÐFÝŒ:•b”k !¤(Ñ+Ô+Ñ,Ô,Ð,r   c               ó’   — | j         t          vrt          d¦  «        ‚t          j        t          j        | j        ¦  «        ¦  «        S )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   s    r   re   re   z  ó<   € ð 	„w•oÐ%Ð%ÝÐBÑCÔCÐCÝŒ:•b”h˜qœxÑ(Ô(Ñ)Ô)Ð)r   c               ó’   — | j         t          vrt          d¦  «        ‚t          j        t          j        | j        ¦  «        ¦  «        S )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   s    r   rh   rh   …  rf   r   c               ó  — | j         t          vs|j         t          vrt          d¦  «        ‚t          | j         |j         ¦  «         t	          j        | |¦  «        \  } }t	          j        t          j        | j	        |j	        ¦  «        ¦  «        S )zx
    Array API compatible wrapper for :py:func:`np.less <numpy.less>`.

    See its docstring for more information.
    z'Only numeric dtypes are allowed in less)
r   r	   r   r
   r   r#   r   r   Úlessr   r%   s     r   rj   rj   �  sv   € ð 
„x•Ð&Ð&¨"¬(½/Ð*IÐ*IÝÐAÑBÔBÐBå�”˜2œ8Ñ$Ô$Ð$ÝÔ& r¨2Ñ.Ô.�F€BˆÝŒ:•b”g˜bœi¨¬Ñ3Ô3Ñ4Ô4Ð4r   c               ó  — | j         t          vs|j         t          vrt          d¦  «        ‚t          | j         |j         ¦  «         t	          j        | |¦  «        \  } }t	          j        t          j        | j	        |j	        ¦  «        ¦  «        S )z„
    Array API compatible wrapper for :py:func:`np.less_equal <numpy.less_equal>`.

    See its docstring for more information.
    z-Only numeric dtypes are allowed in less_equal)
r   r	   r   r
   r   r#   r   r   Ú
less_equalr   r%   s     r   rl   rl   ž  óv   € ð 
„x•Ð&Ð&¨"¬(½/Ð*IÐ*IÝÐGÑHÔHÐHå�”˜2œ8Ñ$Ô$Ð$ÝÔ& r¨2Ñ.Ô.�F€BˆÝŒ:•b”m B¤I¨r¬yÑ9Ô9Ñ:Ô:Ð:r   c               ó’   — | j         t          vrt          d¦  «        ‚t          j        t          j        | j        ¦  «        ¦  «        S )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   s    r   ro   ro   ¬  rK   r   c               ó’   — | j         t          vrt          d¦  «        ‚t          j        t          j        | j        ¦  «        ¦  «        S )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   s    r   rq   rq   ·  rW   r   c               ó’   — | j         t          vrt          d¦  «        ‚t          j        t          j        | j        ¦  «        ¦  «        S )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   s    r   rs   rs   Â  rN   r   c               ó’   — | j         t          vrt          d¦  «        ‚t          j        t          j        | j        ¦  «        ¦  «        S )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   s    r   ru   ru   Í  rW   r   c                ó  — | j         t          vs|j         t          vrt          d¦  «        ‚t          | j         |j         ¦  «         t	          j        | |¦  «        \  } }t	          j        t          j        | j	        |j	        ¦  «        ¦  «        S )z‚
    Array API compatible wrapper for :py:func:`np.logaddexp <numpy.logaddexp>`.

    See its docstring for more information.
    z3Only floating-point dtypes are allowed in logaddexp)
r   r   r   r
   r   r#   r   r   Ú	logaddexpr   r%   s     r   rw   rw   Ø  sx   € ð 
„xÕ'Ð'Ð'¨2¬8Õ;KÐ+KÐ+KÝÐMÑNÔNÐNå�”˜2œ8Ñ$Ô$Ð$ÝÔ& r¨2Ñ.Ô.�F€BˆÝŒ:•b”l 2¤9¨b¬iÑ8Ô8Ñ9Ô9Ð9r   c               ó  — | j         t          vs|j         t          vrt          d¦  «        ‚t          | j         |j         ¦  «         t	          j        | |¦  «        \  } }t	          j        t          j        | j	        |j	        ¦  «        ¦  «        S )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%   s     r   ry   ry   æ  óv   € ð 
„x•Ð&Ð&¨"¬(½/Ð*IÐ*IÝÐHÑIÔIÐIå�”˜2œ8Ñ$Ô$Ð$ÝÔ& r¨2Ñ.Ô.�F€BˆÝŒ:•b”n R¤Y°´	Ñ:Ô:Ñ;Ô;Ð;r   c               ó’   — | j         t          vrt          d¦  «        ‚t          j        t          j        | j        ¦  «        ¦  «        S )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   s    r   r|   r|   ô  s<   € ð 	„w•oÐ%Ð%ÝÐHÑIÔIÐIÝŒ:•b”n Q¤XÑ.Ô.Ñ/Ô/Ð/r   c               ó  — | j         t          vs|j         t          vrt          d¦  «        ‚t          | j         |j         ¦  «         t	          j        | |¦  «        \  } }t	          j        t          j        | j	        |j	        ¦  «        ¦  «        S )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%   s     r   r~   r~   ÿ  rm   r   c               ó  — | j         t          vs|j         t          vrt          d¦  «        ‚t          | j         |j         ¦  «         t	          j        | |¦  «        \  } }t	          j        t          j        | j	        |j	        ¦  «        ¦  «        S )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%   s     r   r€   r€     rz   r   c               ó  — | j         t          vs|j         t          vrt          d¦  «        ‚t          | j         |j         ¦  «         t	          j        | |¦  «        \  } }t	          j        t          j        | j	        |j	        ¦  «        ¦  «        S )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%   s     r   r‚   r‚     óv   € ð 
„x•Ð&Ð&¨"¬(½/Ð*IÐ*IÝÐEÑFÔFÐFå�”˜2œ8Ñ$Ô$Ð$ÝÔ& r¨2Ñ.Ô.�F€BˆÝŒ:•b”k "¤)¨R¬YÑ7Ô7Ñ8Ô8Ð8r   c               ó’   — | j         t          vrt          d¦  «        ‚t          j        t          j        | j        ¦  «        ¦  «        S )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   s    r   r…   r…   )  rc   r   c               óÈ   — t          | j        |j        ¦  «         t          j        | |¦  «        \  } }t          j        t          j        | j        |j        ¦  «        ¦  «        S )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%   s     r   r‡   r‡   4  sN   € õ �”˜2œ8Ñ$Ô$Ð$ÝÔ& r¨2Ñ.Ô.�F€BˆÝŒ:•b”l 2¤9¨b¬iÑ8Ô8Ñ9Ô9Ð9r   c               ó’   — | j         t          vrt          d¦  «        ‚t          j        t          j        | j        ¦  «        ¦  «        S )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   s    r   r‰   r‰   @  rc   r   c               ó  — | j         t          vs|j         t          vrt          d¦  «        ‚t          | j         |j         ¦  «         t	          j        | |¦  «        \  } }t	          j        t          j        | j	        |j	        ¦  «        ¦  «        S )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%   s     r   ÚpowrŒ   L  sv   € ð 
„x•Ð&Ð&¨"¬(½/Ð*IÐ*IÝÐ@ÑAÔAÐAå�”˜2œ8Ñ$Ô$Ð$ÝÔ& r¨2Ñ.Ô.�F€BˆÝŒ:•b”h˜rœy¨"¬)Ñ4Ô4Ñ5Ô5Ð5r   c               ó  — | j         t          vs|j         t          vrt          d¦  «        ‚t          | j         |j         ¦  «         t	          j        | |¦  «        \  } }t	          j        t          j        | j	        |j	        ¦  «        ¦  «        S )z‚
    Array API compatible wrapper for :py:func:`np.remainder <numpy.remainder>`.

    See its docstring for more information.
    z,Only numeric dtypes are allowed in remainder)
r   r	   r   r
   r   r#   r   r   Ú	remainderr   r%   s     r   rŽ   rŽ   Z  sv   € ð 
„x•Ð&Ð&¨"¬(½/Ð*IÐ*IÝÐFÑGÔGÐGå�”˜2œ8Ñ$Ô$Ð$ÝÔ& r¨2Ñ.Ô.�F€BˆÝŒ:•b”l 2¤9¨b¬iÑ8Ô8Ñ9Ô9Ð9r   c               ó’   — | j         t          vrt          d¦  «        ‚t          j        t          j        | j        ¦  «        ¦  «        S )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   s    r   r�   r�   h  rf   r   c               ó’   — | j         t          vrt          d¦  «        ‚t          j        t          j        | j        ¦  «        ¦  «        S )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   s    r   r’   r’   s  s<   € ð 	„w•oÐ%Ð%ÝÐAÑBÔBÐBÝŒ:•b”g˜aœhÑ'Ô'Ñ(Ô(Ð(r   c               ó’   — | j         t          vrt          d¦  «        ‚t          j        t          j        | j        ¦  «        ¦  «        S )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   s    r   r”   r”   ~  rK   r   c               ó’   — | j         t          vrt          d¦  «        ‚t          j        t          j        | j        ¦  «        ¦  «        S )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   s    r   r–   r–   ‰  rN   r   c               ó’   — | j         t          vrt          d¦  «        ‚t          j        t          j        | j        ¦  «        ¦  «        S )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   s    r   r˜   r˜   ”  s<   € ð 	„w•oÐ%Ð%ÝÐCÑDÔDÐDÝŒ:•b”i ¤Ñ)Ô)Ñ*Ô*Ð*r   c               ó’   — | j         t          vrt          d¦  «        ‚t          j        t          j        | j        ¦  «        ¦  «        S )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   s    r   rš   rš   Ÿ  rN   r   c               ó  — | j         t          vs|j         t          vrt          d¦  «        ‚t          | j         |j         ¦  «         t	          j        | |¦  «        \  } }t	          j        t          j        | j	        |j	        ¦  «        ¦  «        S )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%   s     r   rœ   rœ   ª  rƒ   r   c               ó’   — | j         t          vrt          d¦  «        ‚t          j        t          j        | j        ¦  «        ¦  «        S )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   s    r   rž   rž   ¸  rK   r   c               ó’   — | j         t          vrt          d¦  «        ‚t          j        t          j        | j        ¦  «        ¦  «        S )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   s    r   r    r    Ã  rN   r   c               ó²   — | j         t          vrt          d¦  «        ‚| j         t          v r| S t	          j        t          j        | j        ¦  «        ¦  «        S )zz
    Array API compatible wrapper for :py:func:`np.trunc <numpy.trunc>`.

    See its docstring for more information.
    z(Only numeric dtypes are allowed in trunc)	r   r	   r   r   r   r   r   Útruncr   r   s    r   r¢   r¢   Î  rZ   r   )r   r   r   r   )r    r   r!   r   r   r   )EÚ
__future__r   Ú_dtypesr   r   r   r   r	   r
   Ú_array_objectr   Únumpyr   r   r   r   r$   r(   r+   r.   r1   r4   r6   r<   r?   rA   rD   rF   rH   rJ   rM   rP   rR   rT   rV   rY   r\   r^   r`   rb   re   rh   rj   rl   ro   rq   rs   ru   rw   ry   r|   r~   r€   r‚   r…   r‡   r‰   rŒ   rŽ   r�   r’   r”   r–   r˜   rš   rœ   rž   r    r¢   © r   r   ú<module>r¨      sñ  ðØ "Ð "Ð "Ð "Ð "Ð "ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð !Ð  Ð  Ð  Ð  Ð  à Ð Ð Ð ð(ð (ð (ð (ð+ð +ð +ð +ð,ð ,ð ,ð ,ð4ð 4ð 4ð 4ð+ð +ð +ð +ð,ð ,ð ,ð ,ð+ð +ð +ð +ð8ð 8ð 8ð 8ð,ð ,ð ,ð ,ð<ð <ð <ð <ð$;ð ;ð ;ð ;ð$+ð +ð +ð +ð;ð ;ð ;ð ;ð$<ð <ð <ð <ð"<ð <ð <ð <ð")ð )ð )ð )ð(ð (ð (ð (ð)ð )ð )ð )ð7ð 7ð 7ð 7ð	6ð 	6ð 	6ð 	6ð(ð (ð (ð (ð*ð *ð *ð *ð*ð *ð *ð *ð=ð =ð =ð =ð8ð 8ð 8ð 8ð>ð >ð >ð >ð-ð -ð -ð -ð*ð *ð *ð *ð*ð *ð *ð *ð5ð 5ð 5ð 5ð;ð ;ð ;ð ;ð(ð (ð (ð (ð*ð *ð *ð *ð)ð )ð )ð )ð*ð *ð *ð *ð:ð :ð :ð :ð<ð <ð <ð <ð0ð 0ð 0ð 0ð;ð ;ð ;ð ;ð<ð <ð <ð <ð9ð 9ð 9ð 9ð-ð -ð -ð -ð	:ð 	:ð 	:ð 	:ð-ð -ð -ð -ð6ð 6ð 6ð 6ð:ð :ð :ð :ð*ð *ð *ð *ð)ð )ð )ð )ð(ð (ð (ð (ð)ð )ð )ð )ð+ð +ð +ð +ð)ð )ð )ð )ð9ð 9ð 9ð 9ð(ð (ð (ð (ð)ð )ð )ð )ð*ð *ð *ð *ð *ð *r   