
    iy                     L    S r SSKrSSKJr  / SQr\" SS9SS j5       rS	 rS
 rg)zM
Required functions for optimized contractions of numpy arrays using theano.
    N   )to_backend_cache_wrap)	to_theanobuild_expressionevaluate_constantsT)	constantsc                    SSK n[        U [        R                  5      (       ab  U(       a  UR                  R                  U 5      $ UR                  R                  U R                  S/[        U R                  5      -  S9" 5       $ U $ )zDConvert a numpy array to ``theano.tensor.TensorType`` instance.
    r   NF)dtypebroadcastable)
theano
isinstancenpndarraytensorconstant
TensorTyper
   lenshape)arrayr   r   s      Z/var/www/html/banglarbhumi/venv/lib/python3.13/site-packages/opt_einsum/backends/theano.pyr   r      sj     %$$==))%00}}''ekk%SVW\WbWbScIc'dffL    c                   ^^	 SSK m	U  Vs/ s H  n[        U5      PM     nnUR                  USS9nU Vs/ s H,  n[        UT	R                  R
                  5      (       a  M*  UPM.     nnT	R                  Xd5      mUU	4S jnU$ s  snf s  snf )z>Build a theano function based on ``arrays`` and ``expr``.
    r   Nr   )backendc            	         > T" U  Vs/ s H,  n[        UTR                  R                  5      (       a  M*  UPM.     sn6 $ s  snf )N)r   r   TensorConstant)arraysxgraphr   s     r   theano_contract)build_expression.<locals>.theano_contract'   s3    &\&Q
1fmm>Z>Z0[q&\]]\s   )??)r   r   	_contractr   r   r   function)
r   exprr   in_varsout_varr   	graph_insr   r   r   s
           @@r   r   r      s     -34VEyVG4nnWhn7G $WGq:a9U9U+VGIWOOI/E^  5 Xs   B)B
#B
c                     U  Vs/ s H  n[        USS9PM     n nU" U SSS.6u  p4U Vs/ s H  o"c  S O[        UR                  5       SS9PM!     nnX44$ s  snf s  snf )NT)r   r   )r   r   )r   eval)const_arraysr#   r   new_opsnew_contraction_lists        r   r   r   -   sr    9EFAIa$/LF$(,]a$b!G SZZRYQyti4&HHRYGZ(( G [s
   A&A)F)	__doc__numpyr   sharingr   __all__r   r   r    r   r   <module>r1      s:     +
A & '$)r   