
    Opf                     <    d Z ddlZddlmZ ddgZdad Zd Zd	 Z	dS )
zJ
Required functions for optimized contractions of numpy arrays using jax.
    N   )to_backend_cache_wrapbuild_expressionevaluate_constantsc                  h    t           %dd l} t          | j        d                         }| |fa t           S )Nr   c                     | S N )xs    W/var/www/html/nettyfy-visnx/env/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 )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((6**+++r   )r   r   	_contract)_exprr   r   r   s       @r   r   r      sH     !""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>1   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__numpyr   sharingr   __all__r   r   r   r   r
   r   r   <module>r'      s}         + + + + + +3
4   
 
 
\ \ \ \ \r   