
    ¯wgK                       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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-y)    )annotations)NoReturnSequence)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optionsoutc                      e Zd Zy)
UnsatErrorN)__name__
__module____qualname__     [/home/mcse/projects/flask/flask-venv/lib/python3.12/site-packages/torchgen/api/translate.pyr'   r'   N   s    r,   r'   F)methodallow_expensive_conversionsc               f  	
 g }| D ]T  }t        |t              r1|j                  t        |j                  |j
                               D|j                  |       V g 	|D ]?  }t        |t              r	j                  |j
                         /	j                  |       A i |D ]  }|j                  |j                  <   |j                  }t        |t              rt        |j                  t              rt        |j                  j                  t              rt        |j                  j                  j                        dk(  r^d|j                   d|j                   dt        |j                  j                  j                  t        t        t                          <   |j                  t        t        t        t                          k(  rNd|j                   d|j                   d|j                   d	t        |j                  t        t                    <   |j                  t        t        t                     k(  r4d|j                   d
t        |j                  t        t"                    <   |j                  t        t        t        t                           k(  rAd|j                   d|j                   dt        |j                  t        t$                    <   |j                  t        t&              k(  r4d|j                   dt        |j                  t        t"                    <   |j                  t        t)        t        t        t                                k(  sd|j                   dt        |j                  t        t*                    <    |rJdt        dt-        t        t                          <   dt        dt        t        t                          <   dfdd	
fd
	D cg c]  }t         
|d      |       c}S c c}w )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)selfc           	         dj                  d j                         D              }t        d| j                          d| j                   d| d      )N
c              3  h   K   | ]*  \  }}d |j                          d|j                   d|  , yw)z   z; // N)cpp_typename).0tes      r-   	<genexpr>z+translate.<locals>.unsat.<locals>.<genexpr>   s6      
59QbaxuQC0
s   02z&
Failed to synthesize the expression "r9   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'   r:   r;   )goalctx_descctxs     r-   unsatztranslate.<locals>.unsat   se    99 
=@YY[
 
 &&*mmo%6a		{ C 

 	

 
	
r,   c          
        d&fd}| v r|    S t        | j                  t              r<	  t        | j                  t        | j                  j                              |      S t        | j                  t
              r3	  t        | j                  | j                  j                        |      S | j                  t        t        t                    k(  r+ t        | j                  t        t                    |      S |r |        | t        dt        t        t                          k(  rV |t        t        j                  t        t        t                                }t         v r|S 	  |t               }d| d| dS | 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        dt        t        t*                          k(  r	  |t               }| dS | t        d
t        t        t(                          k(  r	  |t               }| dS | t        d	t        t        t&                          k(  r	  |t               }| dS | j                  t        t              k(  r!	  |t        | j                  t.                    S | j                  t        t0              k(  r0	  |t        | j                  t        t                          }d| dS | j                  t        t4              k(  r) |t        | j                  t        t                          S | j                  t        t        t4                    k(  r: |t        | j                  t        t        t                                }| d| dS | j                  t        t              k(  r. |t        | j                  t        t4                          }| dS | j                  t        t        t                    k(  r: |t        | j                  t        t        t4                                }| d| dS | j                  t        t6              k(  r!	  |t        | j                  t8                    S | j                  t        t:              k(  r1 |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(  r0t        | j                  t        t                    } ||      }| d"S | j                  tE        t        t4                    k(  r0t        | j                  t        t0                    } ||      }| d"S | j                  t        tE        t        t                          k(  r3t        | j                  t        t6                    } ||      }| d| d#S | j                  t        t        tF                    k(  r3t        | j                  t        t<                    } ||      }| d| d$S | j                  t        t        tF                    k(  r3t        | j                  t        t@                    } ||      }| d| d$S | j                  t        t        tH                    k(  r:t        | j                  t        t        tH                          } ||      }d%| dS  |        y # t        $ r Y w xY w# t        $ r Y w xY w# t        $ r |cY S w xY w# t        $ r  |t,              }	|	 dcY S w xY w# t        $ r  |t,              }	|	 dcY S w xY w# t        $ r  |t,              }	|	 dcY S w xY w# t        $ r  |t,              }	Y yw xY w# t        $ r2  |t        | j                  t        t0                          }
d|
 dcY S w xY w# t        $ r#  |t        | j                  t2                    cY S w xY w# t        $ r4  |t        | j                  t        t:                          }| d | dcY S w xY w)'Nc                     | d      S )NTdirectr+   )rB   solves    r-   direct_solvez.translate.<locals>.solve.<locals>.direct_solve   s    d++r,   rH   memory_formatz:c10::impl::check_tensor_options_and_extract_memory_format(z, r4   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&>()rB   r   returnstr)%
isinstancer2   r
   r   r;   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"   )rB   rI   rK   rL   r$   rM   rN   rO   rP   
out_tensorsymIntArrayRef_typerargnamesymInt_typeintArrayRef_ctypesymIntArrayRef_ctypeoptionalIntArrayRef_ctypeoptionalScalarRef_ctypeoptionalTensorRef_ctypeconst_ref_tensor_ctyper/   rD   goal_ctypesrJ   rE   s                       r-   rJ   ztranslate.<locals>.solve   s   	, 3;t9 dii/ tyy+diinn*EFv  dii-Z		499>>B6RR 99i&677DIIy/FGPVWW$K :o}Y}=U/VWW("CC!)M":;M +$$%&}5ST[S\\^_l^mmnoo Z	9^+DEE 7M)K2H$IJE &<y7G)HIJ "8]9W3E%FGF "8]9W3E%FGF ,E7)F89VHTdeodppqrrZy7M)NOO5&}56wi}MM
 Z-	'8J*KLL0&}5!-00
 Z-	'8J*KLL0&}5!-00
 ZmIe<L.MNN(&}5!"677 YY)L11I#Jtyy-$HII YY)O44M DIIy7N!OP21#Q77 YY)G,,
499i6F GHHYY-	'(:;;"499mIe4D&EFG YOPWyXkllYY)E**&z$))Yw=O'PQK!]"@AAYY-	%(899"499mIg4F&GHG YB7)K|}}YY)$899}#Jtyy:O$PQQ YY)$;<< #499i0D&EFG Y\]d\eexyyYY)$677
4996J KLLYY)$677
4996J KLL 'yyK	%(899$.tyy)L:Q$R!&'89!&))yyK	'(:;;'1$))Y=W'X$&';<!&))mK	%8H,IJJ,6IIy)=>-) ''@A!"FwiOhiimIg,>??*4IIy);<+' ''>?!"FwiOabbmIg,>??*4IIy);<+' ''>?!"FwiOabb 99Ig$677%/		=7);<&" ##9:G)'!44ds    6  %$$%*  5)*:;
$^445  0)*:;
$Y//0  0)*:;
$Y//0  ( **:;
'	(  I&2tyy)O*DE'# 22E1FaHHI  M#Jtyy:J$KLLM(  }&tyy)4K*LM ""_`g_hh{||	}s   :`/ 1`? 4a :a  2b  )b   c  c .d $e /	`<;`<?	aaaa a=<a= bb b=<b= cc8dd)ee:ffFrH   )rB   r   rQ   r   )rB   r   rI   boolrQ   rR   )rS   r   appendr   r;   nctyper1   r2   r
   rT   r   r   rR   r   r"   r   r   r   r   r   r   r   r   )bindingsgoalsr.   r/   binding_exprsbgr=   rD   rh   rJ   rE   s      `    @@@@r-   	translaterq   c   sy    !#M 	$a!     #	$ %'K "a!qxx(q!	" "$C B3ffAFF@ FFq-(166=1166;;	2AFFKK$$%5 AFF8+AFF83CD 166;;++]9W;M-NO 66]=71C#DEE QVVH.qvvh6\]^]c]c\d  eA  B 1669-?#@A 66]9W#566=>qvvhFV;WC
1669X#67866]=71C#DEE AFF8B166(Jop 1669-?#@A 66Yx(( )2 1669X#67
 66]9]9W;M-N#OPP )2 1669-?#@AAB3J  ) 	v{9W+=>?	

 ) 	v}Yw-?@A	

.J JX 6AADq'+AAAs   P.N)
rl   zSequence[Expr | Binding]rm   zSequence[NamedCType | Binding]r.   ri   r/   ri   rQ   z
list[Expr]).
__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#   rV   rW   rX   rY   rZ   r[   r\   RuntimeErrorr'   rq   r+   r,   r-   <module>rv      s
   " %       | 9mIn4M&NOe]9W3E%FG Ie,-y12 %k)E2B&CD $Yw%78 $Yw%78 	 	2 (-NB&NB)NB 	NB
 "&NB NBr,   