
    Vpf                     x    d Z ddlZddlmZ ddlZddlZddlmZ ddlmZ ddl	m
Z
  G d dej                  ZdS )	zBase JAX Sparse object.    N)Sequence)core)util)Arrayc                      e Zd ZU dZej        ed<   eedf         ed<   e	ed<   e	ed<   dZ
d Ze	d	efd
            Ze	d	efd            Zdeedf         dee         fdZd Zej        d             Zeej        d                         Zej        d d            Ze	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S )!	JAXSparsez-Base class for high-level JAX sparse objects.data.shapensedtypeNc                     | j         d         S Nr   )r
   selfs    ]/var/www/html/nettyfy-visnx/env/lib/python3.11/site-packages/jax/experimental/sparse/_base.py__len__zJAXSparse.__len__$   s    :a=    returnc                 4    t          j        | j                  S N)mathprodr
   r   s    r   sizezJAXSparse.size'   s    9TZ   r   c                 *    t          | j                  S r   )lenr
   r   s    r   ndimzJAXSparse.ndim+   s    tz??r   argsc                8    t          j        |          | _        d S r   )r   canonicalize_shaper
   )r   r   r
   s      r   __init__zJAXSparse.__init__/   s    (//DJJJr   c                    | j         j        }	 | j        }| j        }t	          | j                  }| d| | d|d}n#  | d}Y nxY wt          | j        t          j	                  rt          | j                  j         d| d}|S )N(z, nse=)z(<invalid>)[])	__class____name__r   r   listr
   
isinstancer	   r   Tracertype)r   namer   r   r
   repr_s         r   __repr__zJAXSparse.__repr__2   s    >"D0Hcje4:e ///u/////ee#"""eee $)T[)) 5di)44E444eLs	   "> Ac                     d S r    r   s    r   tree_flattenzJAXSparse.tree_flatten@       Cr   c                     d S r   r0   )clsaux_datachildrens      r   tree_unflattenzJAXSparse.tree_unflattenD   s	     Cr   c                     d S r   r0   )r   axess     r   	transposezJAXSparse.transposeI   r2   r   c                 *    |                                  S r   )r:   r   s    r   TzJAXSparse.TM   s    >>r   c                 h    |                                  d         D ]}|                                 | S r   )r1   block_until_ready)r   args     r   r>   zJAXSparse.block_until_readyQ   s<      ""1%  	Kr   c                 0    t          | j         d          )Nz.sumNotImplementedErrorr&   )r   r   kwargss      r   sumzJAXSparse.sumX   s    
555
6
66r   c                 0    t          | j         d          )Nz.__neg__rA   r   s    r   __neg__zJAXSparse.__neg__[       
999
:
::r   c                 0    t          | j         d          )Nz.__pos__rA   r   s    r   __pos__zJAXSparse.__pos__^   rG   r   c                 0    t          | j         d          )Nz.__matmul__rA   r   others     r   
__matmul__zJAXSparse.__matmul__a   s    
<<<
=
==r   c                 0    t          | j         d          )Nz.__rmatmul__rA   rK   s     r   __rmatmul__zJAXSparse.__rmatmul__d       
===
>
>>r   c                 0    t          | j         d          )Nz.__mul__rA   rK   s     r   __mul__zJAXSparse.__mul__g   rG   r   c                 0    t          | j         d          )Nz	.__rmul__rA   rK   s     r   __rmul__zJAXSparse.__rmul__j       
:::
;
;;r   c                 0    t          | j         d          )Nz.__add__rA   rK   s     r   __add__zJAXSparse.__add__m   rG   r   c                 0    t          | j         d          )Nz	.__radd__rA   rK   s     r   __radd__zJAXSparse.__radd__p   rU   r   c                 0    t          | j         d          )Nz.__sub__rA   rK   s     r   __sub__zJAXSparse.__sub__s   rG   r   c                 0    t          | j         d          )Nz	.__rsub__rA   rK   s     r   __rsub__zJAXSparse.__rsub__v   rU   r   c                 0    t          | j         d          )Nz.__getitem__rA   )r   items     r   __getitem__zJAXSparse.__getitem__y   rP   r   r   )%r'   
__module____qualname____doc__jaxr   __annotations__tupleintproperty__hash__r   r   r   r   r    r.   abcabstractmethodr1   classmethodr7   r:   r<   r>   rD   rF   rI   rM   rO   rR   rT   rW   rY   r[   r]   r`   r0   r   r   r   r      s9        55	///	sCx---	/// (   !C ! ! ! 8! C    805, 0 0 0 0 0         ;       8  7 7 7; ; ;; ; ;> > >? ? ?; ; ;< < <; ; ;< < <; ; ;< < <? ? ? ? ?r   r   )rc   rj   collections.abcr   r   rd   jax._srcr   r   jax._src.typingr   	StrictABCr   r0   r   r   <module>rq      s      



 $ $ $ $ $ $  



             ! ! ! ! ! !`? `? `? `? `? `? `? `? `? `?r   