
    Opf                     H    d Z ddlZddlmZ g dZed             Zd Zd ZdS )	zK
Required functions for optimized contractions of numpy arrays using cupy.
    N   )to_backend_cache_wrap)to_cupybuild_expressionevaluate_constantsc                 l    dd l }t          | t          j                  r|                    |           S | S )Nr   )cupy
isinstancenpndarrayasarray)arrayr	   s     X/var/www/html/nettyfy-visnx/env/lib/python3.11/site-packages/opt_einsum/backends/cupy.pyr   r      s6    KKK%$$ #||E"""L    c                     fd}|S )z<Build a cupy function based on ``arrays`` and ``expr``.
    c                  j                         d | D             d                                          S )Nc                 ,    g | ]}t          |          S  r   .0xs     r   
<listcomp>z;build_expression.<locals>.cupy_contract.<locals>.<listcomp>   s    :::awqzz:::r   r	   )backend)	_contractget)arraysexprs    r   cupy_contractz'build_expression.<locals>.cupy_contract   s4    ~~::6:::F~KKOOQQQr   r   )_r   r   s    ` r   r   r      s)    R R R R R r   c                 (     |d | D             dddS )zcConvert constant arguments to cupy arrays, and perform any possible
    constant contractions.
    c                 ,    g | ]}t          |          S r   r   r   s     r   r   z&evaluate_constants.<locals>.<listcomp>#   s    333'!**333r   r	   T)r   r   r   )const_arraysr   s     r   r   r      s+     433l333VX\]]]]r   )	__doc__numpyr   sharingr   __all__r   r   r   r   r   r   <module>r(      s         + + + + + +
?
?
?     ^ ^ ^ ^ ^r   