
    YhaK                    0   d dl mZ d dlmZmZ d dlmZmZmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z# erd dl$m%Z%  ed e
 ee!                              Z& ed e
 ee"                              Z' e# ee                    Z( e# ee                     Z) e e# ee                              Z* e ee                    Z+ e ee"                    Z, G d de-          Z.d	d	d
ddZ/dS )    )annotations)NoReturnTYPE_CHECKING)ArrayRefCType	BaseCTypeBindingboolTConstRefCTypedeviceTExprintArrayRefTiOptTensorListRefTlayoutT	ListCTypelongTmemoryFormatTMutRefCType
NamedCTypeopmath_tOptionalCTypeoptionalIntArrayRefToptionalScalarRefToptionalSymIntArrayRefToptionalTensorRefTscalar_tscalarTscalarTypeTSpecialArgNamesymIntArrayRefTSymIntTtensorOptionsTtensorTVectorCType)Sequenceoptionsoutc                      e Zd ZdS )
UnsatErrorN)__name__
__module____qualname__     h/var/www/tools.fuzzalab.pt/emblema-extractor/venv/lib/python3.11/site-packages/torchgen/api/translate.pyr(   r(   R   s        Dr-   r(   F)methodallow_expensive_conversionsbindingsSequence[Expr | Binding]goalsSequence[NamedCType | Binding]r/   boolr0   return
list[Expr]c               N  	
 g }| D ][}t          |t                    r/|                    t          |j        |j                             F|                    |           \g 	|D ]G}t          |t                    r	                    |j                   2	                    |           Hi |D ]}|j        |j        <   |j        }t          |t                    rt          |j	        t                    rt          |j	        j	        t                    rtt          |j	        j	        j                  dk    rRd|j         d|j         dt          |j	        j	        j        t          t          t                                        <   |j        t          t          t          t                                        k    rCd|j         d|j         d|j         d	t          |j        t          t                              <   |j        t          t          t                               k    r3d|j         d
t          |j        t          t"                              <   |j        t          t          t          t                                         k    r;d|j         d|j         dt          |j        t          t$                              <   |j        t          t&                    k    r3d|j         dt          |j        t          t"                              <   |j        t          t)          t          t          t                                                  k    r3d|j         dt          |j        t          t*                              <   |rddt          dt-          t          t                                        <   dt          dt          t          t                                        <   dfdd	
fd

fd	D             S )N)exprtypez
at::Tensor(z.has_value() ? *z : at::Tensor())z((z.has_value() && (*z&).defined()) ? at::OptionalTensorRef(*z) : at::OptionalTensorRef())z).to<opmath_t>()z'.has_value() ? at::OptionalScalarRef(&(z%.value())) : at::OptionalScalarRef())zstatic_cast<opmath_t>()zat::IOptTensorListRef(zconst_cast<Tensor&>(*this)selfgoalr   r6   r   c           	         d                     d                                 D                       }t          d|                                  d| j         d| d          )N
c              3  `   K   | ])\  }}d |                                  d|j         d| V  *dS )z   z; // N)cpp_typename).0tes      r.   	<genexpr>z+translate.<locals>.unsat.<locals>.<genexpr>   sZ       
 
59Q00000Q00
 
 
 
 
 
r-   z&
Failed to synthesize the expression "rB   zI".
When I failed, the following bindings were available in the context:

z~

This probably means there is a missing rule in the rules of torchgen.api.translate.
Check this module for more information.
)joinitemsr(   rC   rD   )r>   ctx_descctxs     r.   unsatztranslate.<locals>.unsat   s    99 
 
=@YY[[
 
 
 
 
 &*mmoo 8<	  
	  

 

 
	
r-   directr5   strc          
        d*fd}| v r|          S t          | j        t                    rH	  t          | j        t          | j        j                            |          S # t          $ r Y nw xY wt          | j        t
                    r;	  t          | j        | j        j                  |          S # t          $ r Y nw xY w| j        t          t          t                              k    r2 t          | j        t          t                              |          S |r |            | t          dt          t          t                                        k    ry |t          t          j        t          t          t                                                  }t           v r|S 	  |t                     }d| d	| d
S # t          $ r |cY S w xY w| t          dt          t"                              k    r |t          dt          t          t$                                                  } |t          dt          t          t&                                                  } |t          dt          t          t(                                                  } |t          dt          t          t*                                                  }d| d| d| d| d
	S | t          dt          t          t$                                        k    r<	  |t                     }d| dS # t          $ r  |t,                    }	|	 dcY S w xY w| t          dt          t          t*                                        k    r;	  |t                     }| dS # t          $ r  |t,                    }	|	 dcY S w xY w| t          dt          t          t(                                        k    r;	  |t                     }| dS # t          $ r  |t,                    }	|	 dcY S w xY w| t          dt          t          t&                                        k    r7	  |t                     }| dS # t          $ r  |t,                    }	Y dS w xY w| j        t          t                    k    rj	  |t          | j        t.                              S # t          $ r9  |t          | j        t          t0                                        }
d|
 d
cY S w xY w| j        t          t0                    k    rj	  |t          | j        t          t                                        }d| d
S # t          $ r&  |t          | j        t2                              cY S w xY w| j        t          t4                    k    r0 |t          | j        t          t                                        S | j        t          t          t4                              k    rE |t          | j        t          t          t                                                  }| d| d S | j        t          t                    k    r5 |t          | j        t          t4                                        }| d!S | j        t          t          t                              k    rE |t          | j        t          t          t4                                                  }| d"| d#S | j        t          t6                    k    rl	  |t          | j        t8                              S # t          $ r;  |t          | j        t          t:                                        }| d$| d cY S w xY w| j        t          t:                    k    r8 |t          | j        t          t6                                        }| d%| d S | j        t          t<                    k    r# |t          | j        t>                              S | j        t          t@                    k    r# |t          | j        tB                              S r| j        tE          t          t                              k    r7t          | j        t          t                              } ||          }| d&S | j        tE          t          t4                              k    r7t          | j        t          t0                              } ||          }| d&S | j        t          tE          t          t                                        k    r:t          | j        t          t6                              } ||          }| d"| d'S | j        t          t          tF                              k    r:t          | j        t          t<                              } ||          }| d"| d(S | j        t          t          tF                              k    r:t          | j        t          t@                              } ||          }| d"| d(S | j        t          t          tH                              k    rEt          | j        t          t          tH                                        } ||          }d)| d
S  |            d S )+Nr>   r   r6   rO   c                     | d          S )NTrN   r,   )r>   solves    r.   direct_solvez.translate.<locals>.solve.<locals>.direct_solve   s    5d++++r-   rR   memory_formatz:c10::impl::check_tensor_options_and_extract_memory_format(z, r<   r%   dtype
pin_memorydevicelayoutzTensorOptions().dtype(z	).layout(z	).device(z).pinned_memory(zc10::optTypeMetaToScalarType(z.dtype_opt())z.scalar_type()z.layout_opt()z	.layout()z.device_opt()z	.device()z.pinned_memory_opt()z::std::nulloptzC10_AS_INTARRAYREF_SLOW(zc10::fromIntArrayRefSlow(z1.has_value() ? ::std::make_optional(c10::SymInt(*z)) : ::std::nulloptz.guard_int(__FILE__, __LINE__)z$.has_value() ? ::std::make_optional(z1->guard_int(__FILE__, __LINE__)) : ::std::nulloptz=.has_value() ? ::std::make_optional(C10_AS_INTARRAYREF_SLOW(*z>.has_value() ? ::std::make_optional(c10::fromIntArrayRefSlow(*z.vec()z->vec()) : ::std::nulloptz) : ::std::nulloptzconst_cast<Tensor&>()r>   r   r6   rO   )%
isinstancer:   r
   r   rD   r   elemr(   r   r   r   r   r   r   r    possibly_redundant_memory_formatoptions_ctyper!   r   r	   r   r   out_tensor_ctypelongVec_ctyper   longSymVec_ctyper    r   optionalLongVec_ctyper   r   optionalScalar_ctyper   optionalTensor_ctyper#   r   r"   )r>   rN   rT   rU   r%   rV   rW   rX   rY   
out_tensorsymIntArrayRef_typerargnamesymInt_typeintArrayRef_ctypesymIntArrayRef_ctypeoptionalIntArrayRef_ctypeoptionalScalarRef_ctypeoptionalTensorRef_ctypeconst_ref_tensor_ctyper0   rL   goal_ctypesrS   rM   s                       r.   rS   ztranslate.<locals>.solve   s   	, 	, 	, 	, 	, 	, 3;;t9 di// 		 uty+din*E*EFFv        di-- 	uZ	49>BB6RRRR    9i&6&677775DIy/F/FGGPVWWWW 	E$KKK :o}Y}=U=U/V/VWWWW(L"C!)M":":;;  M ++$$%&,}55oT[oo_loooo % % %$$$$%Z	9^+D+DEEEE L7M)K2H2H$I$IJJ E &<y7G7G)H)HII J "\8]9W3E3E%F%FGG F "\8]9W3E3E%F%FGG F sErrFrrVrreorrrrZy7M7M)N)NOOOO5&,}55MwMMMM 5 5 5)\*:;;
$4444445 Z-	'8J8J*K*KLLLL0&,}55!0000 0 0 0)\*:;;
$//////0 Z-	'8J8J*K*KLLLL0&,}55!0000 0 0 0)\*:;;
$//////0 ZmIe<L<L.M.MNNNN(&,}55!7777 ( ( ( *\*:;;
'''	( Y)L1111I#|Jty-$H$HIII I I I&2lty)O*D*DEE' '# I2EHHHHHHI Y)O4444M LDIy7N7N!O!OPP717777 M M M#|Jty:J$K$KLLLLLMY)G,,,,<
49i6F6F G GHHHY-	'(:(:;;;;"l49mIe4D4D&E&EFF G llPWllllY)E****&,z$)Yw=O=O'P'PQQK!AAAAY-	%(8(89999"l49mIg4F4F&G&GHH G }}7}}}}Y)$89999}#|Jty:O$P$PQQQ } } }&,ty)4K*L*LMM  "||`g||||||	}
 Y)$;<<<< #l49i0D&E&EFF G yy]dyyyyY)$67777<
496J K KLLLY)$67777<
496J K KLLL ' 	cyK	%(8(89999$.ty)L:Q:Q$R$R!&,'899!))))yK	'(:(:;;;;'1$)Y=W=W'X'X$&,';<<!))))mK	%8H8H,I,IJJJJ,6Iy)=>>- -) ','@AA!iiwiiiimIg,>,>????*4Iy);<<+ +' ','>??!bbwbbbbmIg,>,>????*4Iy);<<+ +' ','>??!bbwbbbb 9Ig$6$67777%/	=7););<<& &" #l#9::G4'4444ds   6A& &
A32A3)B; ;
CC5G GG)L? ?M! M!N- -OOP P=<P=4R	 	R'&R'"S+ +A T.-T.5V -V54V5"]6 6A^;:^;c                F    g | ]}t           |d           |          S )FrR   )r   )rE   grS   s     r.   
<listcomp>ztranslate.<locals>.<listcomp>  s2    AAADq'''++AAAr-   )r>   r   r6   r   )r>   r   rN   r5   r6   rO   )rZ   r   appendr   rD   nctyper9   r:   r
   r[   r   r   rO   r   r"   r   r   r   r   r   r   r   r   )r1   r3   r/   r0   binding_exprsbrq   rF   rL   ro   rS   rM   s      `    @@@@r.   	translaterw   g   sJ    !#M 	$ 	$a!! 	$          ####$&K " "a!! 	"qx((((q!!!! "$C B BfAF@ Fq-((	16=11	 16;	22	 AFK$%%55 EAFDDAFDDD 
16;+]9W;M;M-N-NOOP 6]=71C1C#D#DEEEE BQV  B  Bqv  B  B]^]c  B  B  B 
169-?#@#@AAB 6]9W#5#56666;Wqv;W;W;WC
169X#6#67786]=71C1C#D#DEEEEpAFpp16ppp 
169-?#@#@AAB 6Yx((((2222 
169X#6#6778
 6]9]9W;M;M-N-N#O#OPPPP2222 
169-?#@#@AAB
  
( 	Jv{9W+=+=>>??@ ) 	Jv}Yw-?-?@@AAB
 
 
 
 
 
.J J J J J J J J J JX BAAA[AAAAr-   N)
r1   r2   r3   r4   r/   r5   r0   r5   r6   r7   )0
__future__r   typingr   r   torchgen.api.typesr   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    r!   r"   r#   collections.abcr$   r]   r^   r_   r`   ra   rb   rc   RuntimeErrorr(   rw   r,   r-   r.   <module>r}      s   " " " " " " * * * * * * * *                                                               D  )((((((> 
9mmIIn4M4M&N&NOO:e]]99W3E3E%F%FGG IIe,,--;yy1122 %kk))E2B2B&C&CDD $}YYw%7%788 $}YYw%7%788 	 	 	 	 	 	 	 	2 (-NB NB NB NB NB NB NB NBr-   