
    pix                     B   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                  j                         r;	 	 	 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y	 	 	 ddee
   ded	eee      d
edee
   f
dZy)    N)Sequence)Optional   )MACOS_VERSION)DecorateInfoOpInfo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|j                  d d dl       |r|j                  |       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             |r6 ||t        t#        j*                  d      t         j,                  g             ||
v r* ||t        t#        j*                  d      |
|                ||v r* ||t        t#        j*                  d      ||                |||	fD ]1  }||v s||vs ||t        t"        j$                  ||                3 ||v r2||vr.t        dk  r% ||t        t"        j$                  ||                ||vsf ||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   )rQ  grid_sampler_3dopdr   c                 B    |_         | j                  |fz   | _        y N)r
   
decorators)rs  rt  r
   s     d/opt/services/ai/voice_agent/venv/lib/python3.12/site-packages/torch/testing/_internal/common_mps.pyaddDecoratorz&mps_ops_modifier.<locals>.addDecoratorZ  s"    & +MMQD0BM    dtypesz4Skipped due to MPS not supporting complex128 tensorszSkipping empty ops.zSkipped!g,@)torch	complex64float32uint8r   int32int64r   float16int16int8updaterV   r   r   namevariant_test_nameunittestexpectedFailurerL  rK  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SKIPLISTry  rs  key	xfaillists    `              rx  mps_ops_modifierr     sK    " O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>
, 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 EMM?GN>
H .I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>
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>
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>
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>
^ &+[[M%*[[M%*[[M/4{{m/4{{ENN.K/ mmU^^4 

% {{EKKekk5::VU[[%++u{{EJJWKKekk5;;

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

ON>
` '+"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  F	B''B000C,,	    R ",, 	
 ((  &;<1#6 hX]]:%>xPS}U (#  		
 )#?(B $X%=%=iPSnU	 22."T)  00:3? //  00 %AAF	P 
rz  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 ss ||t	        t        j                  ||   *              | S )+N_segment_reducer   rE  rF  r<  unique_consecutiver   cdistzmasked.scatterrr  
index_filligammaigammaczlinalg.solvezlinalg.solve_exzlinalg.tensorsolvez
linalg.detzlinalg.slogdetlogdetaminmaxz
special.i1zspecial.i1erz   msortra  r  	nextafterfloor_divider   histogramdd	histogramr   r   rc   )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.nuttallrH   rY  )znn.functional.pairwise_distancer  r  rQ  r  r  r  )rj  rQ  rs  rt  r   c                 .    | j                   |fz   | _         y rv  rw  rs  rt  s     rx  ry  z+mps_ops_grad_modifier.<locals>.addDecorator      MMQD0BMrz  r{  )
r}  r  r  r   r   r  r  r  r  r  )r	   XFAILLIST_GRADSKIPLIST_GRADr  ry  rs  r  s          rx  mps_ops_grad_modifierr    s   N
u}}=N
 5==%--8N
 &t	N

 %dN
 N
 !5==%--"@N
 emmU]];N
 emm_N
 u}}emm<N
 tN
 5==%--8N
 dN
 tN
 U]]EMM:N
   !N
( !#)N
0 5==%--81N
2 3N
: u}}emm4;N
< u}}5=N
> 5==/?N
@ EMM?AN
D emm_EN
N emm_ON
R EMM5==9SN
X DYN
\ ]N
` U]]EMM:aN
d EMM5==9eN
h EMM5==9iN
l %--7mN
p 6qN
r emmU]]3sN
v U]]EMM2wN
z .3]]OmmU]]3(-(-&+mm_+0==/(-.3mm_/4}}o',}}o$)MM?&+mm_',}}oMM5==1]]O[N
b 16%*]]O%*]]O%*]]O/4}}o/4}}o/4}}o	
 #'%*]]O
	1V 	1 	1 	1  	B''B000Cn$ !9!9.QTBUV
 m#RhmmMRUDV!WX&&  009I#9N	& 
rz  c                     h d}dt         dt        dd fd}| D ]@  }|j                  |j                  z   }||v s! ||t        t        j
                               B | S )N>   amaxamingatherr  scatter__rmod__re  r   r`  	clamp_max	clamp_minrZ  scatter_addr   r   r  r  rQ  rs  rt  r   c                 .    | j                   |fz   | _         y rv  r  r  s     rx  ry  z3mps_ops_error_inputs_modifier.<locals>.addDecoratorA  r  rz  )r   r   r  r  r  r  )r	   	XFAILLISTry  rs  r  s        rx  mps_ops_error_inputs_modifierr  &  sn    
	2	1V 	1 	1 	1  	IB''B000CiRh.F.F!GH	I
 
rz  c                     | S rv   )r	   r
   r   r   s       rx  r  r  L  s	     
rz  )mpsNF)r  collections.abcr   typingr   r}  common_utilsr   opinfo.corer   r   backendsr  is_availablestrlistrV   r  r  r  r  rz  rx  <module>r     s    $   ' - 	>>""$ !/3	[
f[
[
 "$s),[
 	[

 
&	[
zz8F#3 z8H zx#8F+; #@P #P !/3	f "$s), 	
 
&	rz  