
    {-jQ@                        d dl mZ d dlZd dlZd dlZd dlmZmZ ddl	m
Z
 g Z G d d          Z e            Z	 	 	 	 	 dd dZd Zd!dZd Zd"dZd#dZd Zd Zd#dZd#dZd#dZd#dZdS )$    )annotationsN)
check_typeconvert_dtype   )corec                  "    e Zd ZdZdZdZdZdZdS )PrintOptions   i     P   FN)__name__
__module____qualname__	precision	threshold	edgeitems	linewidthsci_mode     W/var/www/html/banglarbhumi/venv/lib/python3.11/site-packages/paddle/tensor/to_string.pyr	   r	      s'        IIIIHHHr   r	   r   
int | Noner   r   r   bool | Noner   returnNonec                   i }| (t          | dt          d           | t          _        | |d<   |(t          |dt          d           |t          _        ||d<   |(t          |dt          d           |t          _        ||d<   |(t          |dt          d           |t          _        ||d<   |(t          |dt          d           |t          _        ||d<   t          j
        di | dS )	a3  Set the printing options for Tensor.

    Args:
        precision (int|None, optional): Number of digits of the floating number, default 8.
        threshold (int|None, optional): Total number of elements printed, default 1000.
        edgeitems (int|None, optional): Number of elements in summary at the beginning and ending of each dimension, default 3.
        sci_mode (bool|None, optional): Format the floating number with scientific notation or not, default False.
        linewidth (int|None, optional): Number of characters each line, default 80.


    Returns:
        None.

    Examples:
        .. code-block:: python

            >>> import paddle

            >>> paddle.seed(10)
            >>> a = paddle.rand([10, 20])
            >>> paddle.set_printoptions(4, 100, 3)
            >>> print(a)
            Tensor(shape=[10, 20], dtype=float32, place=Place(cpu), stop_gradient=True,
            [[0.2727, 0.5489, 0.8655, ..., 0.2916, 0.8525, 0.9000],
             [0.3806, 0.8996, 0.0928, ..., 0.9535, 0.8378, 0.6409],
             [0.1484, 0.4038, 0.8294, ..., 0.0148, 0.6520, 0.4250],
             ...,
             [0.3426, 0.1909, 0.7240, ..., 0.4218, 0.2676, 0.5679],
             [0.5561, 0.2081, 0.0676, ..., 0.9778, 0.3302, 0.9559],
             [0.2665, 0.8483, 0.5389, ..., 0.4956, 0.6862, 0.9178]])
    Nr   set_printoptionsr   r   r   r   r   )r   intDEFAULT_PRINT_OPTIONSr   r   r   r   boolr   r   r   )r   r   r   r   r   kwargss         r   r   r   (   s   L F9kC2DEEE*3''{9kC2DEEE*3''{9kC2DEEE*3''{9kC2DEEE*3''{8Z$1CDDD)1&%z##F#####r   c                f   t           j        }t          j        | j                  dk    rt          j        g           S t          | j                  dk    r| S t          | j                  dk    r?| j        d         d|z  k    r)t          j        | d |         | d|z  d          g          S | S | j        d         d|z  k    rRt          | d |                   }t          | d|z  d                    }t          j	        d ||z   D                       S t          j	        d | D                       S )Nr      r   c                ,    g | ]}t          |          S r   _to_summary.0xs     r   
<listcomp>z_to_summary.<locals>.<listcomp>z   s    CCC[^^CCCr   c                ,    g | ]}t          |          S r   r&   r(   s     r   r+   z_to_summary.<locals>.<listcomp>|   s    999[^^999r   )
r   r   npprodshapearraylenconcatenateliststack)varr   beginends       r   r'   r'   g   s,   %/I 
wsyQx||
39~~
	SY1		9Q<!i-''>3z	z?Ci8J8J4K"LMMMJ 9Q<!i-''ZiZ))EsBN--.//C8CCeckCCCDDD899S999:::r   Fc                t   | j         t          j        k    s*| j         t          j        k    s| j         t          j        k    rQt
          j        r| dt
          j         d}nt          j        |           | k    r| dd}n| dt
          j         d}n| j         t          j	        k    s| j         t          j
        k    rt          j        |           }t          j        |           }t
          j        }t
          j        r-|dk    rd|d| dd|d| dd}nCd|d| d|d| dd}n0|dk    rd|d| dd|d| dd}nd|d| d|d| dd}n|  }|t          |          k    rM|r6| dk     r|                    |          S d	|                    |d
z
            z   S |                    |          S |S )N.ez.0ffr   (+zj) r#   )dtyper-   float32float64float16r   r   r   ceil	complex64
complex128realimagr1   ljust)np_var	max_widthsigneditem_strreimprecs          r   _format_itemrP      s4   
""<2:%%<2:%% ) 	G F#8#BFFFFHHWV__&& ''''HH F#8#BFFFFHH		%	%)F)FWV__WV__$. ) 		<Qww<r<D<<<<<R<$<<<<<<;r;D;;;;B;;;;;;;Qww<r<D<<<<<R<$<<<<<<;r;D;;;;B;;;;;;;;3x==   	-zz~~i000X^^IM::::>>),,,r   c                    d}d}t          |                                           D ]8}|s|dk     rd}t          |          }t          |t	          |                    }9||fS )Nr   FT)r3   flattenrP   maxr1   )r5   rJ   rK   itemrL   s        r   _get_max_widthrU      so    IFS[[]]## 2 2 	TAXXF%%	3x==11		fr   c                    t           j        }t           j        }t           j                  dk    rt                     S t           j                  dk    rdz   }t          d|z
  |z            rn j        d         d|z  k    rZ fdt          |          D             dgz    fdt           j        d         |z
   j        d                   D             z   n( fdt           j        d                   D             fdt          dt                              D             }d	d
dz   z  z                       d |D                       }	d|	z   dz   S rr j        d         d|z  k    r^ fdt          |          D             dgz    fdt           j        d         |z
   j        d                   D             z   }
n* fdt           j        d                   D             }
ddt           j                  dz
  z  z   d
dz   z  z                       |
          }	d|	z   dz   S )a\  
    Format a tensor

    Args:
        var(Tensor): The tensor to be formatted.
        summary(bool): Do summary or not. If true, some elements will not be printed, and be replaced with "...".
        indent(int): The indent of each line.
        max_width(int): The max width of each elements in var.
        signed(bool): Print +/- or not.
    r   r#   r   c                >    g | ]}t          |                   S r   rP   r)   irJ   rK   r5   s     r   r+   z"_format_tensor.<locals>.<listcomp>   s9        !QF;;  r   z...c                >    g | ]}t          |                   S r   rX   rY   s     r   r+   z"_format_tensor.<locals>.<listcomp>   s9        !QF;;  r   c                >    g | ]}t          |                   S r   rX   rY   s     r   r+   z"_format_tensor.<locals>.<listcomp>   s9        SVY77  r   c                *    g | ]}||z            S r   r   )r)   rZ   itemsitems_per_lines     r   r+   z"_format_tensor.<locals>.<listcomp>   s8     
 
 
 !a.(()
 
 
r   z,
r>   c                8    g | ]}d                      |          S )z, )join)r)   lines     r   r+   z"_format_tensor.<locals>.<listcomp>   s"    ///TYYt__///r   []c           	     H    g | ]}t          |         d z             S r#   _format_tensorr)   rZ   indentrJ   rK   summaryr5   s     r   r+   z"_format_tensor.<locals>.<listcomp>   sH         #A!Y   r   c           	     H    g | ]}t          |         d z             S rf   rg   ri   s     r   r+   z"_format_tensor.<locals>.<listcomp>   sH         #A!Y   r   c           	     H    g | ]}t          |         d z             S rf   rg   ri   s     r   r+   z"_format_tensor.<locals>.<listcomp>   sA        s1vw
IvNN  r   ,
)	r   r   r   r1   r/   rP   rS   rangera   )r5   rk   rj   rJ   rK   r   r   item_lengthlinessvarsr^   r_   s   `````      @@r   rh   rh      sT    &/I%/I
39~~CF333	SY1		!mQV!3 CDD 	sy|a)m33     "9--   '	
     "39Q<)#;SYq\JJ   E     sy|,,  E
 
 
 
 
1c%jj.99
 
 
 SFQJ''--/////
 
 Qw}  	sy|a)m33        #9--	   '        #39Q<)#;SYq\JJ	   D        sy|,,  D
 43sy>>A-..
1CCII$OOQw}r   Tensorc           	     &   t          |          dz   }t          | j                  }| j        t          j        k    rd}d}|                                                                 }|                                sdS | j        t          j        k    rL| j        	                                st          j
                                         |                     d          } |                     d          }t          | j                  dk    rd}nd}| j        D ]}||z  }d}	|t          j        k    rd}	t#          t%          |                    \  }
}t'          ||	||
|	          }|                    || j        || j        | j        d
|z  |          S )Nr#   bfloat16d{prefix}(shape={shape}, dtype={dtype}, place={place}, stop_gradient={stop_gradient},
{indent}{data})Tensor(Not initialized)r@   Fr   Trj   rJ   rK   r>   prefixr/   r?   placestop_gradientrj   data)r1   r   r?   paddlerw   value
get_tensor_is_initializedr}   is_cpu_placedevicesynchronizeastypenumpyr/   r   r   rU   r'   rh   format
_place_strr~   )r5   r|   rj   r?   	_templatetensorrI   sizedimrk   rJ   rK   r   s                r   	to_stringr      s   [[1_F#)$$E
yFO##wIYY[[##%%F!!## )((
yFO##y%%'' 	(M%%'''jj##YYuF
39~~9 	 	CCKDDG#---&{6':':;;Iv)F  D in'V|    r   c                    t          j        dd          }|                     d          |z                      d          S )Nl      uint32r?   r@   )r-   r0   view)	np_tensormasks     r   mask_xpu_bf16_tensorr   .  s;    8Jh///DNN8$$t+11)<<<r   c                   | j         }|t          j        t          j        t          j        hv rL| j                                        st          j                                         | 	                    d          } | 
                    d          }t          j                    rMt          j        d          9|t          j        k    s|t          j        j        j        k    rt%          |          }t'          j        | j        d          t,          j        k    }t1          t3          |                    \  }}t5          |||||          }|S )Nr@   FXPU_PADDLE_MASK_BF16_PRINTint64r   rz   )r?   r   rw   float8_e4m3fnfloat8_e5m2r}   r   r   r   r   r   is_compiled_with_xpuosgetenvr   VarDescVarTypeBF16r   r-   r.   r/   r   r   rU   r'   rh   )r   rj   r?   r   rk   rJ   rK   r   s           r   _format_dense_tensorr   4  s0   LE  
 |((** 	(M%%'''y)) U##I#%%4I233?fo%%$,2F2K)K)K(33	 	G,,,/D/NN  '{9'='=>>Iv76Yv  D Kr   c                   t          |          dz   }|                                 r`d}t          | |          }|                    |t	          | j                  || j        | j        d|z  ||                                           S d S )Nr#   zq{prefix}(shape={shape}, dtype={dtype}, place={place}, stop_gradient={stop_gradient}, rows={rows},
{indent}{data})r>   )r|   r/   r?   r}   r~   rj   r   rows)	r1   is_selected_rowsr   r   r3   r/   r   r~   r   )r   r?   r|   rj   r   r   s         r   selected_rows_tensor_to_stringr   T  s    [[1_F   
 I	#FF33v|$$# .<   	
 	
 		

 
r   c                   t          |          dz   }|                                 rd}|                                 }|                                 }dt	          ||t          d          z             z   }dt	          ||t          d          z             z   }|                    |t          | j                  | j        | j	        | j
        d|z  ||          S d}|                                 }|                                 }	|                                 }
dt	          ||t          d          z             z   }d	t	          |	|t          d	          z             z   }dt	          |
|t          d          z             z   }|                    |t          | j                  | j        | j	        | j
        d|z  |||
	  	        S )Nr#   z{{prefix}(shape={shape}, dtype={dtype}, place={place}, stop_gradient={stop_gradient}, 
{indent}{indices}, 
{indent}{values})zindices=zvalues=r>   )r|   r/   r?   r}   r~   rj   indicesvaluesz{prefix}(shape={shape}, dtype={dtype}, place={place}, stop_gradient={stop_gradient}, 
{indent}{crows}, 
{indent}{cols}, 
{indent}{values})zcrows=zcols=)	r|   r/   r?   r}   r~   rj   crowscolsr   )r1   is_sparse_coor   r   r   r   r3   r/   r?   r   r~   r   r   )r   r|   rj   r   indices_tensorvalues_tensorindices_datavalues_datacrows_tensorcols_tensorelements_tensor
crows_data	cols_datas                r   sparse_tensor_to_stringr   e  s   [[1_F -
 T	))!$8FS__4%
 %
 
  "66C	NN2#
 #
 
 v|$$,# .<    	
 	
 		
 d	||~~kkmm --// 4&3x==0!
 !
 

 2#g,,.
 
 
	  "6Vc)nn4#
 #
 
 v|$$,# .<   

 

 
	
r   c                  	 t          |          dz   }t          | j                  }| j        t          j        k    rd}|                                 sDd}|                    |t          | j                  || j	        | j
        | j        | j                  S t          |          dz   }ddlm	m} 	fdt!          | j        j                  D             } || | j        |          }t%          ||          }d}|                    |t          | j                  || j	        | j
        | j        | j        d	|z  |
	  	        S )Nr#   rw   z{prefix}(shape={shape}, dtype={dtype}, place={place}, stop_gradient={stop_gradient}, process_mesh={process_mesh}, placements={placements}, GlobalDenseTensor Not initialized))r|   r/   r?   r}   r~   process_mesh
placementsr   )	Replicatereshardc                $    g | ]}             S r   r   )r)   _r   s     r   r+   z)dist_tensor_to_string.<locals>.<listcomp>  s    KKKaiikkKKKr   z{prefix}(shape={shape}, dtype={dtype}, place={place}, stop_gradient={stop_gradient}, process_mesh={process_mesh}, placements={placements}, GlobalDenseTensor=
{indent}{data})r>   )	r|   r/   r?   r}   r~   r   r   rj   r   )r1   r   r?   r   rw    _is_dense_tensor_hold_allocationr   r3   r/   r   r~   r   _placements_strpaddle.distributedr   r   rp   ndimr   )
r   r|   rj   r?   r   r   r   global_tensorr   r   s
            @r   dist_tensor_to_stringr     sl    [[1_F&,''E|v&&2244 !
 D	v|$$# .,-   
 
 	
 Vq 	:9999999KKKK51D1I+J+JKKK
(;ZHH#M6:: E	v|$$# .,-<   

 

 
	
r   c           	        t          |          dz   }t          | j                  }| j        t          j        k    rd}d}|                                 rt          | |          S |                                 rt          | ||          S | 	                                rt          | |          S |                                 sdS t          | |          }|                    |t          | j                  || j        | j        d|z  |          S )Nr#   rw   rx   ry   r>   r{   )r1   r   r?   r   rw   	is_sparser   r   r   is_distr   r   r   r   r3   r/   r   r~   )r   r|   rj   r?   r   r   s         r   tensor_to_stringr     s   [[1_F&,''E|v&&wI 7&vv666   E-feVDDD~~ 5$VV4442244 
((#FF33v|$$# .<   
 
 	
r   )NNNNN)r   r   r   r   r   r   r   r   r   r   r   r   )r   F)r   r   F)ru   )
__future__r   r   r   r-   r   paddle.base.data_feederr   r   	frameworkr   __all__r	   r   r   r'   rP   rU   rh   r   r   r   r   r   r   r   r   r   r   <module>r      s   # " " " " " 				      = = = = = = = =      
        %  !    <$ <$ <$ <$ <$~; ; ;0& & & &R
 
 
G G G GT, , , ,^= = =  @
 
 
 
"/
 /
 /
 /
d)
 )
 )
 )
X
 
 
 
 
 
r   