
    pik                     8   d dl Z d dlmZ d dlmZmZmZmZ d dlZd dl	Z	ddl
mZmZ eeeeef         Z G d de      Zeee	j"                  j$                  eee	j&                  f   Z e j*                  d      ded	ed
efd       Zdee   d
efdZ G d d      Zy)    N)Sequence)CallableOptionalProtocolUnion   )OpsValueVc                   "    e Zd Zedefd       Zy)ShapeVarreturnc                      y N )selfs    c/opt/services/ai/voice_agent/venv/lib/python3.12/site-packages/torch/_inductor/shape_propagation.pyshapezShapeVar.shape   s    '*    N)__name__
__module____qualname__propertyBlockShapeTyper   r   r   r   r   r      s    *~* *r   r   abr   c           	         t        | t              sJ t        |t              sJ t        |       t        |      kD  r*t        | g dgt        |       t        |      z
  z  |      S t        |       t        |      k  r.| |} }t        | g dgt        |       t        |      z
  z  |      S dt        t
        t        f   dt        t
        t        f   dt        t
        t        f   fdt        fdt        | |      D              S )Nr   d1d2r   c                 x    t        |       dk(  r|S t        |      dk(  r| S t        |       t        |      k(  sJ | S )N1)str)r   r   s     r   _get_broadcasted_dimz3get_broadcasted_shape.<locals>._get_broadcasted_dim%   s?     2w#~	RC	r7c"g%%%Ir   c              3   6   K   | ]  \  }} ||        y wr   r   ).0r   r   r"   s      r   	<genexpr>z(get_broadcasted_shape.<locals>.<genexpr>/   s     Jfb")"b1Js   )	
isinstancer   lenget_broadcasted_shaper   intr!   tuplezip)r   r   r"   s     @r   r(   r(      s    a"""a"""
1vA$Q(F1#Q#a&*A(FA(FGG	Q#a&!1$Q(F1#Q#a&*A(FA(FGG	c3h	%*38_	38_	 JAq	JJJr   argsc                 l   d }| D ]  }t        |d      r4|j                  }| y |t        |      }-t        |t        |            }Ct	        |t
        t        f      r|\d}_t	        |t        j                        rzddl	m
}m} t	        |||t        f      r y t        dt        |              |S )Nr   r   r   )LoopBodyLoopBodyBlockzUnknown type: )hasattrr   r*   r(   r&   r)   floattorchdtypetorch._inductor.loop_bodyr.   r/   r	   	TypeErrortype)r,   result_shapeargr   r.   r/   s         r   broadcast_shapes_for_argsr9   2   s    #'L :3 IIE}%$U|4\5<Pc5\*#!U[[)I#xBCnT#YK899):, r   c                   r   e Zd ZdZedej                  j                  dej                  de	fd       Z
ededededdfd	       Zedej                  d
ej                  dedeeeedf   f   dee	ee	df   f   f
d       Ze	 ddedededee   ddf
d       Ze	 	 d dedej                  d
eej                     dede	f
d       Zedej0                  dej                  de	fd       Zededede	fd       Ze	 	 d!dedeej0                  ef   dededdf
d       Zdedede	f   fdZedededdfd       Zy)"ShapePropagationOpsHandlerz-
    Propagate shape from args to output
    valuer3   r   c                     ddl m} t        t        j                  |      r-t        j                  j                         }t        dg|z        S y)Nr   )TritonKernelr   r   )torch._inductor.codegen.tritonr>   r&   r
   kerneltriton_tensor_ndimr*   )r<   r3   r>   ndims       r   constantz#ShapePropagationOpsHandler.constantS   s<     	@ahh-88..0D!t$$r   nameindexNc                      y r   r   )rD   rE   r<   s      r   store_reductionz*ShapePropagationOpsHandler.store_reduction^       r   	src_dtypereduction_type.c                     t         r   )NotImplementedError)r3   rI   rJ   r<   s       r   	reductionz$ShapePropagationOpsHandler.reductionb   s
     "!r   modec                      y r   r   )rD   rE   r<   rN   s       r   storez ShapePropagationOpsHandler.storek   s     r   use_compute_typesc                     | j                   S r   )r   )r<   r3   rI   rQ   s       r   to_dtypez#ShapePropagationOpsHandler.to_dtypeq   s     {{r   exprc                      y r   r   )rT   r3   s     r   
index_exprz%ShapePropagationOpsHandler.index_exprz   s     r   offsetc                      y)Nr   r   )rD   rW   s     r   	load_seedz$ShapePropagationOpsHandler.load_seed   s    r   varsizecheckwrap_negc                      y r   r   )rZ   r[   r\   r]   s       r   indirect_indexingz,ShapePropagationOpsHandler.indirect_indexing   s     r   c                     d S )Nc                      t        |       S r   )r9   )r,   kwargss     r   <lambda>z8ShapePropagationOpsHandler.__getattr__.<locals>.<lambda>   s    '@'F r   r   )r   rD   s     r   __getattr__z&ShapePropagationOpsHandler.__getattr__   s    FFr   condmsgc                      y r   r   )re   rf   s     r   device_assert_asyncz.ShapePropagationOpsHandler.device_assert_async   rH   r   r   )NT)TT)r   r   r   __doc__staticmethodr2   typesNumberr3   r   rC   r!   r)   ShapeArgrG   r   r*   rM   r   rP   r   boolrS   sympyExprrV   rY   r_   r   rd   rh   r   r   r   r;   r;   N   ss    ** 5;; >   c # h 4   "{{";;" " XuXs]334	"
 
~u^S%899	:" " FJ&.6>sm	 
  ,0"&	{{ EKK(  	
 
   EKK N    S ^    	EJJO$  	
 
 G Gn1D(E G (    r   r;   )	functoolscollections.abcr   typingr   r   r   r   ro   r2   virtualizedr	   r
   r)   r!   r   r   rk   rl   r3   rm   	lru_cacher(   r9   r;   r   r   r   <module>rv      s     $ 6 6   $ (5c?34+x +
 5;;--sHekkIJ TK^ K K> K K.HX$6 > 8C Cr   