
    Sh=                     4    d Z ddlmZ ddgZdad Zd Zd ZdS )	zHRequired functions for optimized contractions of numpy arrays using jax.    )to_backend_cache_wrapbuild_expressionevaluate_constantsNc                  h    t           %dd l} t          | j        d                         }| |fa t           S )Nr   c                     | S )N )xs    ]/var/www/html/movieo_spanner_bot/venv/lib/python3.11/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   
   sF    |


			 	 
 
		 F{Kr   c                 h    t                      \  }} |                    |j                  fd}|S )z6Build a jax function based on ``arrays`` and ``expr``.c                  H    dd l }|                     |                     S )Nr   )numpyasarray)arraysnpjax_exprs     r
   jax_contractz&build_expression.<locals>.jax_contract   s+    zz((6**+++r   )r   r   	_contract)_exprr   r   r   s       @r
   r   r      sF     ""FCwwt~&&H, , , , ,
 r   c                 P    t                      \  } |fd| D             dddS )zbConvert constant arguments to jax arrays, and perform any possible
    constant contractions.
    c                 &    g | ]} |          S r   r   ).0r	   r   s     r
   
<listcomp>z&evaluate_constants.<locals>.<listcomp>-   s!    222&&))222r   r   T)backendr   )r   )const_arraysr   r   r   s      @r
   r   r   '   sA     &''KC42222\222EVZ[[[[r   )__doc__opt_einsum.sharingr   __all__r   r   r   r   r   r   r
   <module>r%      si    N N 4 4 4 4 4 43
4    \ \ \ \ \r   