
    ΅i_w                     X   S SK r S SKJr  S SKJr  S SKrSSKJr  SSKJ	r	J
r
  \R                  R                  R                  5       (       a?     SS\\
   S\S	\\\      S
\S\\
   4
S jjrS\\
   S\\
   4S jrS\\
   S\\
   4S jrg   SS\\
   S\S	\\\      S
\S\\
   4
S jjrg)    N)Sequence)Optional   )MACOS_VERSION)DecorateInfoOpInfoopsdevice_typexfail_exclusionsparsereturnc                 `  ^ Uc  / n1 SknS[         R                  /0n0 SS _SS _SS _SS _SS _SS _S	S _S
S _SS _SS _SS _SS _SS _SS _SS _SS _SS _0 SS _SS _SS _SS _SS _SS _SS _SS _SS _SS _SS _S[         R                  /_S [         R                  /_S![         R                  /_S"S _S#S _S$S _E0 S%S _S&S _S'S _S(S _S)S _S*S _S+S _S,S _S-S _S.[         R                  /_S/S _S0S _S1S _S2S _S3S _S4S _S5S _E0 S6S _S7S _S8[        S9:  a   [         R
                  [         R                  /O[         R                  /_S:[        S9:  a   [         R
                  [         R                  /O[         R                  /_S;S _S<S _S=S _S>S _S?S _S@S _SAS _SBS _SCS _SDS _SES _SFS _SGS _E0 SHS _SIS _SJS _SKS _SLS _SMS _SNS _SOS _SPS _SQS _SR[         R                  /_SS[         R                  /_STS _SUS _SVS _SWS _SXS _E0 SYS _SZ[         R                  [         R                  [         R
                  [         R                  [         R                  [         R                  /_S[S _S\S _S]S _S^S _S_S _S`S _SaS _Sb[         R                  /_Sc[         R                  /_Sd[         R                  /_Se[         R                  /_Sf[         R                  [         R                  /_Sg[         R                  [         R                  [         R                  /_Sh[         R                  [         R                  /_Si[         R                  [         R
                  [         R                  [         R                  [         R                  /_E[         R                  [         R
                  [         R                  [         R                  [         R                  /[         R                  [         R
                  [         R                  [         R                  [         R                  /Sj.EnS S S S S Sk.n[        S9:  a  UR                  S S Sl.5        U(       a  UR                  U5        0 Sm[         R                  [         R
                  [         R                  [         R                  [         R                  /_Sn[         R                  [         R                  [         R                  /_So[         R                  [         R                  [         R                  /_Sp[         R                  [         R                  [         R                  /_SqS _SrS _SsS _StS _Su[         R                  [         R                  [         R                  /_Sv[         R                  [         R                  [         R                  /_Sw[         R                  [         R                  [         R                  /_Sx[         R                  [         R                  [         R                  /_Sy[         R                  [         R                  [         R                  /_Sz[         R                  [         R                  [         R                  /_S{[         R                  [         R                  [         R                  /_S|[         R                  [         R                  [         R                  /_S}[         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                  /S [         R                  [         R                  [         R                  /S~.EnS [         R                  /[         R                  [         R                  [         R                  /[         R                  [         R                  [         R                  [         R                  [         R                  /[         R                  [         R                  [         R                  [         R                  [         R                  /S.n	S S S S S S S.n
S [         R                  [         R                  /S.nS[        S[        SS 4U4S jjnU  GH  nUR                  UR                   -   nU" U[        ["        R$                  [         R&                  [         R(                  /S95        U(       a4  U" U[        ["        R*                  " S5      [         R,                  /S95        X;   a'  U" U[        ["        R*                  " S5      X   S95        X;   a'  U" U[        ["        R*                  " S5      X   S95        UUU	4 H2  nX;   d  M
  X;  d  M  U" U[        ["        R$                  X   S95        M4     X;   a0  X;  a+  [        S:  a!  U" U[        ["        R$                  X^   S95        X;  d  GMe  U" U[        ["        R$                  [         R.                  [         R                  /S95        GM     U $ )N>  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addbmmcfloatdsplitdstackeinsumexpandfliplrflipudhsplithstackisrealmatmulnarrowselectsquaret_copyunbindunfoldvsplitvstackaddcdivaddcmulbaddbmm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	logaddexp	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
logaddexp2
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softmaxwith_dtype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.fftfft.fft2fft.fftnfft.hfftfft.ifft	fft.hfft2	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special.zetafft.ifftshiftlinalg.diagonalspecial.xlog1pylinalg.multi_dotmasked.logsumexpnn.functional.conv1dnn.functional.conv2dnn.functional.unfoldnn.functional.rms_normnn.functional.softsignnn.functional.padreflectnn.functional.tanhshrinknn.functional.padcircularnn.functional.padconstantlinalg.householder_productnn.functional.padreplicatenn.functional.pixel_shufflespecial.spherical_bessel_j0nn.functional.pixel_unshufflenn.functional.conv_transpose1dnn.functional.conv_transpose2dnn.functional.conv_transpose3dnn.functional.softminwith_dtype0nn.functional.feature_alpha_dropoutwithout_trainr   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.ldl_factorzlinalg.ldl_factor_exzlinalg.ldl_solvezlinalg.lstsqzlinalg.lstsqgrad_orientedzlinalg.matrix_normzlinalg.normzlinalg.normsubgradients_at_zeroz	linalg.qrzlinalg.svdvalszlinalg.vecdotz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.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vdotsegment_reduce__upsample_bilinear2d_aa_upsample_bicubic2d_aa	geometric
geometric_log_normal_
log_normalcdoubledoublelog_softmaxwith_dtypefloat_powerzlinalg.matrix_rankhermitianzlinalg.pinvhermitianzlinalg.pinvsingularnonzero_staticz!nn.functional.adaptive_avg_pool1dz!nn.functional.adaptive_avg_pool2dr  r  nn.functional.conv3dr  r  r  histcznn.functional.linear)matbincount)r!  r"  r#  r$  r%  )quantilenanquantiletopkmultinomialuniform	rand_likerandintrandint_likerd   
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   rY   
empty_liker   )rT  grid_sampler_3dopdr   c                 D   > Tb  TUl         U R                  U4-   U l        g N)r
   
decorators)rt  ru  r
   s     \/home/james-whalen/.local/lib/python3.13/site-packages/torch/testing/_internal/common_mps.pyaddDecorator&mps_ops_modifier.<locals>.addDecorator^  s"    & +MMQD0BM    dtypesz4Skipped due to MPS not supporting complex128 tensorszSkipping empty ops.zSkipped!g,@)torch	complex64float32uint8r   int32int64int8int16r   float16updater1   r   r   namevariant_test_nameunittestexpectedFailurerP  rO  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S!
n %//*'
#K>
K>
 &tK>
 $	K>

 dK>
 4K>
 tK>
 dK>
 K>
 dK>
 TK>
 4K>
 TK>
 (K>
 4K>
  !K>
" #K>
$ %K>
& 'K>
( )K>
, 4-K>
. 4/K>
0 41K>
2 t3K>
4  5K>
6 #D7K>
8 9K>
: D;K>
< (=K>
> !5==/?K>
@ EMM?AK>
B .CK>
D EK>
F dGK>
H TIK>
J TKK>
L $MK>
N DOK>
P tQK>
R 24SK>
T 24UK>
V 0WK>
X 0YK>
Z ,T[K>
\ /]K>
^ %d_K>
` .taK>
b 3DcK>
d "4eK>
f "4gK>
h !$iK>
j TkK>
l 4mK>
n $oK>
p !t# $);;"<++uK>
v !t# $);;"<++{K>
| d}K>
~ tK>
@ dAK>
B %dCK>
D &tEK>
F &tGK>
H %dIK>
J %dKK>
L MK>
N #DOK>
P tQK>
R tSK>
T TUK>
V ,TWK>
X ,TYK>
Z [K>
\ T]K>
^ 4_K>
` daK>
b DcK>
d $eK>
f DgK>
h tiK>
j &}kK>
l %u{{mmK>
n oK>
p $qK>
r 4sK>
t $uK>
v twK>
x dyK>
z $

&{K>
J 4KK>
L *4MK>
N #DOK>
P "4QK>
R dSK>
V 0WK>
X 0YK>
\ #U[[M]K>
^ #U[[M_K>
` #U[[MaK>
b -u{{mcK>
d -u{{ENN.KeK>
f -/gK>
r emmU^^4sK>
v #

%wK>
D KKekk5;;

S 

IK>
Z '+"E
& 4#** $#' #**+IJK:
 

K:
 K:
" u}}ennE#K:
$ %--G%K:
& t'K:
( D)K:
* T+K:
, $-K:
. %--G/K:
0 EMM5==%..I1K:
2 <>3K:
< u}}emmU^^D=K:
> u}}emmU^^L?K:
@  %--!OAK:
B *,CK:
L $emmU]]ENN%SMK:
N &u}}enn'UOK:
P ).u}}enn'U ; U[[%++u{{Ku}}ennE ==%--H 



 (, ;MK:
` #'{{m   



 



?&7
X !%! "
$ %) !&u~~>
	1V 	1 	1 	1 B''B000C,,	    R ",, 	
 (  &;<16 X]]:%>x}U (# 	
 #(B $X%=%=inU 2."T)  00:? /  00 %AA P 
r|  c                 
   0 S[         R                  [         R                  /_S[         R                  [         R                  /_SS _SS _S[         R                  /_SS _S[         R                  [         R                  /_S[         R                  [         R                  /_S	[         R                  /_S
[         R                  [         R                  /_SS _S[         R                  [         R                  /_SS _SS _S[         R                  [         R                  /_S[         R                  [         R                  /_S[         R                  [         R                  /_0 S[         R                  [         R                  /_S[         R                  /_S[         R                  /_S[         R                  /_S[         R                  [         R                  /_SS _SS _S[         R                  [         R                  /_S[         R                  [         R                  /_S[         R                  [         R                  /_S[         R                  [         R                  /_S[         R                  [         R                  /_S[         R                  [         R                  /_S[         R                  [         R                  /_S [         R                  [         R                  /_S![         R                  /_S"[         R                  /_E[         R                  /[         R                  /[         R                  /[         R                  /[         R                  /[         R                  /[         R                  /[         R                  /[         R                  /[         R                  [         R                  /[         R                  /S S S#.En[         R                  /[         R                  /[         R                  /[         R                  /[         R                  /[         R                  /[         R                  /S$.nS [         R                  /S%.nS&[        S'[        S(S 4S) jnU  H  nUR
                  UR                  -   nXa;   a!  U" U[	        [        R                  X   S*95        Xb;   a!  U" U[	        [        R                  X&   S*95        Xc;   d  Mo  U" U[	        [        R                  X6   S*95        M     U $ )+N_segment_reducer   rI  rJ  rB  r  unique_consecutiver   cdistzmasked.scatterrs  
index_filligammaigammaczlinalg.solvezlinalg.solve_exzlinalg.tensorsolveaminmaxz
special.i1zspecial.i1emsortrb  r  	nextafterfloor_divider   histogramdd	histogramr   rZ   r>   rd   zsignal.windows.bartlettzsignal.windows.blackman)z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.nuttallr#   rZ  	to_sparseunique)znn.functional.pairwise_distancer  r  rT  r  r  r  )rk  rT  rt  ru  r   c                 .    U R                   U4-   U l         g rw  rx  rt  ru  s     ry  rz  +mps_ops_grad_modifier.<locals>.addDecorator      MMQD0BMr|  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   J
u}}=J
 5==%--8J
 &t	J

 %dJ
 J
 )$J
 !5==%--"@J
 emmU]];J
 emm_J
 u}}emm<J
 tJ
 5==%--8J
 dJ
 tJ
  U]]EMM:!J
"  #J
* !#+J
2 u}}53J
4 5==/5J
6 EMM?7J
B emm_CJ
F EMM5==9GJ
L DMJ
P QJ
T U]]EMM:UJ
X EMM5==9YJ
\ EMM5==9]J
` %--7aJ
d 6eJ
f emmU]]3gJ
j U]]EMM2kJ
n emmU]]3oJ
p &qJ
r &sJ
t ',mm_+0==/(-.3mm_/4}}o',}}o$)MM?&+mm_',}}oMM5==1]]OSJ
Z 16%*]]O%*]]O%*]]O/4}}o/4}}o/4}}o	
 #'%*]]O
	1V 	1 	1 	1 B''B000C$ !9!9.BUV
 #RhmmMDV!WX&  009I9N & 
r|  c                     1 SknS[         S[        SS 4S jnU  HC  nUR                  UR                  -   nXA;   d  M#  U" U[        [        R
                  5      5        ME     U $ )N>   amaxamingatherr  scatter__rmod__rf  r   	clamp_max	clamp_minr[  scatter_addr   r  r  rT  rt  ru  r   c                 .    U R                   U4-   U l         g rw  r  r  s     ry  rz  3mps_ops_error_inputs_modifier.<locals>.addDecorator>  r  r|  )r   r   r  r  r  r  )r	   	XFAILLISTrz  rt  r  s        ry  mps_ops_error_inputs_modifierr  &  se    
	,	1V 	1 	1 	1 B''B000CRh.F.F!GH 
 
r|  c                     U $ rw   )r	   r
   r   r   s       ry  r  r  I  s	     
r|  )mpsNF)r  collections.abcr   typingr   r  common_utilsr   opinfo.corer   r   backendsr  is_availablestrlistr1   r  r  r  r  r|  ry  <module>r     s    $   ' - 	>>""$$ !/3	_
f_
_
 "$s),_
 	_

 
&	_
Bv8F#3 v8H vp 8F+;  @P  J !/3	f "$s), 	
 
&	r|  