L i? ddlmZddlmZddlmZddlmZddlm Z m Z m Z m Z m Z mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%ddl&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2erddl3m4Z4ddd  d$d Z5d dd  d%d Z6ddd d&dZ7ddd'dZ8ddd(dZ9ddd)dZ:ddd*dZ;ddd+dZdd d-d!Z?dd d.d"Z@y#)/) annotations) TYPE_CHECKING) assert_never)local)ArgName ArrayCType ArrayRefCType BaseCTypeBaseTypeToCppMappingBindingboolT ConstRefCTypeCType dimnameListT intArrayRefTiTensorListRefT ListCTypelongT MutRefCType NamedCType OptionalCTypeoptionalIntArrayRefToptionalSymIntArrayRefTscalarTSpecialArgNamesymIntArrayRefTSymIntT tensorListTtensorOptionsTtensorT TupleCType VectorCTypevoidT) Argument ArgumentsBaseTyBaseTypeFunctionSchemaListTypeNativeFunction OptionalTypeReturn SelfArgumentTensorOptionsArgumentsType)SequenceF)faithful_name_for_out_overloadssymint_overloadct|jj}|r|dz }|jr|r|dz }|S|dz }|S)N_symint_outf_out)strname is_out_fn)funcr1r2r8s V/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/torchgen/api/cpp.pyr8r8LsP tyy~~ D  ~~ * GOD K FND KTmutablesymintct|tr|jtjtj fvryt |dk(r4|rt|ttSt|ttSt|tt|jSt|tr;t|j|||}|yt|t|j St|t"rTt |jdk(r;|j$Jt|t'tt(|j$Syt+dt-|)NSymIntbindsr>r?boolunrecognized type ) isinstancer'r8r&TensorScalarr7rr rrr r+valuetype_typeelemrtyper)sizerr AssertionErrorrepr)trCr>r?rJs r;rIrIas!X 66fmmV]]3 3 Vx !%7);<<!%5)9::%+?+G!HII A| $affE76R <%tyy!9:: Ax qvv;& 66% %%eZ %0@!&&%IJ J1$q';<St|tt@St#|j$dk(r"t|tCttSt#|j$dk(rt|ttDSt#|j$d k(r4t|ttGt'ttSt/|j$|||}t|tC|j0Std tI|) NrBz&base type should have been value type rGrHintrA)r>rCr?DimnameTensor?rE)%rIrFr'r8r&rGr!use_const_ref_for_mutable_tensorsrrr r rrHrrMr+r7rJrr)rrargumenttype_typerKr"rrrruse_ilistref_for_tensor_listsrrr rrrN)rOr>rCrPr?rrJs r;rVrVs    A  }!X 66V]] "uFFH!%Yw5G)HII!%y7I)JKK VVv}} $e]9W3E%FG G #I!!MN N A| $ qvv;( "uFFH!;y'9:"=y7I)JK[H $e]=7AS3T%UV V  )c!&&++.>%.GeY/C%DE E  )c!&&++.>(.J!%3J)KLL!%3G)HII fU%tyy!9:: Ax qvv;% *!%Yu5E)FGG!%<)@AA qvv;( "*%e[79K-LMM%e[59I-JKK%eY-GHH%eY|-DEE qvv;( "224!%y7Q)RSS!%;)?@@ [H $e]9W3E%FG G [I %eY|%<= = [I %}Y}Yw=O/P%QR !fU%tyy!9::1$q';<r?rC)rVrKis_write)arCr?s r; argument_typer]s QVVQZZe TTr<ct|d|d}| |jSt|tr|jt j k(rU|rDtjrtttStttSttS|jt jk(rttSt|trA|rJdt!|j"d}|j$ Jd|t'|St|t(r:t!|j"|}t+|j"dk(r t-|St/d |) N__placeholder__TrBzTNative functions should never return a mutable tensor list. They should return void.F)r>z'fixed size list returns not supported: rGzunrecognized return type )rIrKrFr'r8r&rGrrUrr r rrHrr)returntype_typerJrLr"r+r7rrM)rOr>r?rXrJs r;r`r`s0 q 174PA}vv !X 66V]] "::<(7);<<&y'9:: !)) VVv}} $W% % Ax  b {qvvu5vv~L!HLL~4  A| $qvvw7 qvv;( " & & 4QC8 99r<cFt|j|j|S)Nr=)r`rKr[)rXr?s r; return_typerb s 1661::f EEr<c t|dk(rttSt|dk(rt|d|St |Dcgc]}t||c}Scc}w)NrrY)lenr r#rbr!)rsr?rXs r; returns_typergsT 2w!| RA2a500"EQ;q8EFFEsA result) fallback_namecg}t|jjD]3\}|jjjjr|dk(sJdd}n|jj r.|jj j|j}njretfd|jjD}|r*|jj sjd}n7j}n*t|jjdk(r|n||}|j|6|S)Nrz.illegal inplace function with multiple returnsselfc3PK|]}j|jk(yw)N)r8).0r\rXs r; zreturn_names..*s# %&!&&  s#&_returnrd) enumerater:returnsr8inplacer9 argumentsoutanyschema_order_argumentsreappend)frirqir8 name_conflictrXs @r; return_namesr{sG!&&..)1 66;;   # #6 KK K6DVV   66##''*//D VV *+&&*G*G*I MQVV%5%5%7&&)vv %($71$<=]OTUSVBWDt56 Nr<falsetrue::std::nulloptzat::Reduction::Mean{}zc10::MemoryFormat::Contiguous at::kLong)FalseTrueNoneMeanz[]contiguous_formatlongc:|dk(rt|dk(ryt|tr|jtjurt |dk\r|ddk(rz|ddk(rrd}d }|d zt |krW||d k7r||d k(r|d z }n|||z }|d z }n!||d zdk(r|dz }n ||||dzz }|dz }|d zt |krWd |d St|t r|dk(ry t||j|St|trx|jdr|jdr d|d dzdzS|r.|jrt|jdk(rd|dS|jtd|dtj!||S)NrrTrr'rd\"z\"r~rY[]{}rAz c10::SymInt()z,Expected a list default '[...]' but found: ')r7rFr'r8r&rer+ default_exprrJr) startswithendswithisdigitrL ValueErrorJIT_TO_CPP_DEFAULTget)drOr?srys r;rrFsF{s1v*!X166VZZ#7 q6Q;1Q43;1R5C<AAa%#a&.Q44<ts{U QqT FAQx3SQq1q5\)FAa%#a&.qc8O!\" ;#Aqvvf55!X << C1R=3& &  AFF x(?!!A& & VV^KA3aPQ Q  ! !!Q ''r<cd d fd }t|tr|jdk(rrtj}n |j}d}|jvr.|j "t |j |j}tt|||j||gSt|trrK||j||jz||jz||jzSd}dvsJtd|jDrd}n|jj d k(rd }tt!dt#t$d||gSt|t&rrgS||j(St+|y) Nc&t|S)N)cpp_no_default_argsmethodfaithfulr?has_tensor_options)argument)r\rrrrr?s r; sub_argumentzargument..sub_argument|s$ 31   r< memory_formatrY)rCr?)nctyper8defaultroptionsc3:K|]}|jdk(yw)rN)r)rmxs r;rnzargument..s81199&8srrr)r\0Argument | TensorOptionsArguments | SelfArgumentreturn list[Binding])rFr$r8r possibly_redundant_memory_formatrrrKr r]r.dtypelayoutdevice pin_memoryallrr rr-rr) r\rrrr?rrrCrs ````` r;rrss  ;     !X 66_ $);"CCEFFE" 66, ,1F"199affVDG $QeFCVV     A- . QWW%qxx()qxx()q||,- G$77 77888F*%%i>1JK"#   A| $ I + +Qr<c |g}|r7|j|j|j|jn6|j|j|j|j|Dcgc]8}t|||||jdu|D]}|r|j n|:c}}Scc}}w)N)rr?rrr)extendnon_outrtrtensor_options no_default)rsrr?rrargsr\rXs r;rsrssDFD I%%& IMM" IMM" I%%&   (77tC 3    # ) )   s7=B8N)r:r(r1rDr2rDrr7) rOr/rCrr>rDr?rDrzNamedCType | None) rOr/r>rDrCrrPrDr?rDrr)r\r$rCrr?rDrr)rOr/r>rDr?rDrr)rXr,r?rDrr)rfzSequence[Return]r?rDrr)rxr*rir7rz Sequence[str])rr7rOr/r?rDrr7)r\rrset[str]rrDrrDr?rDrrDrr) rsr%rrDr?rDrrDrrrr)A __future__rtypingrtyping_extensionsrtorchgenrtorchgen.api.typesrrr r r r r rrrrrrrrrrrrrrrrrrr r!r"r#torchgen.modelr$r%r&r'r(r)r*r+r,r-r.r/collections.abcr0r8rIrVr]r`rbrgr{rrrrsr<r;rs" *>     (0-2!  &*   2 = = = =  =  =R). S= S=S=  S= "& S=  S=S=nBGU?D#:N.3F :?G=EB   ! 8 '(f E7E"E  E  E  EEEX      " r<