Ë
    ~\;j  ã                   ó:   — d Z ddlZddlmZ ddgZdad„ Zd„ Zd	„ Z	y)
zJ
Required functions for optimized contractions of numpy arrays using jax.
é    Né   )Úto_backend_cache_wrapÚbuild_expressionÚevaluate_constantsc                  ó`   — t         €#dd l} t        | j                  d„ «       «       }| |fa t         S )Nr   c                 ó   — | S ©N© )Úxs    ú`G:\00. PROJECTS\API\Inventory\templateJSON\kerjaOCR\Lib\site-packages\opt_einsum/backends/jax.pyÚto_jaxz#_get_jax_and_to_jax.<locals>.to_jax   s	   € ð ˆHó    )Ú_JAXÚjaxr   Újit)r   r   s     r   Ú_get_jax_and_to_jaxr      s8   € ä€|Ûä	Ø	�‰ñ	ó 
ó 
ð	ð �Fˆ{ˆä€Kr   c                 ób   ‡— t        «       \  }} |j                  |j                  «      Šˆfd„}|S )z;Build a jax function based on ``arrays`` and ``expr``.
    c                  ó:   •— t        j                   ‰| «      «      S r	   )ÚnpÚasarray)ÚarraysÚjax_exprs    €r   Újax_contractz&build_expression.<locals>.jax_contract%   s   ø€ Ü�z‰z™( 6Ó*Ó+Ð+r   )r   r   Ú	_contract)Ú_Úexprr   r   r   s       @r   r   r      s0   ø€ ô !Ó"�F€Cˆà�w‰w�t—~‘~Ó&€Hô,ð Ðr   c                 ó`   — t        «       \  }} || D �cg c]
  } ||«      ‘Œ c}dddœŽS c c}w )zbConvert constant arguments to jax arrays, and perform any possible
    constant contractions.
    r   T)Úbackendr   )r   )Úconst_arraysr   r   r   r   s        r   r   r   +   s6   € ô &Ó'�K€Cˆá¡\Ó2¡\ ‘&˜•) \Ñ2¸EÐVZÒ[Ð[ùÒ2s   ”+)
Ú__doc__Únumpyr   Úsharingr   Ú__all__r   r   r   r   r
   r   r   Ú<module>r$      s4   ðñó å +àÐ3Ð
4€ð €òò
ó\r   