
    Ph                        d dl Z d dlmZmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZmZmZ d dlmZ 	 d dlZdZe j(                  j+                  e d
      d        Ze j(                  j/                  dg d      e j(                  j+                  e d
      d               Ze j(                  j3                  d      ee j(                  j/                  d e ej6                                     e j(                  j/                  dddg      e j(                  j/                  ddgdz   e       gdz  dgdz  g dg      d                                    Zed        Zy# e$ r d	ZY -w xY w)    N)get_array_special_funcarray_special_func_map)array_api_compatible)special)xp_assert_close)is_jaxis_torchSCIPY_DEVICE)numpyTFz `array_api_strict` not installed)reasonc                      t         } t        d| d      }g d} || j                  |            }| j                  t        j                  t        j                  |                  }t        |||        y )Nndtr   xpn_array_args)r         r   )array_api_strictr   asarrayr   r   npr   )r   fxresrefs        C:\Users\daisl\Desktop\realtime-object-detection\venv\Lib\site-packages\scipy/special/tests/test_support_alternative_backends.py$test_dispatch_to_unrecognize_libraryr      sY     
Bv"1=AA
BJJqM
C
**W\\"**Q-0
1CC$    dtype)float32float64int64c                    t         }t        d|d      }t        t        |       }t        ||       }g dg d}}|j	                  ||      |j	                  ||      }} |||      }	t        j                  ||      t        j                  ||      }}
t        j                  |
d   |d         }t        j                  t        j                  dd|g|j                        }t        |	|j	                  |      |	       y )
Nrel_entrr   r   )r   r   r   )r   r   r   r   r    r&   r   r   )
r   r   getattrr   r   r   r%   infr    r   )r    r   r   dtype_npdtype_xpr   yx_xpy_xpr   x_npy_npr   s                r   test_rel_entr_genericr1      s     
BzbqAAr5!Hr5!H,qAAX.

1H
0M$D
D$-CAX.

1H0M$D


48T"X
.C
**bffaC(		
:CCCR0r      f_name_n_argsr!   r"   shapes)r      
   )r6   )   r   )   r   r   )   r   r   r   c                    |\  }}t         dk7  r(t        |       r|dv rt        j                  d| d       |d | }t	        t
        |      }t	        t        |      }t	        | |      }t        j                  j                  d      }	|D 
cg c]  }
|	j                  |
|       }}
t        |       r|dk(  s|dk(  r6t        j                  |d	         |d	<   t        j                  |d
         |d
<   |D cg c]  }| j                  |d   |       }} || }| j                   || |      }t        j                  |      j                  }t        ||d|z         y c c}
w c c}w )Ncpu>   stdtrbetaincbetaincc`zP` does not have an array-agnostic implementation and cannot delegate to PyTorch.l   OsFm)sizer    	gammainccchdtrcr   r    r'   r7   )atol)r
   r	   pytestskipr(   r   r   randomdefault_rngstandard_normalr   absr   finfoepsr   )r   r3   r    r4   f_namen_argsr   r*   r+   rngshapeargs_npargargs_xpr   r   rM   s                    r   !test_support_alternative_backendsrU   1   sc    #NFFRL66ax  6 7 	8 GV_F Ar5!Hr5!H ))

 2
3CLRSF5s""X">FGSr
v,!VVGAJ'
VVGAJ'
>EFgsrzz#b'z2gGF
W+C
**Q[*
1C
((8

 
 CC2c6* T Gs   E!6E&c                 `   t        j                  t         j                   dddt         j                  g      }|j                  dd      }t	        j
                  ||      }t	        j
                  | j                  |      | j                  |            }t        || j                  |             y )Ng      g        g      ?r&   r   )r   r   r)   reshaper   chdtrr   )r   r   vr   r   s        r   test_chdtr_gh21311rZ   h   sy    
 	

RVVGS"b"&&12A			"aA
--1
C
--

1rzz!}
5CCC)r   )rF   +scipy.special._support_alternative_backendsr   r   scipy.conftestr   scipyr   scipy._lib._array_api_no_0dr   scipy._lib._array_apir   r	   r
   scipy._lib.array_api_compatr   r   r   HAVE_ARRAY_API_STRICTImportErrormarkskipifr   parametrizer1   	fail_slowreverseditemstuplerU   rZ   rD   r   r   <module>rj      s   Q /  7 @ @ 3" 
 --=  ?%?% "AB--=  ?1? C1" q (3O3I3O3O3Q*RS9i"89TF1HuwikE719$O$Q R++R : T	  ++\ * *w  "!"s   E E$#E$