
    Phl                        U d dl Z d dlmZ d dlmZ d dlmZ d dlZd dl	Z	d dl
mZ d dlmZmZmZ d dlmZmZ d dlmZmZ d d	lmZmZmZmZmZmZmZmZ d d
lm Z m!Z! d dl"m#Z# erd dl$Z%d Z&d Z'd Z(d Z)g  eddere%jT                  jV                  nd ee	jX                  de	jZ                  di      f ee	j\                  e	j^                  e	jX                         e       e&dd	       edder e#e%jT                  j`                        nd ee	j\                         ee	j\                        e& e ee	jb                   edd       e	j\                   edd       i            f e e jd                  d      dde	jf                  f      fdd
       eddere%jT                  jh                  nd ee	j\                         ee	j\                        e&dd        ed!d" ee	jX                  d#e	jZ                  d$i      fere%jT                  jj                  nd ee	j\                  e	j^                  e	jX                        dd ee jl                  d%d&d'(      f)       ed*d+ d,ere(nd ee	j\                  e	j^                  e	jX                         ee	j\                  e	j^                        dde' ee jl                  d-d.       ee jl                  d/d0      fd1  ed2 d34      5       ed6d7 ee	j\                  e	j^                  e	jX                        dddd e7d89      :       ed;d< ee	j\                        dd=d ee jl                  d>d?      f@       edAere%jT                  jp                  nddBdd ee	jZ                  dCe	jX                  dCi      f ee	j\                  e	j^                  e	jX                         e e jd                  dD      dde	jX                  e	jZ                  g      fd=e)E
       edFere%jT                  jr                  nddGdH ee	j\                        ddI       edJdKere%jT                  jt                  nd ee	j\                        ddL       edMere%jT                  jv                  nddN ee	jb                   ed dO      i      f ee	j\                        ddP       edQ ee	jb                  dRe	jx                  dSi      f ee	j\                        dT  e e jd                  dD      dd      fd=U       edV ee	jb                  de	jx                  dSi      f ee	j\                        ere%jT                  jz                  ndd=W       edX ee	jb                  de	jx                  dSi      f ee	j\                        ere%jT                  j|                  ndd=W       edY ee	jb                  de	jx                  dSi      f ee	j\                        ere%jT                  j~                  ndd=W       edZ ee	jb                  de	jx                  dSi      f ee	j\                        ere%jT                  j                  ndd=W       ed[ ee	j\                        d e e jd                  dD      d\       e e jd                  dD      d]       e e jd                  d^      d>d?      fdd=_       ed` ee	j\                        d e e jd                  dD      d\       e e jd                  dD      d]       e e jd                  d^      d>d?      fdd=_       eda ee	j\                        d e e jd                  db             e e jd                  dD      d\       e e jd                  dD      d]      fdd=_       edc ee	j\                        d e e jd                  db             e e jd                  dD      d\       e e jd                  dD      d]      fdd=_       edd ee	j\                        d e e jd                  dD      d\       e e jd                  dD      d]       ee jl                  d>d?      fdd=_       ede ee	j\                        d e e jd                  dD      d\       e e jd                  dD      d]       e e jd                  d^      d>d?      fdd=_       edf ee	j\                        d e e jd                  dD      d\       e e jd                  dD      d]       e e jd                  d^      d>d?      fdd=_       edg ee	j\                        d e e jd                  db             e e jd                  dD      d\       e e jd                  dD      d]       e e jd                  d^      d>d?      fdd=_       edh ee	jb                  dRe	jx                  dSi      f ee	j\                        ere%jT                  j                  ndd=W       edi ee	jb                  dRe	jx                  dSi      f ee	j\                        ere%jT                  j`                  ndd=W       edj ee	jb                  dRe	jx                  dSi      f ee	j\                        ere%jT                  j                  ndd=W       edk ee	jb                  dRe	jx                  dSi      f ee	j\                        ere%jT                  j                  ndd=W       edl ee	jb                   edRdR      e	jx                   edSdR      i      f ee	j\                        ere%jT                  j                  ndd=W       edm ee	jb                   edRdR      e	jx                   edSdR      i      f ee	j\                        ere%jT                  j                  ndd=W       edn ee	j\                        d e e jd                  db             e e jd                  dD      d\       e e jd                  dD      d]       e e jd                  d^      d>d?      fdd=_       edo ee	j\                        d e e jd                  db             e e jd                  dD      d\       e e jd                  dD      d]       e e jd                  d^      d>d?      fdd=_       edp ee	j\                        d e e jd                  db             e e jd                  dD      d\       e e jd                  dD      d]       e e jd                  d^      d>d?      fdd=_       edq ee	j\                        d e e jd                  db             e e jd                  dD      d\       e e jd                  dD      d]       e e jd                  d^      d>d?      fdd=_       edr ee	jb                   edRdR      e	jx                   edSdR      i      f ee	j\                        ds d=W      ZFee   eGdt<    e!dudVeF ee	jb                  de	jx                  dSi      fv       e!dwdXeF ee	jb                  de	jx                  dSi      fv       e!dxdAeF ee	jZ                  dCe	jX                  dCi      f e e jd                  dD      dde	jX                  e	jZ                  g      fy       e!dzdMeF ee	jb                   ed dO      i      fv       e!d{deF ee	jX                  de	jZ                  di      fv       e!d|deF e ee	jb                   edd       e	j\                   edd       i            f e e jd                  d      dde	jf                  f      fy       e!d}deF~       e!ddJeF~       e!dd!eF~       e!ddFeF~       e!ddreF ee	jb                   edRdR      e	jx                   edSdR      i      fv       e dd;deF ee jl                  d>d?      f      gZHee   eGd<   y)    N)partial)product)List)make_tensor)precisionOverridetoltoleranceOverride)all_types_andfloating_types)
TEST_SCIPYtorch_to_numpy_dtype_dict)BinaryUfuncInfoDecorateInfoLNumericsFilterOpInfoSSampleInputUnaryUfuncInfo)ElementwiseBinaryPythonRefInfoElementwiseUnaryPythonRefInfo)(np_unary_ufunc_integer_promotion_wrapperc              +   *  K   |xr' | j                   t        j                  j                  k(  }t	        t
        ||||      }t         |t        f             t         |d             |r#|s  |t        f      }d|d<   t        |       y y y w)N)dtypedevicerequires_gradexclude_zero r   )optorchspeciali0er   r   r   r   )op_infor   r   r   kwargsr   make_argts           }C:\Users\daisl\Desktop\realtime-object-detection\venv\Lib\site-packages\torch/testing/_internal/opinfo/definitions/special.pysample_inputs_i0_i1r(   +   s      DWZZ5==3D3D%DL#!H htn
%%
hrl
##\ aTN!!n *}s   BBc              +      K   t        t        |||      }t        t        fdf}d}t        ||      D ]  \  }}	t	         ||      |	f        y w)N)r   r   r   r   )               )args)r   r   r   r   r   )
r#   r   r   r   r$   r%   tensor_shapesnsshapens
             r'   sample_inputs_polygammar4   @   sU     F%}H VRLM	BM2.q(5/55 /s   AAc                     t         t        j                            }| j                  t        j
                  k(  rt        j
                  }t        j                  j                  ||       j                  |      S N)
r   r    get_default_dtyper   npdoublescipyr!   	polygammaastype)xr3   result_dtypes      r'   reference_polygammar?   K   sR     -U-D-D-FGLww"))yy==""1a(//==    c              +      K   | j                   \  }}|rd| j                  z   }t        t        ||||      }t	         |t
        f             t	         |d             y w)Nr   )r   r   lowr   r   )domain_domain_epsr   r   r   r   )r#   r   r   r   r$   rB   _r%   s           r'   sample_inputs_entrrF   Y   s]     ^^FC'%%%5SH htn
%%
hrl
##s   A!A#zspecial.i0especial_i0eg333333?T)	aten_nameref
decoratorsdtypesbackward_dtypessample_inputs_funcsupports_forward_adsupports_fwgrad_bwgradz
special.i1
special_i1g-C6?)atolrtolzIncorrect result!TestUnaryUfuncstest_reference_numerics_large)rK   )	rH   rI   rK   dtypesIfCUDArM   rJ   skipsrO   rN   zspecial.i1especial_i1e)rH   rI   rK   rU   rM   rN   rO   zspecial.ndtrspecial_ndtrg{Gzt?gMb@?TestFwdGradientstest_fn_fwgrad_bwgradmeta)device_type)rH   rJ   rI   rK   rN   rO   rV   zspecial.polygammac                 D    t        j                  j                  || fi |S r6   )r    r!   r;   )r=   r3   r$   s      r'   <lambda>r^      s    %--"9"9!Q"I&"Ir@   special_polygamma_n_0TestJittest_variant_consistency_jitTestNormalizeOperators"test_normalize_operator_exhaustivec                     ddiddifS )Nr3   r   r   )r   r   inputs      r'   r^   r^      s    S!HsAh3Gr@   c                     | dk  S )N皙?r   r=   s    r'   r^   r^      s    Cr@   r*   )	conditionsafe_val)r   variant_test_namerI   rK   rU   rN   rO   rM   rV   sample_kwargsreference_numerics_filterzspecial.xlog1pyspecial_xlog1pygGz)rB   )rH   rK   promotes_int_to_floatrN   rO   supports_one_python_scalarrhs_make_tensor_kwargszspecial.zetaspecial_zetaF
TestCommontest_compare_cpu)rH   rK   ro   supports_autogradrp   rV   zspecial.entrspecial_entrrg   zSkipped!)	rI   rH   rN   rO   rJ   rK   rV   supports_inplace_autogradrM   zspecial.ndtri)r   r*   special_ndtri)rI   rC   rH   rK   rN   rO   zspecial.log_ndtrspecial_log_ndtr)rH   rI   rK   rN   rO   zspecial.erfcxspecial_erfcxg>)rI   rH   rJ   rK   rN   rO   zspecial.airy_aigMbP?gh㈵>c                 V    t         r"t        j                  j                  |       d   S d S Nr   )r   r:   r!   airyrh   s    r'   r^   r^   2  s"    *emm((+A.F$Fr@   )rJ   rK   rI   rV   ru   zspecial.bessel_j0)rJ   rK   rI   ru   zspecial.bessel_j1zspecial.bessel_y0zspecial.bessel_y1zspecial.chebyshev_polynomial_tTestCudaFuserOpInfoTestNNCOpInfoz/testing takes an unreasonably long time, #79528)rK   ro   rV   rp   ru   zspecial.chebyshev_polynomial_uzspecial.chebyshev_polynomial_vz:Skipping - testing takes an unreasonably long time, #79528zspecial.chebyshev_polynomial_wzspecial.hermite_polynomial_hzspecial.hermite_polynomial_hezspecial.laguerre_polynomial_lzspecial.legendre_polynomial_pzspecial.modified_bessel_i0zspecial.modified_bessel_i1zspecial.modified_bessel_k0zspecial.modified_bessel_k1z!special.scaled_modified_bessel_k0z!special.scaled_modified_bessel_k1z&special.shifted_chebyshev_polynomial_tz&special.shifted_chebyshev_polynomial_uz&special.shifted_chebyshev_polynomial_vz&special.shifted_chebyshev_polynomial_wzspecial.spherical_bessel_j0c                 R    t         r t        j                  j                  d|       S d S r|   )r   r:   r!   spherical_jnrh   s    r'   r^   r^     s    *emm00A6N$Nr@   op_dbz_refs.special.bessel_j0)torch_opinfo_namer   rJ   z_refs.special.bessel_j1z_refs.special.entr)r   r   rJ   rV   z_refs.special.erfcxz_refs.special.i0ez_refs.special.i1z_refs.special.i1e)r   r   z_refs.special.log_ndtrz_refs.special.ndtrz_refs.special.ndtriz!_refs.special.spherical_bessel_j0z_refs.special.zeta)r   rp   r   rV   python_ref_db)Iunittest	functoolsr   	itertoolsr   typingr   numpyr8   r    torch.testingr   *torch.testing._internal.common_device_typer   r   r	   $torch.testing._internal.common_dtyper
   r   $torch.testing._internal.common_utilsr   r   #torch.testing._internal.opinfo.corer   r   r   r   r   r   r   r   #torch.testing._internal.opinfo.refsr   r   $torch.testing._internal.opinfo.utilsr   scipy.specialr:   r(   r4   r?   rF   r!   r"   bfloat16float16boolhalfi1float32skipint8i1endtrexpectedFailuredictentrndtrilog_ndtrerfcxfloat64j0j1y0y1i0k0k1k0ek1er   __annotations__r   r   r@   r'   <module>r      s          % 
 O V	 	 	
 *6>
$F	!+EMM%u~~tU]]D&QRTUZZU^^D&(. #
F	  5U]]5E5EFUZZ("5::..!s1'=

CT$:	
 12!/

}	
  $ 9F	T !+EMMUZZ("5::.. #	UF	h  %u~~tU]]D&QRT",EMM$UZZU^^D # (("'"	
iF	P I1#-4UZZU^^D"5::uzz: #2 (()5S (((4

 H"0'!#
/QF	F #UZZU^^D" ##'#
GF	\  UZZ("#' 11<AST
]F	\ ",EMM$  #%u}}dENND&QRTUZZU^^Dj)!/6	
 #(-#]F	B #-EMM4!UZZ( #CF	T $&0EMM""dUZZ( #UF	d #-EMM4!MM3AD#9
 UZZ( #eF	B MM5MM5
 UZZ(Fj)!/
  'CF	l MM5MM5
 UZZ( *EMMmF	H MM5MM5
 UZZ( *EMMIF	d MM5MM5
 UZZ( *EMMeF	@ MM5MM5
 UZZ( *EMMAF	\ (UZZ("z24IJz2ODOP"
 $(]F	| (UZZ("z24IJz2ODOP"
 $(}F	\	 (UZZ("P
 z24IJz2OD
 $(]	F	|	 (UZZ("P
 z24IJz2OD
 $(}	F	\
 &UZZ("z24IJz2OD11<AST	
 $(]
F	v
 'UZZ("z24IJz2ODOP"
 $(w
F	V 'UZZ("z24IJz2ODOP"
 $(WF	v 'UZZ("P
 z24IJz2ODOP"
 $('wF	` $MM5MM5
 UZZ( *EMMaF	| $MM5MM5
 UZZ( *EMM}F	X $MM5MM5
 UZZ( *EMMYF	t $MM5MM5
 UZZ( *EMMuF	P +MM3E#>MM3E#>
 UZZ(!+EMMQF	l +MM3E#>MM3E#>
 UZZ(!+EMMmF	H 0UZZ("P
 z24IJz2ODOP"
 $('IF	r 0UZZ("P
 z24IJz2ODOP"
 $('sF	\ 0UZZ("P
 z24IJz2ODOP"
 $(']F	F 0UZZ("P
 z24IJz2ODOP"
 $('GF	p %MM3E#>MM3E#>
 UZZ(NqF	tF| F	X "!-MM5MM5
	 "!-MM5MM5
	 "(%u}}dENND&QRTj)!/6	
 ")MM3AD#9
	 "'%u~~tU]]D&QRT	 "&!s1'=

CT$:	
 12!/

}	
. "'
 " ,
 "(
 ")
 "+7MM3E#>MM3E#>
	  #(#' 11<AST
	sCtF| Cr@   