
    N j                     <   S SK r S SKJrJr  S SKJrJrJr  S SKrS SK	r	SSK
JrJr  \\\\\4         r " S S\5      r\\\	R"                  R$                  \\\	R&                  4   r\ R*                  " S5      S\S	\S
\4S j5       rS\\   S
\4S jr " S S5      rg)    N)CallableSequence)OptionalProtocolUnion   )OpsValueVc                   ,    \ rS rSr\S\4S j5       rSrg)ShapeVar   returnc                     g N )selfs    r/root/GenerationalWealth/GenerationalWealth/venv/lib/python3.13/site-packages/torch/_inductor/shape_propagation.pyshapeShapeVar.shape   s    '*    r   N)__name__
__module____qualname____firstlineno__propertyBlockShapeTyper   __static_attributes__r   r   r   r   r      s    *~* *r   r   abr   c           	      $  ^ [        U [        5      (       d   e[        U[        5      (       d   e[        U 5      [        U5      :  a*  [        U / S/[        U 5      [        U5      -
  -  QUQ75      $ [        U 5      [        U5      :  a,  Xp[        U / S/[        U 5      [        U5      -
  -  QUQ75      $ S[        [
        [        4   S[        [
        [        4   S[        [
        [        4   4S jm[        U4S j[        X5       5       5      $ )Nr   d1d2r   c                 ~    [        U 5      S:X  a  U$ [        U5      S:X  a  U $ [        U 5      [        U5      :X  d   eU $ )N1)str)r!   r"   s     r   _get_broadcasted_dim3get_broadcasted_shape.<locals>._get_broadcasted_dim%   s?     2w#~	RC	r7c"g%%%Ir   c              3   8   >#    U  H  u  pT" X5      v   M     g 7fr   r   ).0r!   r"   r&   s      r   	<genexpr>(get_broadcasted_shape.<locals>.<genexpr>/   s     J	fb)"11	s   )	
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A	JJJr   argsc                    S nU  H  n[        US5      (       a8  UR                  nUc    g Uc  [        U5      nM5  [        U[        U5      5      nML  [	        U[
        [        45      (       a	  Uc  SnMn  Mp  [	        U[        R                  5      (       a  M  SSK	J
nJn  [	        X%U[        45      (       a    g [        S[        U5       35      e   U$ )Nr   r   r   )LoopBodyLoopBodyBlockzUnknown type: )hasattrr   r0   r.   r,   r/   floattorchdtypetorch._inductor.loop_bodyr4   r5   r	   	TypeErrortype)r2   result_shapeargr   r4   r5   s         r   broadcast_shapes_for_argsr?   2   s    #'L3  IIE}%$U|4\5<Pc5\**#! $U[[))I#xBCCnT#YK899) , r   c                      \ rS rSrSr\S\R                  R                  S\R                  S\
4S j5       r\S\S\S\SS	4S
 j5       r\S\R                  S\R                  S\S\\\\S4   4   S\\
\\
S4   4   4
S j5       r\ S$S\S\S\S\\   SS	4
S jj5       r\  S%S\S\R                  S\\R                     S\S\
4
S jj5       r\S\R2                  S\R2                  S\
4S j5       r\S\R2                  S\R                  S\
4S j5       r\S\S\S\
4S j5       r\  S&S\S\\R2                  \4   S\S\SS	4
S jj5       rS\S\S\
4   4S jr\S \S!\SS	4S" j5       r S#r!g	)'ShapePropagationOpsHandlerN   z%
Propagate shape from args to output
valuer9   r   c                     SSK Jn  [        [        R                  U5      (       a-  [        R                  R                  5       n[        S/U-  5      $ g)Nr   TritonKernelr   r   )torch._inductor.codegen.tritonrF   r,   r
   kerneltriton_tensor_ndimr0   )rC   r9   rF   ndims       r   constant#ShapePropagationOpsHandler.constantS   s?     	@ahh--88..0D!t$$r   nameindexNc                     g r   r   )rM   rN   rC   s      r   store_reduction*ShapePropagationOpsHandler.store_reduction^       r   	src_dtypereduction_type.c                     [         er   )NotImplementedError)r9   rS   rT   rC   s       r   	reduction$ShapePropagationOpsHandler.reductionb   s
     "!r   modec                     g r   r   )rM   rN   rC   rY   s       r   store ShapePropagationOpsHandler.storek   s     r   use_compute_typesc                     U R                   $ r   )r   )rC   r9   rS   r]   s       r   to_dtype#ShapePropagationOpsHandler.to_dtypeq   s     {{r   r   r   c                 \    SSK Jn  [        [        R                  U5      (       d   S5       eg)Nr   rE   zdot supports Triton only)YBLOCKXBLOCK)rG   rF   r,   r
   rH   )r   r   rF   s      r   dotShapePropagationOpsHandler.dotz   s%    ?!((L11M3MM1#r   exprc                     g r   r   )rf   r9   s     r   
index_expr%ShapePropagationOpsHandler.index_expr   s     r   offsetc                     g)Nr   r   )rM   rj   s     r   	load_seed$ShapePropagationOpsHandler.load_seed   s    r   varsizecheckwrap_negc                     g r   r   )rn   ro   rp   rq   s       r   indirect_indexing,ShapePropagationOpsHandler.indirect_indexing   s     r   c                     S $ )Nc                      [        U 5      $ r   )r?   )r2   kwargss     r   <lambda>8ShapePropagationOpsHandler.__getattr__.<locals>.<lambda>   s
    '@'Fr   r   )r   rM   s     r   __getattr__&ShapePropagationOpsHandler.__getattr__   s    FFr   condmsgc                     g r   r   )r|   r}   s     r   device_assert_async.ShapePropagationOpsHandler.device_assert_async   rR   r   r   r   )NT)TT)"r   r   r   r   __doc__staticmethodr8   typesNumberr9   r   rK   r%   r/   ShapeArgrP   r   r0   rW   r   r[   r   boolr_   sympyExprrd   rh   rl   rs   r   rz   r   r   r   r   r   rA   rA   N   s    ** 5;; >   c # h 4   "{{";;" " XuXs]334	"
 
~u^S%899	:" " FJ&.6>sm	 
  ,0"&	{{ EKK(  	
 
  $uzz $ejj $^ $ $  EKK N    S ^    	EJJO$  	
 
 G Gn1D(E G (    r   rA   )	functoolscollections.abcr   r   typingr   r   r   r   r8   virtualizedr	   r
   r/   r%   r   r   r   r   r9   r   	lru_cacher.   r?   rA   r   r   r   <module>r      s     . , ,   $ (5c?34+x +
 5;;--sHekkIJ TK^ K K> K K.HX$6 > 8J Jr   