o
    iP                     @   s   d dl Zd dlZd dlmZ zd dlmZ W n ey!   dZY nw dZ	i Z
g Zdd Zdd Zdd Zg d	ZerMeD ]ZeeeZeeeZee
e< q<dS dS )
    Nznumpy.scipy.linalgc                 C   s\   |rz	dd | D }W n t y   t Y S w dd | D }tdd t|| D s,tS |S )Nc                 S   s0   g | ]}|j r|jtju rt|jn|jqS  )	coercibletypenpndarraycupyasarrayvalue.0dr   r   W/home/ubuntu/veenaModal/venv/lib/python3.10/site-packages/cupyx/scipy/linalg/_uarray.py
<listcomp>   s
    z"__ua_convert__.<locals>.<listcomp>c                 S   s   g | ]}|j qS r   )r	   r
   r   r   r   r      s    c                 s   s,    | ]\}}|j tjupt|tjV  qd S N)r   r   r   
isinstancer   )r   rr   r   r   r   	<genexpr>   s     z!__ua_convert__.<locals>.<genexpr>)	TypeErrorNotImplementedallzip)dispatchablescoercereplacedr   r   r   __ua_convert__   s   
r   c                 C   s&   t | d }|d u rtS ||i |S r   )_implementedgetr   )methodargskwargsfnr   r   r   __ua_function__%   s   r!   c                    s    fdd}|S )zBDecorator adds function to the dictionary of implemented functionsc                    s.   t ott  d }|r| t|< | S t  | S r   )_scipy_linalggetattrr   	_notfoundappend)func
scipy_funcscipy_func_namer   r   inner.   s   
zimplements.<locals>.innerr   )r)   r*   r   r(   r   
implements,   s   	r+   )eigheigvalshcholeskyqrsvdnormdetsolvelstsqinvpinv)numpyr   r   cupy.linalglinalg
_cp_linalgscipy.linalgr"   ImportError__ua_domain__r   r$   r   r!   r+   _cp_linalg_functions	func_namer#   cp_funcr'   r   r   r   r   <module>   s,    


