
    Ǆg                        d dl Z d dlmZ d dlmZ d dlmZ d dlmZ d dl	m
Z
 g dZdede j                  fd	Z ed
e j                        Z ede j                         Z ede j"                        Z ede j&                        Z ede j(                        Z ede j*                        Z ede j.                        Z ede j2                        Z ede j4                        Z ede j6                        Z ede j8                        Z ede j:                        Z ede j<                        Z ee j>                  j@                  jB                  jD                         ed      dededefd              Z" ee j>                  j@                  jB                  jF                         ed      dededefd              Z#y)     N)register_decomposition)TensorLikeType)out_wrapper)_broadcast_shapes)bfloat16boolbytecdoublecfloatchalfchardoublefloathalfintlongshortcomplexpolarnamedtypec                 z    t         j                  fdt        dt         j                  dt        ffd}| |_        |S )Nselfmemory_formatreturnc                 *    | j                  |      S )N)r   )to)r   r   r   s     `/home/mcse/projects/flask_80/flask-venv/lib/python3.12/site-packages/torch/_refs/_conversions.pyfnz#_make_conversion_method.<locals>.fn)   s     wwuMw::    )torchpreserve_formatr   r   __name__)r   r   r   s    ` r   _make_conversion_methodr$   (   s=    CHCXCX;;-2-@-@;	;
 BKIr    r   r   r	   r
   r   r   r   r   r   r   r   r   r   T)exact_dtyperealimagr   c                 "    t         j                  t         j                  t         j                  f}t        j                   j
                  |v xr j
                  |v  fd       t        j                   j
                  j
                  k(   fd       t        j                   j
                        }t         j                  j                        } j                  || j                   j                        } |_        |_        |S )Nc                  <    dj                    d j                    S )NzAExpected both inputs to be Half, Float or Double tensors but got z and r   r'   r&   s   r   <lambda>zcomplex.<locals>.<lambda>U   s#    Ozzl%

|- r    c                  >    dj                    d j                    dS )NzExpected object of scalar type z but got scalar type z for second argumentr*   r+   s   r   r,   zcomplex.<locals>.<lambda>\   s)    -djj\ :::,&:< r    )r   layoutdevice)r!   float32float64float16_checkr   utilscorresponding_complex_dtyper   shape	new_emptyr.   r/   r&   r'   )r&   r'   allowed_dtypesresult_dtypecommon_shaperesults   ``    r   r   r   M   s    
 mmU]]EMMBN	LL

n$E~)E	
 
LL

djj 	
 44TZZ@L$TZZ<L^^{{{{	  F FKFKMr    absanglec                     t        j                  | |      }| t        j                  |      z  |_        | t        j                  |      z  |_        |S )N)r!   r   cosr&   sinr'   )r<   r=   r;   s      r   r   r   o   sC    
 ]]3&F		%((FK		%((FKMr    )$r!   torch._prims_common_prims_commonr4   torch._decompr   r   torch._prims_common.wrappersr   torch._refsr   __all__strr   r$   r   r   uint8r	   r
   r   	complex32r   int8r   r   r   r   r   r   r   _opsopsatenr   r    r    r   <module>rO      s    # 1 . 4 )*# ekk  #:u~~>vuzz2vu{{3
!)U]]
;	 5<<	89vuzz2	 5<<	85vuzz2eUYY/vuzz25 

++334 .  >   5< 

++112 ~ n    3r    