
    uki                     &   U d dl mZ d dlmZ d dlZ G d de      Z G d de      Z	 G d d	e
      Z ej                  e        ej                  e	        ej                  e       ee	ehZee   ed
<    G d d      Z ej(                  e       y)    )Sequence)_jaxNc                   h     e Zd ZU ej                  ed<   dedej                  f fdZd Zd Z	 xZ
S )TypedIntdtypevaluec                 >    t         t        |   | |      }||_        |S N)superr   __new__r   clsr   r   v	__class__s       L/home/cdr/jupyterlab/.venv/lib/python3.12/site-packages/jax/_src/literals.pyr   zTypedInt.__new__   s"    h$S%0AAGH    c                 N    dt        |        d| j                  j                   dS )Nz	TypedInt(, dtype=))intr   nameselfs    r   __repr__zTypedInt.__repr__#   s$    s4yk$**//):!<<r   c                 0    t        |       | j                  fS r
   )r   r   r   s    r   __getnewargs__zTypedInt.__getnewargs__&   s    Itzz""r   )__name__
__module____qualname__npr   __annotations__r   r   r   r   __classcell__r   s   @r   r   r      s-    	/# bhh 
=#r   r   c                   n     e Zd ZU ej                  ed<   dedej                  f fdZd Zd Z	d Z
 xZS )
TypedFloatr   r   c                 >    t         t        |   | |      }||_        |S r
   )r   r%   r   r   r   s       r   r   zTypedFloat.__new__.   s"    j#&sE2AAGHr   c                 N    dt        |        d| j                  j                   dS )NzTypedFloat(r   r   )floatr   r   r   s    r   r   zTypedFloat.__repr__3   s$    tXdjjoo->a@@r   c                 *    t        t        |             S r
   )strr(   r   s    r   __str__zTypedFloat.__str__6   s    uT{r   c                 0    t        |       | j                  fS r
   )r(   r   r   s    r   r   zTypedFloat.__getnewargs__9   s    $K$$r   )r   r   r   r    r   r!   r(   r   r   r+   r   r"   r#   s   @r   r%   r%   *   s3    	/%  
A%r   r%   c                   h     e Zd ZU ej                  ed<   dedej                  f fdZd Zd Z	 xZ
S )TypedComplexr   r   c                 >    t         t        |   | |      }||_        |S r
   )r   r.   r   r   r   s       r   r   zTypedComplex.__new__A   s"    lC(e4AAGHr   c                 N    dt        |        d| j                  j                   dS )NzTypedComplex(r   r   )complexr   r   r   s    r   r   zTypedComplex.__repr__F   s$    74=/$**//1B!DDr   c                 0    t        |       | j                  fS r
   )r1   r   r   s    r   r   zTypedComplex.__getnewargs__I   s    DM4::&&r   )r   r   r   r    r   r!   r1   r   r   r   r"   r#   s   @r   r.   r.   =   s.    	/' "(( 
E'r   r.   typed_scalar_typesc                      e Zd ZU dZdZej                  ed<   eed<   dej                  defdZ	e
dej                  fd       Ze
deedf   fd	       Ze
dee   fd
       Ze
defd       Ze
defd       ZdefdZd Zd3dZd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d Z"d Z#d Z$d  Z%d! Z&d" Z'd# Z(d$ Z)d% Z*d& Z+d' Z,d( Z-d) Z.d* Z/d+ Z0d, Z1d- Z2e
d.        Z3e
d/        Z4d0 Z5d4d1Z6d5d2Z7y)6TypedNdArrayaj  A TypedNdArray is a host-side array used by JAX during tracing.

  To most intents and purposes a TypedNdArray is a thin wrapper around a numpy
  array and should act like it. The primary differences are that a TypedNdArray
  carries a JAX type:
  * its type is not canonicalized by JAX, irrespective of the jax_enable_x64
    mode
  * it can be weakly typed.
  val	weak_typer7   r8   c                      || _         || _        y r
   r6   )r   r7   r8   s      r   __init__zTypedNdArray.__init__e   s    DHDNr   returnc                 .    | j                   j                  S r
   )r7   r   r   s    r   r   zTypedNdArray.dtypei       88>>r   .c                 .    | j                   j                  S r
   )r7   shaper   s    r   r?   zTypedNdArray.shapem   r=   r   c                 .    | j                   j                  S r
   )r7   stridesr   s    r   rA   zTypedNdArray.stridesq   s    88r   c                 .    | j                   j                  S r
   )r7   ndimr   s    r   rC   zTypedNdArray.ndimu       88==r   c                 .    | j                   j                  S r
   )r7   sizer   s    r   rF   zTypedNdArray.sizey   rD   r   c                 6    | j                   j                         S r
   )r7   __len__r   s    r   rH   zTypedNdArray.__len__}       88r   c                    d}| j                   r%d| j                  j                  j                   d}n$d| j                  j                  j                   d}t	        j
                         d   }| j                  dk(  rd| j                  j                   }n$t	        j                  | j                  |dd	|
      }t        |      |j                  d      z
  dz   }d}|t        |      z   dz   |kD  rdt        |      z  }| | d| | S )NzTypedNdArray(zdtype=z, weak_type=True)r   	linewidthr   z
[], shape=,z, )prefixsuffix	separatormax_line_width
    )r8   r7   r   r   r    get_printoptionsrF   r?   array2stringlenrfind)r   rM   	dtype_str
line_widthslast_line_lenseps          r   r   zTypedNdArray.__repr__   s    F~~488>>..//@Ai488>>../q1i$$&{3JyyA~txx~~&
'a
//
((#a FQWWT]*Q.M
Cs9~%)J6#f+cXaS#yk**r   Nc                 F    t        j                  | j                  ||      S )N)r   copy)r    asarrayr7   )r   r   r^   s      r   	__array__zTypedNdArray.__array__   s     ::dhhe$77r   c                 8    | j                   j                  |      S r
   )r7   __add__r   others     r   rb   zTypedNdArray.__add__       88E""r   c                 8    | j                   j                  |      S r
   )r7   __sub__rc   s     r   rg   zTypedNdArray.__sub__   re   r   c                 8    | j                   j                  |      S r
   )r7   __mul__rc   s     r   ri   zTypedNdArray.__mul__   re   r   c                 8    | j                   j                  |      S r
   )r7   __floordiv__rc   s     r   rk   zTypedNdArray.__floordiv__       88  ''r   c                 8    | j                   j                  |      S r
   )r7   __truediv__rc   s     r   rn   zTypedNdArray.__truediv__       88&&r   c                 8    | j                   j                  |      S r
   )r7   __mod__rc   s     r   rq   zTypedNdArray.__mod__   re   r   c                 8    | j                   j                  |      S r
   )r7   __pow__rc   s     r   rs   zTypedNdArray.__pow__   re   r   c                 8    | j                   j                  |      S r
   )r7   __radd__rc   s     r   ru   zTypedNdArray.__radd__       88U##r   c                 8    | j                   j                  |      S r
   )r7   __rsub__rc   s     r   rx   zTypedNdArray.__rsub__   rv   r   c                 8    | j                   j                  |      S r
   )r7   __rmul__rc   s     r   rz   zTypedNdArray.__rmul__   rv   r   c                 8    | j                   j                  |      S r
   )r7   __rtruediv__rc   s     r   r|   zTypedNdArray.__rtruediv__   rl   r   c                 8    | j                   j                  |      S r
   )r7   __rfloordiv__rc   s     r   r~   zTypedNdArray.__rfloordiv__   s    88!!%((r   c                 8    | j                   j                  |      S r
   )r7   __rmod__rc   s     r   r   zTypedNdArray.__rmod__   rv   r   c                 8    | j                   j                  |      S r
   )r7   __rpow__rc   s     r   r   zTypedNdArray.__rpow__   rv   r   c                 8    | j                   j                  |      S r
   )r7   __getitem__)r   indexs     r   r   zTypedNdArray.__getitem__   ro   r   c                 6    | j                   j                         S r
   )r7   __bool__r   s    r   r   zTypedNdArray.__bool__   s    88r   c                 6    | j                   j                         S r
   )r7   __int__r   s    r   r   zTypedNdArray.__int__   rI   r   c                 6    | j                   j                         S r
   )r7   	__float__r   s    r   r   zTypedNdArray.__float__       88r   c                 6    | j                   j                         S r
   )r7   __complex__r   s    r   r   zTypedNdArray.__complex__   s    88!!r   c                 6    | j                   j                         S r
   )r7   	__index__r   s    r   r   zTypedNdArray.__index__   r   r   c                 8    | j                   j                  |      S r
   )r7   __lt__rc   s     r   r   zTypedNdArray.__lt__       88??5!!r   c                 8    | j                   j                  |      S r
   )r7   __le__rc   s     r   r   zTypedNdArray.__le__   r   r   c                 8    | j                   j                  |      S r
   )r7   __eq__rc   s     r   r   zTypedNdArray.__eq__   r   r   c                 8    | j                   j                  |      S r
   )r7   __ne__rc   s     r   r   zTypedNdArray.__ne__   r   r   c                 8    | j                   j                  |      S r
   )r7   __gt__rc   s     r   r   zTypedNdArray.__gt__   r   r   c                 8    | j                   j                  |      S r
   )r7   __ge__rc   s     r   r   zTypedNdArray.__ge__   r   r   c                 6    | j                   j                         S r
   )r7   __abs__r   s    r   r   zTypedNdArray.__abs__   rI   r   c                 :     | j                   j                  |i |S r
   )r7   reshape)r   argskws      r   r   zTypedNdArray.reshape   s    488T(R((r   c                 4     | j                   j                  | S r
   )r7   item)r   r   s     r   r   zTypedNdArray.item   s    488==$r   c                 .    | j                   j                  S r
   )r7   Tr   s    r   r   zTypedNdArray.T   s    88::r   c                 .    | j                   j                  S r
   )r7   mTr   s    r   r   zTypedNdArray.mT   s    88;;r   c                 :     | j                   j                  |i |S r
   )r7   clip)r   r   kwargss      r   r   zTypedNdArray.clip   s    488==$)&))r   c                 B    | j                   j                  |||||      S )N)ordercastingsubokr^   )r7   astype)r   r   r   r   r   r^   s         r   r   zTypedNdArray.astype  s'    88??UG5t   r   c                 :    | j                   j                  |      S )N)r   )r7   tobytes)r   r   s     r   r   zTypedNdArray.tobytes  s    88%((r   )NN)KunsafeTT)C)8r   r   r   __doc__	__slots__r    ndarrayr!   boolr:   propertyr   tupler   r?   r   rA   rC   rF   rH   r   r`   rb   rg   ri   rk   rn   rq   rs   ru   rx   rz   r|   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r   r   r5   r5   U   s    #)	zz//"**   RXX   U38_   x}   C   C  s +08###('##$$$()$$' " """""")     *
)r   r5   )typingr   jax._src.libr   numpyr    r   r   r(   r%   r1   r.   set_typed_int_typeset_typed_float_typeset_typed_complex_typer3   settyper!   r5   set_typed_ndarray_typer   r   r   <module>r      s      #s # % %&'7 '     !   * %   L ) "*:| D CI Dt) t)l   L )r   