
    tiw                     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t         j                  gd t         j                  gd!t         j                  g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.t         j                  gd/d d0d d1d d2d d3d d4d d5d i d6d d7d d8t        d9k  r t         j
                  t         j                  gnt         j                  gd:t        d9k  r t         j
                  t         j                  gnt         j                  gd;d d<d d=d d>d d?d d@d dAd dBd dCd dDd dEd dFd dGd i dHd dId dJd dKd dLd dMd dNd dOd dPd dQd dRt         j                  gdSt         j                  gdTd dUd dVd dWd dXd i dYd dZd d[d d\d d]d d^d d_d d`d dad dbd dct         j                  gddt         j                  gdet         j                  gdft         j                  gdgt         j                  t         j                  gdht         j                  t         j                  t         j                  gdit         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        d9k  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	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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linalg.householder_product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.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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_pool2dr  r  nn.functional.conv3dr  r  r  histc)z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     h/home/ubuntu/crypto_trading_bot/.venv/lib/python3.12/site-packages/torch/testing/_internal/common_mps.pyaddDecoratorz&mps_ops_modifier.<locals>.addDecoratorV  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     s3    " OO!
f %//*'
#G>
G>
 &tG>
 $	G>

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

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

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

AG>
R '+"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                 2
   i dt         j                  t         j                  gdt         j                  t         j                  gdd dd dt         j                  gdd 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i 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d!t         j                  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t         j                  gt         j                  gt         j                  gt         j                  gt         j                  t         j                  gt         j                  gd d 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>  r  unique_consecutiver   cdistzmasked.scatterrr  
index_filligammaigammaczlinalg.solvezlinalg.solve_exzlinalg.tensorsolveaminmaxz
special.i1zspecial.i1erz   msortra  r  	nextafterfloor_divider   histogramdd	histogramr   r   rc   r   zsignal.windows.bartlett)z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  	to_sparseunique)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   K
u}}=K
 5==%--8K
 &t	K

 %dK
 K
 )$K
 !5==%--"@K
 emmU]];K
 emm_K
 u}}emm<K
 tK
 5==%--8K
 dK
 tK
  U]]EMM:!K
"  #K
* !#+K
2 u}}53K
4 5==/5K
6 EMM?7K
: emm_;K
D emm_EK
H EMM5==9IK
N DOK
R SK
V U]]EMM:WK
Z EMM5==9[K
^ EMM5==9_K
b %--7cK
f 6gK
h emmU]]3iK
l U]]EMM2mK
p emmU]]3qK
r &sK
t ).&+mm_+0==/(-.3mm_/4}}o',}}o$)MM?&+mm_',}}oMM5==1]]OUK
\ 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   	clamp_max	clamp_minrZ  scatter_addr  r  r  rQ  rs  rt  r   c                 .    | j                   |fz   | _         y rv  r  r  s     rx  ry  z3mps_ops_error_inputs_modifier.<locals>.addDecorator7  r  rz  )r   r   r  r  r  r  )r	   	XFAILLISTry  rs  r  s        rx  mps_ops_error_inputs_modifierr    sn    
	,	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  B  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	W
fW
W
 "$s),W
 	W

 
&	W
rw8F#3 w8H wr 8F+;  @P  J !/3	f "$s), 	
 
&	rz  