
    Vpf                         d dl mZ d dlmZ d dlmZ d dlmZ d dlmZ d dlm	Z	 ee
cZ
Zd dlZe	j        Zd Zd	 Z	 dd
Zd Zd Zd Zd Zd Zd ZdS )    )partial)core)dispatch)dtypes)safe_zip)
xla_clientNc                 8    t          j        | j        d          S )NT)allow_extended_dtype)r   canonicalize_dtypedtype)x___s      R/var/www/html/nettyfy-visnx/env/lib/python3.11/site-packages/jax/_src/lax/utils.py_input_dtyper   !   s    		"17	F	F	FF    c                        fdS )Nc                  <     t           fdD                       S )Nc              3   2   K   | ]}|         j         V  d S N	weak_type).0iargss     r   	<genexpr>z6_argnum_weak_type.<locals>.<lambda>.<locals>.<genexpr>%   s*      CCaQ 1CCCCCCr   all)r   r   argnumss   ` r   <lambda>z#_argnum_weak_type.<locals>.<lambda>%   s%    CCCCC7CCCCC r    )r   s   `r   _argnum_weak_typer"   $   s    	C	C	C	CCr   c           	          |pt           }t          j        |          }|                    t	          t
          j        |                     |                    t	          t          || ||                     |S r   )	_standard_weak_type_ruler   	Primitivedef_implr   r   apply_primitivedef_abstract_evalstandard_abstract_eval)
shape_rule
dtype_rulenameweak_type_ruleprims        r   standard_primitiver/   '   ss    !=%=.			$--0$77888$dJ
    
+r   c                     | j         S r   )array_abstraction_level)as    r   _get_array_abstraction_levelr3   1   s
    A,E%Er   c                    t          d |D                       s
J |            | j        rJ  ||i |}t          t          |t                              }|t
          j        u r3 | j        d |D             i |}t          j        |j        ||          S |t
          j	        u r#t          j	         ||i | ||i ||          S |t
          j
        u rL ||i |}	t          d |	D                       rt
          j	        nt
          j
        }
 |
|	 ||i ||          S |t
          j        u rt          j         ||i ||          S t          ||          )Nc              3   J   K   | ]}t          |t          j                  V  d S r   
isinstancer   UnshapedArrayr   avals     r   r   z)standard_abstract_eval.<locals>.<genexpr>5   /      DDdZd011DDDDDDr   keyc                     g | ]	}|j         
S r!   valr   r   s     r   
<listcomp>z*standard_abstract_eval.<locals>.<listcomp>:   s    +++ae+++r   r   c              3   B   K   | ]}t          |          t          u V  d S r   )typeint)r   ds     r   r   z)standard_abstract_eval.<locals>.<genexpr>A   s,      !@!@Q$q''S.!@!@!@!@!@!@r   )r   multiple_resultsrD   maxr3   r   ConcreteArrayimplr   ShapedArrayDShapedArrayr8   	TypeError)r.   r*   r+   r-   avalskwargsr   least_specializedoutshapetys              r   r)   r)   3   s   	DDeDDD	D	DKKeKKK""""ne.v..)3u*FGGGHH$,,,
$)++U+++
6v
6
6Cci	BBBBD,,,JJ888&J888IO O O OD---J(((E!!@!@%!@!@!@@@ !$

  2eZZ1&119===D...jj%:6::iPPPP
E,
-
--r   c                 ,   | j         sJ t          d |D                       s
J |            t          t          t          |          t
                    } ||i |}|t          j        u r1 | j        d |D             i |}d t          ||          D             S |t          j
        u r+ ||i |}	 ||i |}
d t          |	|
|          D             S |t          j        u r" ||i |}
d t          |
|          D             S t          ||          )Nc              3   J   K   | ]}t          |t          j                  V  d S r   r6   r9   s     r   r   z6standard_multi_result_abstract_eval.<locals>.<genexpr>L   r;   r   r<   c                     g | ]	}|j         
S r!   r?   rA   s     r   rB   z7standard_multi_result_abstract_eval.<locals>.<listcomp>P   s    000Q15000r   c                 L    g | ]!\  }}t          j        |j        ||           "S r   )r   rI   r   )r   r@   r   s      r   rB   z7standard_multi_result_abstract_eval.<locals>.<listcomp>Q   s@     = = =Y sy#CCC = = =r   c                 D    g | ]\  }}}t          j        |||           S rX   )r   rK   )r   srF   r   s       r   rB   z7standard_multi_result_abstract_eval.<locals>.<listcomp>V   sF     L L L1i QY777 L L Lr   c                 @    g | ]\  }}t          j        ||           S rX   )r   r8   )r   r   r   s      r   rB   z7standard_multi_result_abstract_eval.<locals>.<listcomp>Z   sB     A A A y u	::: A A Ar   )rG   r   rH   maprD   r3   r   rI   rJ   ziprK   r8   rM   )r.   r*   r+   r-   rN   rO   rP   
weak_typesout_vals
out_shapes
out_dtypess              r   #standard_multi_result_abstract_evalrb   I   s   			DDeDDD	D	DKKeKKK#dE**0LMMM~u///*$,,,ty00%000;F;;H= ="%h
";";= = = =D,,,U-f--JU-f--JL L#&z:z#J#JL L L LD...U-f--JA A$'
J$?$?A A A A E,
-
--r   c                     d                     d | j                            d          D                       }t          t          |          fd}|S )N c              3   >   K   | ]}|                                 V  d S r   )
capitalize)r   terms     r   r   z%standard_translate.<locals>.<genexpr>`   s,      JJTt((JJJJJJr   r   c                     ~ ~~ |i |gS r   r!   )ctxavals_in	avals_outr   rO   ops        r   translation_rulez,standard_translate.<locals>.translation_ruleb   s"    XyB  r   )joinr,   splitgetattrxops)r.   
xla_opnamerm   rl   s      @r   standard_translaters   _   sa    wwJJTY__S5I5IJJJJJ*tZ  "! ! ! ! ! 
r   c                  4    t          d | D                       S )Nc              3   $   K   | ]}|j         V  d S r   r   r9   s     r   r   z+_standard_weak_type_rule.<locals>.<genexpr>h   s$      ..T^......r   r   )rN   rO   s     r   r$   r$   g   s    	.....	.	..r   c                     	 t          t          j        |           j                  S # t          $ r Y nw xY w	 | j        S # t
          $ r Y nw xY wt          |           S r   )strnpr   r,   rM   AttributeError)r   s    r   dtype_to_stringrz   j   sy    	rx#$$$	 	 	 	D		:	 	 	 	D		Us   %( 
55A   
AAr   )	functoolsr   jax._srcr   r   r   jax._src.utilr   jax._src.libr   r]   
unsafe_zipnumpyrx   opsrq   r   r"   r/   r3   r)   rb   rs   r$   rz   r!   r   r   <module>r      s/  &                         " " " " " " # # # # # #CZ    ~G G GD D D '+    F E E. . .,. . .,  / / /	 	 	 	 	r   