Ë
    ~\;j—  ã                   ó@   — d Z ddlZddlmZ g d¢Zed„ «       Zd„ Zd„ Zy)	zK
Required functions for optimized contractions of numpy arrays using cupy.
é    Né   )Úto_backend_cache_wrap)Úto_cupyÚbuild_expressionÚevaluate_constantsc                 ód   — dd l }t        | t        j                  «      r|j	                  | «      S | S )Nr   )ÚcupyÚ
isinstanceÚnpÚndarrayÚasarray)Úarrayr	   s     úaG:\00. PROJECTS\API\Inventory\templateJSON\kerjaOCR\Lib\site-packages\opt_einsum/backends/cupy.pyr   r      s'   € ãä�%œŸ™Ô$Ø�|‰|˜EÓ"Ð"à€Ló    c                 ó   ‡— ˆfd„}|S )z<Build a cupy function based on ``arrays`` and ``expr``.
    c                  ó~   •— ‰j                  | D �cg c]  }t        |«      ‘Œ c}d¬«      j                  «       S c c}w )Nr	   )Úbackend)Ú	_contractr   Úget)ÚarraysÚxÚexprs     €r   Úcupy_contractz'build_expression.<locals>.cupy_contract   s5   ø€ Ø�~‰~±6Ó:±6¨aœw q�z°6Ñ:ÀFˆ~ÓK×OÑOÓQÐQùÒ:s   ‘:© )Ú_r   r   s    ` r   r   r      s   ø€ ôRð Ðr   c                 óL   —  || D �cg c]  }t        |«      ‘Œ c}dddœŽS c c}w )zcConvert constant arguments to cupy arrays, and perform any possible
    constant contractions.
    r	   T)r   r   )r   )Úconst_arraysr   r   s      r   r   r      s*   € ñ ¡lÓ3¡l ”'˜!•* lÑ3¸VÐX\Ò]Ð]ùÒ3s   ‡!)	Ú__doc__Únumpyr   Úsharingr   Ú__all__r   r   r   r   r   r   Ú<module>r"      s6   ðñó å +â
?€ð ñó ðòó^r   