
    Pg2i                     B   d dl Z d dlZd dlZd dlZd dlmZmZmZ d dlZd dlm	Z	 ej                   G d d             Z e       Z	 	 	 	 	 	 ddZdeeef   fdZe j                   d	        Zd
 Z G d d      ZddZddZddZd Zd Zd ZdddZdddZdddZy)    N)AnyDictOptional)infc                   Z    e Zd ZU dZeed<   dZeed<   dZeed<   dZ	eed<   d	Z
ee   ed
<   y	)__PrinterOptions   	precision  	threshold   	edgeitemsP   	linewidthNsci_mode)__name__
__module____qualname__r
   int__annotations__r   floatr   r   r   r   bool     X/var/www/html/suriana-translation/venv/lib/python3.12/site-packages/torch/_tensor_str.pyr   r      s8    IsIuIsIs#Hhtn#r   r   c                    ||dk(  r-dt         _        dt         _        dt         _        dt         _        ng|dk(  r-dt         _        dt         _        dt         _        dt         _        n5|d	k(  r0dt         _        t
        t         _        dt         _        dt         _        | | t         _        ||t         _        ||t         _        ||t         _        |t         _        y)
a  Set options for printing. Items shamelessly taken from NumPy

    Args:
        precision: Number of digits of precision for floating point output
            (default = 4).
        threshold: Total number of array elements which trigger summarization
            rather than full `repr` (default = 1000).
        edgeitems: Number of array items in summary at beginning and end of
            each dimension (default = 3).
        linewidth: The number of characters per line for the purpose of
            inserting line breaks (default = 80). Thresholded matrices will
            ignore this parameter.
        profile: Sane defaults for pretty printing. Can override with any of
            the above options. (any one of `default`, `short`, `full`)
        sci_mode: Enable (True) or disable (False) scientific notation. If
            None (default) is specified, the value is defined by
            `torch._tensor_str._Formatter`. This value is automatically chosen
            by the framework.

    Example::

        >>> # Limit the precision of elements
        >>> torch.set_printoptions(precision=2)
        >>> torch.tensor([1.12345])
        tensor([1.12])
        >>> # Limit the number of elements shown
        >>> torch.set_printoptions(threshold=5)
        >>> torch.arange(10)
        tensor([0, 1, 2, ..., 7, 8, 9])
        >>> # Restore defaults
        >>> torch.set_printoptions(profile='default')
        >>> torch.tensor([1.12345])
        tensor([1.1235])
        >>> torch.arange(10)
        tensor([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

    Ndefaultr	   r   r   r   short   full)
PRINT_OPTSr
   r   r   r   r   r   )r
   r   r   r   profiler   s         r   set_printoptionsr#      s    Z i#$J #'J #$J #%J #$J #'J #$J #%J #$J #&J #$J #%J (
(
(
(
"Jr   returnc                  4    t        j                  t              S )zyGets the current options for printing, as a dictionary that
    can be passed as ``**kwargs`` to set_printoptions().
    )dataclassesasdictr!   r   r   r   get_printoptionsr(   b   s     j))r   c               +   v   K   t               }t        di |  	 d t        di | y# t        di | w xY ww)zyContext manager that temporarily changes the print options.  Accepted
    arguments are same as :func:`set_printoptions`.Nr   )r(   r#   )kwargs
old_kwargss     r   printoptionsr,   i   s:      "#Jv'&:&&:&s   9) 969c                     | j                   s?| j                  rCt        j                  j	                  | j
                        j                  st        j                  nt        j                  }| j                  |      S )N)dtype)
is_mpsis_xputorchxpuget_device_propertiesdevicehas_fp64r   doubleto)tr.   s     r   tensor_totyper9   u   sW     HH!@!@!J!S!S 	
 \\ 
 44e4r   c                       e Zd Zd Zd Zd Zy)
_Formatterc                    |j                   j                  | _        d| _        d| _        d| _        t        j                         5  |j                  d      }d d d        | j                  s0D ])  }| }t        | j
                  t        |            | _        + nt        j                  t        j                  |      |j                  d      z        }|j                         dk(  ry t        |j!                               }t        |j#                               }t        |j                               }|D ]#  }|t        j$                  |      k7  sd| _         n | j                  r||z  dkD  s|dkD  rVd| _        |D ]I  }dt&        j(                   d	j+                  |      }t        | j
                  t        |            | _        K n|D ]-  }|d
}t        | j
                  t        |      dz         | _        / n||z  dkD  s
|dkD  s|dk  rVd| _        |D ]I  }dt&        j(                   d	j+                  |      }t        | j
                  t        |            | _        K nN|D ]I  }dt&        j(                   dj+                  |      }t        | j
                  t        |            | _        K t&        j                  t&        j                  | _        y y # 1 sw Y   xY w)NTF   r   g     @@g    חA{:.e}.0fg-C6?f})r.   is_floating_pointfloating_dtypeint_moder   	max_widthr1   no_gradreshapemaxlenmasked_selectisfinitenenumelr9   absminceilr!   r
   format)	selftensortensor_viewvalue	value_strnonzero_finite_valsnonzero_finite_absnonzero_finite_minnonzero_finite_maxs	            r   __init__z_Formatter.__init__   s   $ll<<]]_ 	- ..,K	- ""$ E$g	!$T^^S^!DE
 #("5"5U^^K8;>>!;LL# #((*a/ "//B/F/F/H!I!./A/E/E/G!H!./A/E/E/G!H, EJJu--$)DM
 }} ');;fD)E1$(DM!4 M&*:+?+?*@$D$K$KE$R	),T^^S^)LM "5 Q',Sk	),T^^S^a=O)PQ ');;fD)E1)F2$(DM!4 M&*:+?+?*@$D$K$KE$R	),T^^S^)LM "5 M&*:+?+?*@$D$K$KE$R	),T^^S^)LM *&//DM +u	- 	-s   KK&c                     | j                   S N)rF   )rS   s    r   widthz_Formatter.width   s    ~~r   c                    | j                   r| j                  r1d| j                   dt        j                   dj                  |      }ng| j                  r4|d}t        j                  |      sBt        j                  |      s-|dz  }n'dt        j                   dj                  |      }n| }| j                  t        |      z
  dz  |z   S )Nz{:.r@   rA   r?   rB    )rD   r   rF   r!   r
   rR   rE   mathisinfisnanrJ   )rS   rV   rets      r   rR   z_Formatter.format   s    }}DNN+1Z-A-A,B#FMMeTs

5)TZZ->3JCZ112#6==eDGCS)S0366r   N)r   r   r   r\   r_   rR   r   r   r   r;   r;      s    A0F7r   r;   c                     |Zt        | j                  |      }t        | j                  |      dz   j                         }|d   dk(  s|d   dk(  r||z   S |dz   |z   S |j	                  | j                               S Njr   +-)_scalar_strrealimaglstriprR   item)rS   
formatter1
formatter2real_strimag_strs        r   rl   rl      s~    tyy*5		:6<DDFA;#!!3h&&c>H,,  --r   c           	      ~   |j                         dz   }|||j                         dz   z  }t        dt        t        j                  t
        j                  |z
  |z                    }||fd}|rt
        j                  sdg}n|r| j                  d      dt
        j                  z  kD  rq| d t
        j                   j                         D 	cg c]
  }	 ||	       c}	dgz   | t
        j                   d  j                         D 	cg c]
  }	 ||	       c}	z   }n#| j                         D 	cg c]
  }	 ||	       }}	t        dt        |      |      D 
cg c]
  }
||
|
|z     }}
|D cg c]  }dj                  |       }}dd	d
|dz   z  z   j                  |      z   dz   S c c}	w c c}	w c c}	w c c}
w c c}w )Nr   r=   c                     |d|j                  | j                        }|j                  | j                        dz   j                         }|d   dk(  s|d   dk(  r||z   S |dz   |z   S |j                  |       S rh   )rR   rm   rn   ro   )valrq   rr   rs   rt   s        r   _val_formatterz#_vector_str.<locals>._val_formatter   s    !!((2H"))#((3c9AACH{c!Xa[C%7(**#~00$$S))r   ...r   z ..., [,
rb   ])r_   rI   r   rc   floorr!   r   r   sizetolistrangerJ   join)rS   indent	summarizerq   rr   element_lengthelements_per_linerx   datarw   i
data_lineslineliness                 r   _vector_strr      s   %%'!+N***,q00	3tzz://&8^LMN (2j 
* --w	tyy|a**>*>&>>,01G:3G3G,H,O,O,QRS^C Rh.2J4H4H3H3J.K.R.R.TUs~c"UV 	 04{{}=s#== 27q#d)EV1W,-Q&&'J  *44TYYt_4E4*sfqj1177>>DD SU > 5s   F&F+.F0F5,F:c                    | j                         }|dk(  rt        | ||      S |dk(  rt        | ||||      S |r| j                  d      dt        j
                  z  kD  rt        dt        j
                        D cg c]  }t        | |   |dz   |||       c}dgz   t        t        |       t        j
                  z
  t        |             D cg c]  }t        | |   |dz   |||       c}z   }n;t        d| j                  d            D cg c]  }t        | |   |dz   |||       }}dd|dz
  z  z   d|dz   z  z   j                  |      }d|z   d	z   S c c}w c c}w c c}w )
Nr   r=   r   ry   ,
rb   r{   r}   )
dimrl   r   r   r!   r   r   _tensor_str_with_formatterrJ   r   )	rS   r   r   rq   rr   r   r   slices
tensor_strs	            r   r   r     s   
((*C
ax4Z88
ax4J
KKTYYq\A
(<(<$<< q*"6"67	  +GVaZJ
 g s4y:+?+??TK	  +GVaZJ
 	( 1diil+	
  'Q!Y
J
 
 a((3&1*+==CCFKJc!!/
s   :EEEc                 H   | j                         dk(  ry| j                         r| j                  d       } | j                         t        j                  kD  }| j                         r| j                         } | j                         r| j                         } | j                  t        j                  t        j                  t        j                  t        j                  fv r| j                         } | j                  j                   rw| j#                         } t%        |rt'        | j(                        n| j(                        }t%        |rt'        | j*                        n| j*                        }t-        | ||||      S t%        |rt'        |       n|       }t-        | |||      S )Nr   [])rN   	has_namesrenamer!   r   _is_zerotensorcloneis_negresolve_negr.   r1   float8_e5m2float8_e5m2fnuzfloat8_e4m3fnfloat8_e4m3fnuzhalf
is_complexresolve_conjr;   get_summarized_datarm   rn   r   )rS   r   r   real_formatterimag_formatter	formatters         r   _tensor_strr   6  sS   zz|q~~ {{4 

z333Izz| {{}! zz	  yy{zz  "#.7		*TYY
 $.7		*TYY
 *&)^^
 	
 I2484P	)$	9MMr   c                 b   | g}t        |       | j                  d      z
  dz   }|D ]f  }t        |      }|s||z   dz   t        j                  kD  r"|j	                  dd|z  z   |z          ||z   }d}K|j	                  d|z          ||dz   z  }h |j	                  d       d	j                  |      S )
Nr   r=   r   r|   rb   Frz   ) )rJ   rfindr!   r   appendr   )r   suffixesr   force_newlinetensor_strslast_line_lensuffix
suffix_lens           r   _add_suffixesr   e  s    ,K
Oj&6&6t&<<q@M ,[
MJ6:Z=Q=QQusV|3f<="Z/M!Mtf}-Z!^+M, s77;r   c                 \   | j                         }|dk(  r| S |dk(  ra| j                  d      dt        j                  z  kD  r:t	        j
                  | d t        j                   | t        j                   d  f      S | S t        j                  s#| j                  dg| j                         z        S | j                  d      dt        j                  z  kD  rt        dt        j                        D cg c]  }| |   	 }}t        t        |       t        j                  z
  t        |             D cg c]  }| |   	 }}t	        j                  ||z   D cg c]  }t        |       c}      S t	        j                  | D cg c]  }t        |       c}      S c c}w c c}w c c}w c c}w )Nr   r=   r   )r   r   r!   r   r1   cat	new_emptyr   rJ   stackr   )rS   r   r   startendxs         r   r   r   u  sb   
((*C
ax
ax99Q<!j222299,
,,-tZ5I5I4I4K/LM  K~~qcDHHJ.//	1J000	0"':+?+?"@AQaAA %c$i*2F2F&FD	 RS1tAwSS{{US[Jq/2JKK{{DAq/2ABB	 BSJAs   2F1FF$F)tensor_contentsc          	      $  !" t         j                  j                  j                  |       rt	        | |      S t        |       t         j                  u xs% t        |       t         j                  j                  u }| j                  rd}n|rd}nt        |       j                   d}t        |      !g }|d u}|r|}t         j                  j                  j                  |       \  }}|j                  j
                  t         j                  j!                         k7  sg|j                  j
                  dk(  r5t         j"                  j%                         |j                  j&                  k7  s|j                  j
                  dk(  r*|j)                  dt+        |j                        z   dz          |j                  j
                  d	v r|j-                  d
      }t        j.                         t         j0                  k(  rt         j2                  nt         j4                  }	|j6                  t        j.                         |	t         j8                  t         j:                  fv }
|j<                  r|j)                  dt+        t?        |j@                              z          ddl!m"} |jF                  xs tI        ||      }|s+|j)                  dt+        |jK                               z          |
s'|j)                  dt+        |j6                        z          |	sd}|jM                         jO                         }|rd}ntQ        |!t        |      z         }|s|jS                         dk(  r$|dt+        t?        |j@                              z   z  }d}|jU                         jO                         }|rd}ntQ        |!t        |      z         }|s|jS                         dk(  r$|dt+        t?        |j@                              z   z  }||z   dz   d!z  z   |z   |z   dz   }n|jV                  t         jX                  t         jZ                  t         j\                  t         j^                  hv rddl!m"} |j)                  dt+        t?        |j@                              z          |jF                  xs tI        ||      }|s+|j)                  dt+        |jK                               z          |
s'|j)                  dt+        |j6                        z          |st         jX                  t         j                  j`                  t         j                  jb                  ft         jZ                  t         j                  jd                  t         j                  jf                  ft         j\                  t         j                  j`                  t         j                  jb                  ft         j^                  t         j                  jd                  t         j                  jf                  fi|jV                     \  }}|jV                  t         jX                  t         j\                  hv rd\  }}nd\  }}d|d d  d} ||      jO                         }|rd}ntQ        |!t        |      z         }|jS                         dk(  s|r$|dt+        t?        |j@                              z   z  }|d d  d} ||      jO                         }|rd}ntQ        |!t        |      z         }|jS                         dk(  s|r$|dt+        t?        |j@                              z   z  }d}|ji                         jO                         }|rd}ntQ        |!t        |      z         }|jS                         dk(  s|r$|dt+        t?        |j@                              z   z  }||z   dz   d!z  z   |z   |z   dz   d!z  z   |z   |z   dz   }n|jj                  r |j)                  dt+        t?        |j@                              z          |
s'|j)                  dt+        |j6                        z          |j)                  dt+        |jm                               z          |jm                         t         jn                  k(  s!|jm                         t         jp                  k(  rW|j)                  dt+        |js                               z          |j)                  dt+        |ju                               z          n|jm                         t         jv                  k(  sB|jm                         t         jx                  k(  s!|jm                         t         jz                  k(  r|j)                  dt+        |j}                               z          |j)                  dt+        |j                               z          |j)                  dt+        |j                               z          |stQ        |j                         !      }n|j                  r[|sd  "d!j                  !"fd"t         j                  j                  j                  j                  |d      D              }d#| d$}n2t        j                  |      r"d%}t        t        j                  |            }nddl!m"} |jF                  stI        ||      r|j)                  dt+        t?        |j@                              z          |j6                  t        j.                         k7  r'|j)                  dt+        |j6                        z          |sbd}n^|jS                         dk(  r|j<                  s|j                         d&k7  r0|j)                  dt+        t?        |j@                              z          |j6                  t        j.                         k7  r'|j)                  dt+        |j6                        z          |sd'}nt        j                  s0|j)                  dt+        t?        |j@                              z          |
s'|j)                  dt+        |j6                        z          |sD|jV                  t         j                  k7  rtQ        |j                         !      }ntQ        |!      }|jV                  t         j                  k7  r'|j)                  d(t+        |jV                        z          d }	 | j                  }|?=t        |      j                  }|d*k(  r#|j                         j                  d+d&      d,   }||j)                  d-| d.       n| j                  r|j)                  d/       |j                         r|j)                  d0|j                          ||j)                  d1|        t        |z   |!|j<                  2      } tI        |t         j                  j                        r|sd3|  d} | S # t        $ r d)}Y w xY w)4Nr   znested_tensor(ztensor((cudampszdevice='')xlalazyipumtiacpuzsize=r   )
FakeTensorznnz=zdtype=zindices=tensor(ry   z, size=zvalues=tensor(z),
rb   r   )rowcolumn)r   r   cr   z_indices=tensor(zquantization_scheme=zscale=zzero_point=zaxis=c                 P    dj                  d | j                  d      D              S )Nr   c              3   &   K   | ]	  }d |   yw)z  Nr   ).0r   s     r   	<genexpr>z4_str_intern.<locals>.indented_str.<locals>.<genexpr>@  s      G2dV Gs   )r   split)sr   s     r   indented_strz!_str_intern.<locals>.indented_str?  s    yy G GGGr   r|   c              3   H   K   | ]  } t        |      d z           yw)r=   N)str)r   r8   r   r   s     r   r   z_str_intern.<locals>.<genexpr>B  s(       SVVaZ0s   "z[
z
]z_to_functional_tensor(r=   r   zlayout=InvalidCppFunctionz::r>   z	grad_fn=<>zrequires_grad=Trueznames=ztangent=)r   z
Parameter()Wr1   _C
_functorchis_functorch_wrapped_tensor_functorch_wrapper_str_interntypeTensornn	Parameter	is_nestedr   rJ   autograd
forward_adunpack_dualr4   _get_default_devicer   current_deviceindexr   r   r7   get_default_dtyper6   cdoublecfloatr.   int64r   	is_sparsetupleshapetorch._subclasses.fake_tensorr   is_meta
isinstance_nnz_indicesdetachr   rN   _valueslayout
sparse_csr
sparse_csc
sparse_bsr
sparse_bsccrow_indicescol_indicesccol_indicesrow_indicesvaluesis_quantizedqschemeper_tensor_affineper_tensor_symmetricq_scaleq_zero_pointper_channel_affineper_channel_symmetric per_channel_affine_float_qparamsq_per_channel_scalesq_per_channel_zero_pointsq_per_channel_axis
dequantizer   opsatenunbindr   _is_functional_tensorrepr_from_functional_tensorr   r!   r   stridedto_densegrad_fnRuntimeErrornamersplitrequires_gradr   namesr   )#inpr   is_plain_tensorprefixr   custom_contents_providedr   rS   tangent_default_complex_dtypehas_default_dtyper   r   indices_prefixindicesindices_strvalues_prefixr   
values_strcompressed_indices_methodplain_indices_methodcdimnamepdimnamecompressed_indices_prefixcompressed_indicescompressed_indices_strplain_indices_prefixplain_indicesplain_indices_strstrsgrad_fn_namer  string_reprr   r   s#                                    @@r   _str_internr2    sR   xx66s;,S/RR3i5<</R49@R@R3RO
}}!	I&&'q)[FH.d:$

 NN--99#>MD' 	EHH88::KK&

))+t{{/@/@@KK%
S%55;<
 {{99wwu~ 002ellB  

!

	'  ~~#eDJJ&7"889<,,>*T:">OOFS%556 OOHs4::67'.Nmmo,,.G#)'6C<O3OP'--/Q.y3uW]]/C+DDD,M\\^**,F"
(#m:L1LM
&,,.A-i#eFLL.A*BBB
 ,  	 
    
	 
 	=#eDJJ&7"889,,>*T:">OOFS%556 OOHs4::67'  5<<#<#<ell>V>V"W  5<<#<#<ell>V>V"W  5<<#<#<ell>V>V"W  5<<#<#<ell>V>V"W	?
 kk?;%'; {{u//1A1ABB%4"(%4"(*+HRaL>9I(J%!:4!@!G!G!I).&)4&5N1O(O*& "'')Q.'&)c,2237 + & '/rl^3C#D 06==?M$)!$/!6C0D,E#E%! ""$)W!YU=;N;N5O1P%PP!,M[[]))+F"
(#m:L1LM
||~"gi#eFLL.A*BBB
)() , '	'
 $$  ,    	 
  
		#eDJJ&7"889 OOHs4::67.T\\^1DDELLNe555||~!;!;;OOHs4<<>'::;OOMC0A0A0C,DDELLNe666||~!<!<<||~!G!GGOOHs4+D+D+F'GGHOOMC0N0N0P,QQROOGc$*A*A*C&DDE'$T__%6?J	'H :: ..224; D tfCJ		$	$T	*)%77=>
 	=<<:dJ7OOGc%

*;&<<=zzU44663tzz? :; ,"
zz|q 88:?OOGc%

2C.D$DE ::!8!8!::OOHs4::$>?/!%J!++OOGc%

2C.D$DE(OOHs4::$>?/{{emm3%0&%I
%0v%>
{{emm#	C$445 L!++  3G}--=("<<>00q9"=L)L>34			,-~~&-.(7),-nn	K $**+O";-q1I  ! !	!s   0x   xxc                   t         j                  j                  j                  |       }|dk7  sJ t         j                  j                  j	                  |       rt        j
                  |        t         j                  j                  j                  |       }t        |      }t        j                  |d      }t         j                  j                  j                  |       r<t         j                  j                  j                  |       }|dk7  sJ d| d| d| dS t         j                  j                  j                  |       r	d| d| dS t         j                  j                  j	                  |       r	d| d	| d
S t        d      )Nr>   z    zBatchedTensor(lvl=z, bdim=z	, value=
z
)zGradTrackingTensor(lvl=zFunctionalTensor(lvl=z
, value=\
r   z8We don't know how to print this, please file us an issue)r1   r   r   maybe_get_levelis_functionaltensor_syncget_unwrappedr  textwrapr   is_batchedtensormaybe_get_bdimis_gradtrackingtensor
ValueError)rT   r   levelrV   
value_reprindented_value_reprbdims          r   r   r     sR   HH//7EB;;xx..v6 	FHH--f5EeJ"//*g>xx++F3xx""11&9rzz wtfJ"# $	

 xx008%eWJ;N:OwW	
 xx..v6&ug\*QGG
O
PPr   c                :   t        j                         5  t         j                  j                  j	                         5  t         j
                  j                         }t        | |      cd d d        cd d d        S # 1 sw Y   nxY wd d d        y # 1 sw Y   y xY w)Nr   )r1   rG   utils_python_dispatch_disable_current_modesr   _DisableFuncTorchr2  )rS   r   guards      r   _strrG    st    	 B%++66MMO B**,4AB B B B B B Bs"   )B+A<)	B<B	BB)NNNNNNr^   )
contextlibr&   rc   r8  typingr   r   r   r1   r   	dataclassr   r!   r#   r   r(   contextmanagerr,   r9   r;   rl   r   r   r   r   r   r2  r   rG  r   r   r   <module>rL     s        & &   $ $ $ 

 F#R*$sCx. * ' '	S7 S7l
.'EZ""J,N^  C* )- Qh >B Q> #' Br   