
    `ix                        d dl Z d dlmZ d dlmZ d dlZddlmZ ddlm	Z	m
Z
 ej        j                                        rT	 	 	 dd	ee
         d
edeee                  dedee
         f
dZd	ee
         dee
         fdZd	ee
         dee
         fdZdS 	 	 	 dd	ee
         d
edeee                  dedee
         f
dZdS )    N)Sequence)Optional   )MACOS_VERSION)DecorateInfoOpInfompsFopsdevice_typexfail_exclusionsparsereturnc                    |g }h d}dt           j        gi}i dd dd dd dd dd dd d	d d
d dd dd dd dd dd dd dd dd dd i dd dd dd dd dd dd dd dd dd dd dd dd d d d!d d"t           j        gd#t           j        gd$t           j        gi d%d d&d d'd d(d d)d d*d d+d d,d d-d d.d d/d d0d d1d d2t           j        gd3d d4d d5d i d6d d7d d8d d9d d:d d;d d<d d=t          d>k     rt           j        t           j        gnt           j        gd?t          d>k     rt           j        t           j        gnt           j        gd@d dAd dBd dCd dDd dEd dFd dGd i dHd dId dJd dKd dLd dMd dNd dOd dPd dQd dRd dSd dTd dUd dVd dWd dXd i dYt           j        gdZt           j        gd[d d\d d]d d^d d_d d`d dad dbd dcd ddd ded dfd dgd dhd did t           j        gt           j        gt           j        gt           j        gt           j        t           j        gt           j        t           j        t           j        gt           j        t           j        gt           j	        t           j        t           j        t           j        t           j
        gt           j	        t           j        t           j        t           j        t           j
        gt           j	        t           j        t           j        t           j        t           j
        gt           j	        t           j        t           j        t           j        t           j
        gt           j	        t           j        t           j        t           j        t           j
        gdj}d d d d d dk}t          d>k     r|                    d d dl           |r|                    |           i dmt           j	        t           j        t           j        t           j        t           j
        gdnt           j        t           j        t           j        gdot           j        t           j        t           j        gdpt           j        t           j        t           j        gdqd drd dsd dtd dut           j        t           j        t           j        gdvt           j        t           j        t           j        gdwt           j        t           j        t           j        gdxt           j        t           j        t           j        gdyt           j        t           j        t           j        gdzt           j        t           j        t           j        gd{t           j        t           j        t           j        gd|t           j        t           j        t           j        gd}t           j        t           j        t           j        gt           j        t           j        t           j        gt           j        t           j        t           j        gt           j
        t           j	        t           j        t           j        gt           j        t           j        t           j        gt           j        t           j        t           j        gt           j        t           j	        t           j        t           j        t           j        t           j
        gd t           j        t           j        t           j        gd~}d t           j        gt           j        t           j        t           j        gt           j        t           j
        t           j        t           j        t           j        gt           j
        t           j        t           j        t           j        t           j        gd}	d d d d d d d}
d t           j        t           j        gd}dt          dt          dd ffd}| D ]}|j        |j        z   } ||t          t"          j        t           j        t           j        g                     |r8 ||t          t#          j        d          t           j        g                     ||
v r3 ||t          t#          j        d          |
|                              ||v r3 ||t          t#          j        d          ||                              |||	fD ]5}||v r/||vr+ ||t          t"          j        ||                              6||v r:||vr6t          dk     r+ ||t          t"          j        ||                              ||vr; ||t          t"          j        t           j        t           j        g                     | S )N>  fft.fftfft.fft2fft.fftnfft.hfftfft.ifft	fft.hfftn	fft.ifft2	fft.ifftn	fft.irfft
fft.irfft2
fft.irfftn
linalg.svd
masked.std
masked.sum
masked.varlinalg.pinvmasked.meanmasked.prodfft.fftshiftspecial.entrfft.ifftshiftlinalg.diagonalspecial.xlog1pylinalg.multi_dotmasked.logsumexpnn.functional.unfoldnn.functional.rms_normnn.functional.softsignnn.functional.padreflectnn.functional.tanhshrinknn.functional.padcircularnn.functional.padconstantnn.functional.padreplicatenn.functional.pixel_shufflespecial.spherical_bessel_j0nn.functional.pixel_unshuffle0nn.functional.feature_alpha_dropoutwithout_trainHTteqmHmTmmmvneabsaddallanybmmcatcoscovdivdotexpeyeintlogmulnegsgnsinsubsumsvdtanacosasinatanboolbytecharconjcoshdiagdiffexp2fillflipfullhalfimagitemkronlerplog2longmeanonesprodrealrollrsubsincsinhsqrtstfttanhtriltriuviewacoshaddmvangleasinhatanhchalfchunkcloneemptyequalexpm1floatinnerisinfisnanldexplog10log1pouterrandnravelrot90rsqrtshortslicesplitstacktracetrapzwherezero_zeroscfloatdsplitdstackeinsumexpandfliplrflipudhsplithstackisrealmatmulnarrowselectsquaret_copyunbindunfoldvsplitvstackaddcdivaddcmulflattenisclosemovedimnonzeropermutereshapesigmoidsqueezeview_as__radd____rdiv____rmul____rsub__allcloseargwherebfloat16corrcoefdiagflatdiagonalgradientisfinitelinspacenew_fullnew_onespinversepositive	expand_as	full_like	index_add	index_put	logsumexp	new_zeros	ones_like	tensordot	transpose	trapezoid	unflatten	unsqueeze	view_copy
_chunk_cat
alias_copy
as_strided
atleast_1d
atleast_2d
atleast_3d
contiguous
diag_embed
index_copy
logical_or
reciprocal
reshape_as
zeros_like__getitem____rmatmul__expand_copylogical_andlogical_notlogical_xormasked_fillnarrow_copyresolve_negsum_to_sizetrue_divideunbind_copyunfold_copybroadcast_tocolumn_stackcombinationsindex_selectpermute_copyresolve_conjsqueeze_copytensor_splitunsafe_chunkunsafe_splitview_as_realconj_physicalcount_nonzerodiagonal_copyempty_stridedmasked_selectscalar_tensorcartesian_prodempty_permutedmasked_scattersplitlist_argstranspose_copyunsqueeze_copyaddmmdecomposedas_strided_copyconstant_pad_ndsqueezemultiplediagonal_scattersplit_with_sizesbroadcast_tensorsrepeat_interleaveas_strided_scatterdivno_rounding_mode_unsafe_masked_indexsplit_with_sizes_copylinspacetensor_overloadmeshgridlist_of_tensorsmeshgridvariadic_tensors#_unsafe_masked_index_put_accumulate	fft.hfft2special.zetann.functional.conv1dnn.functional.conv2dnn.functional.conv_transpose1dnn.functional.conv_transpose2dnn.functional.conv_transpose3dr  logspacelogspacetensor_overload
linalg.eiglinalg.eigvalsputcauchy_cauchycholesky_inversecholesky_solvefrexpgcdgeqrfznn.functional.grid_samplehash_tensor	heavisideindex_reduceprodindex_reducemeanindex_reduceamaxindex_reduceaminlcmzlinalg.condzlinalg.eighzlinalg.eigvalshzlinalg.householder_productzlinalg.ldl_factorzlinalg.ldl_factor_exzlinalg.ldl_solvezlinalg.lstsqzlinalg.lstsqgrad_orientedz	linalg.luzlinalg.lu_solvezlinalg.matrix_normzlinalg.normzlinalg.normsubgradients_at_zeroz	linalg.qrzlinalg.svdvalszlinalg.vecdotlu_solvezmasked.median
matrix_expmodenormnucz#nn.functional.fractional_max_pool2dz#nn.functional.fractional_max_pool3dz!nn.functional.adaptive_avg_pool3dz!nn.functional.adaptive_max_pool3dznn.functional.interpolateareaz nn.functional.interpolatebicubicznn.functional.ctc_lossznn.functional.embedding_bagznn.functional.multi_margin_lossz$nn.functional.multilabel_margin_lossznn.functional.pdistznn.functional.rreluznn.functional.normormqrpca_lowrankqrscatter_reduceamaxg      .@scatter_reduceaminsegment_reducez_segment.reducezsegment.reducesegment_reduce_offsets_segment_reduce_offsets_segment_reduce_lengths_segment_reducelengths_segment_reduceoffsetsz	sparse.mmzsparse.sampled_addmmsparse.mmreducezspecial.airy_aizspecial.erfcxzspecial.laguerre_polynomial_lzspecial.legendre_polynomial_pzspecial.log_ndtrzspecial.ndtrisvd_lowranksymeigtaketo	to_sparseuniquevdotsegment_reduce__upsample_bilinear2d_aa_upsample_bicubic2d_aa	geometric
geometric_log_normal_
log_normalcdoubledoubleznn.functional.softminwith_dtypelog_softmaxwith_dtypesoftmaxwith_dtypefloat_powerzlinalg.matrix_rankhermitianzlinalg.pinvhermitiannonzero_staticz!nn.functional.adaptive_avg_pool1dz!nn.functional.adaptive_avg_pool2d)r  r  nn.functional.conv3dr  r  r  histcznn.functional.linearaddbmmbaddbmmmatbincount)r  r  r  r  r  )quantilenanquantiletopkmultinomialuniform	rand_likerandintrandint_liker   
randn_like	bernoulliexponentialz-nn.functional.feature_alpha_dropoutwith_trainnormalnormalin_placenormalnumber_meanznn.functional.alpha_dropoutznn.functional.dropoutznn.functional.dropout2d)znn.functional.dropout3dz*nn.functional.multi_head_attention_forward__rpow__resize_
resize_as_addras_stridedpartial_viewsz*nn.functional.scaled_dot_product_attention)linalg.matrix_rankarangegrid_sampler_2dargsortsort)	new_emptynew_empty_stridedr   r   
empty_liker   )rR  grid_sampler_3dopdr   c                 :    |_         | j        |fz   | _        d S N)r   
decorators)rt  ru  r   s     v/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/torch/testing/_internal/common_mps.pyaddDecoratorz&mps_ops_modifier.<locals>.addDecoratorZ  s$    & +MQD0BMMM    dtypesz4Skipped due to MPS not supporting complex128 tensorszSkipping empty ops.zSkipped!g,@)torch	complex64float32uint8r   int32int64r   float16int16int8updaterW   r   r   namevariant_test_nameunittestexpectedFailurerM  rL  skip
complex128	complex32)r
   r   r   r   SUPPORTED_COMPLEX_OPSMACOS_BEFORE_14_4_XFAILLISTUNIMPLEMENTED_XFAILLISTUNIMPLEMENTED_XFAILLIST_SPARSEUNDEFINED_XFAILLISTON_MPS_XFAILLISTEMPTY_OPS_SKIPLISTSKIPLISTrz  rt  key	xfaillists    `              ry  mps_ops_modifierr     s    " OL!
 L!
 L!
` %/*'
#N>
N>
 &tN>
 $	N>

 dN>
 4N>
 tN>
 dN>
 N>
 dN>
 TN>
 4N>
 TN>
 (N>
 4N>
  !N>
" #N>
$ %N>
 N>
& 'N>
( )N>
, 4-N>
. 4/N>
0 41N>
2 t3N>
4 )$5N>
6  7N>
8 #D9N>
: ;N>
< D=N>
> (?N>
@ AN>
B tCN>
D !5=/EN>
F EM?GN>
H .IN>
 N>
 N>
J KN>
L dMN>
N TON>
P QN>
R TSN>
T $UN>
V DWN>
X tYN>
Z 24[N>
\ 24]N>
^ 0_N>
` 0aN>
b ,TcN>
d /eN>
f %dgN>
h *4iN>
j .tkN>
 N>
 N>
l 3DmN>
n "4oN>
p "4qN>
r !$sN>
t TuN>
v 4wN>
x $yN>
z !t## $);"<"<+N>
@ !t## $);"<"<+EN>
F dGN>
H tIN>
J dKN>
L %dMN>
N &tON>
P &tQN>
R %dSN>
T %dUN>
 N>
 N>
V WN>
X #DYN>
Z t[N>
\ t]N>
^ T_N>
` ,TaN>
b ,TcN>
d eN>
f TgN>
h 4iN>
j dkN>
l DmN>
n $oN>
p qN>
r dsN>
t DuN>
v twN>
 N>
 N>
x &}yN>
z %u{m{N>
| }N>
~ $N>
@ 4AN>
B $CN>
D tEN>
F dGN>
H .tIN>
J $TKN>
L  MN>
N 4ON>
P *4QN>
R #DSN>
T dUN>
X 0YN>
Z 0[N>
 N>
^ &+[M%*[M%*[M/4{m/4{EN.K/ mU^4 
% {EKek5:VU[%+u{EJWKek5;
S 
ON>
 N>
 N>
` '+"E
 E
& 4#** $#'     	K#**+IJJJK:
 
K:
 K:
" u}enE#K:
$ %-G%K:
& t'K:
( D)K:
* T+K:
, $-K:
. %-G/K:
0 EM5=%.I1K:
2 <>3K:
< u}emU^D=K:
> u}emU^L?K:
@  %-!OAK:
B *,CK:
L $emU]EN%SMK:
N &u}en'UOK:
P ).u}en'U ; U[%+u{Ku}enE =%-H 

 (, ;MK:
 K:
 K:
` #'{m   

 

?&7
 &7
X !%! "
 
$ %) !&u~>
 
	1V 	1 	1 	1 	1 	1 	1 	1 	1  F	 F	B'B00CL,  	 	 	     R  ", 	  
 
 
 (((  &;<<1#6     hX]:%>%>xPS}UUU   (#  	 		
 )##?(B(B L$X%=iPSnUUU   222.."T))  0:3?     ///  0 %A     
r{  c                    i dt           j        t           j        gdt           j        t           j        gdd dd dt           j        gdt           j        t           j        gdt           j        t           j        gdt           j        gd	t           j        t           j        gd
d dt           j        t           j        gdd dd dt           j        t           j        gdt           j        t           j        gdt           j        t           j        gdt           j        t           j        gi dt           j        t           j        gdt           j        t           j        gdt           j        t           j        gdt           j        gdt           j        gdt           j        gdt           j        gdt           j        t           j        gdd dd dt           j        t           j        gdt           j        t           j        gdt           j        t           j        gdt           j        t           j        gd t           j        t           j        gd!t           j        t           j        gd"t           j        t           j        gt           j        gt           j        t           j        gt           j        gt           j        gt           j        gt           j        gt           j        gt           j        gt           j        gt           j        gt           j        gt           j        gt           j        gt           j        t           j        gt           j        gd#}t           j        gt           j        gt           j        gt           j        gt           j        gt           j        gt           j        gd$}d t           j        gd%}d&t          d't          d(d fd)}| D ]}|j        |j        z   }||v r+ ||t	          t          j        ||         *                     ||v r+ ||t	          t          j	        ||         *                     ||v r+ ||t	          t          j        ||         *                     | S )+N_segment_reducer   rF  rG  r=  unique_consecutiver   cdistzmasked.scatterrs  
index_filligammaigammaczlinalg.solvezlinalg.solve_exzlinalg.tensorsolvez
linalg.detzlinalg.slogdetlogdetaminmaxz
special.i1zspecial.i1er{   msortrb  r  	nextafterfloor_divider   histogramdd	histogramr   r   rd   )znn.functional.smooth_l1_lossr   zsignal.windows.bartlettzsignal.windows.blackmanzsignal.windows.cosinezsignal.windows.exponentialzsignal.windows.gaussianzsignal.windows.general_cosinezsignal.windows.general_hammingzsignal.windows.hammingzsignal.windows.hannzsignal.windows.kaiserzsignal.windows.nuttallrI   rZ  )znn.functional.pairwise_distancer  r  rR  r  r  r  )rk  rR  rt  ru  r   c                 &    | j         |fz   | _         d S rw  rx  rt  ru  s     ry  rz  z+mps_ops_grad_modifier.<locals>.addDecorator      MQD0BMMMr{  r|  )
r~  r  r  r   r   r  r  r  r  r  )r
   XFAILLIST_GRADSKIPLIST_GRADr  rz  rt  r  s          ry  mps_ops_grad_modifierr    s   N
u}=N
 5=%-8N
 &t	N

 %dN
 N
 !5=%-"@N
 emU];N
 em_N
 u}em<N
 tN
 5=%-8N
 dN
 tN
 U]EM:N
   !N
( !#)N
0 5=%-81N
 N
2 3N
: u}em4;N
< u}5=N
> 5=/?N
@ EM?AN
D em_EN
N em_ON
R EM5=9SN
X DYN
\ ]N
` U]EM:aN
d EM5=9eN
h EM5=9iN
l %-7mN
p 6qN
r emU]3sN
v U]EM2wN
 N
z .3]OmU]3(-(-&+m_+0=/(-.3m_/4}o',}o$)M?&+m_',}oM5=1]O[N
 N
 N
b 16%*]O%*]O%*]O/4}o/4}o/4}o	
 	
 #'%*]O
 
	1V 	1 	1 	1 	1 	1 	1  	 	B'B00Cn$$ !9.QTBUVVV  
 m##RhmMRUDV!W!W!WXXX&&&  09I#9N     
r{  c                     h d}dt           dt          dd fd}| D ]8}|j        |j        z   }||v r# ||t          t          j                             9| S )N>   amaxamingatherr  scatter__rmod__rf  r   ra  	clamp_max	clamp_minr[  scatter_addr   r   r  r  rR  rt  ru  r   c                 &    | j         |fz   | _         d S rw  r  r  s     ry  rz  z3mps_ops_error_inputs_modifier.<locals>.addDecoratorA  r  r{  )r   r   r  r  r  r  )r
   	XFAILLISTrz  rt  r  s        ry  mps_ops_error_inputs_modifierr  &  s    
 
 
	2	1V 	1 	1 	1 	1 	1 	1  	I 	IB'B00CiRh.F!G!GHHH
r{  c                     | S rw   )r
   r   r   r   s       ry  r  r  L  s	     
r{  )r	   NF)r  collections.abcr   typingr   r~  common_utilsr   opinfo.corer   r   backendsr	   is_availablestrlistrW   r  r  r  r  r{  ry  <module>r     s    $ $ $ $ $ $        ' ' ' ' ' ' - - - - - - - - 	>""$$ G !/3	[
 [
f[
[
 "$s),[
 	[

 
&	[
 [
 [
 [
zz8F#3 z8H z z z zx#8F+; #@P # # # # # #P !/3	 f "$s), 	
 
&	     r{  