
    ]is                         S SK JrJrJr  S SKrSSKJrJr  SSKJ	r	  Sr
 " S S\\R                  R                  5      r " S	 S
\\R                  R                  5      r " S S\	\R                  R                  5      rg)    )DictOptionalcastN   )RearrangeMixinReduceMixin)_EinmixMixinPaddlePaddlec                       \ rS rSrS rSrg)	Rearrange   c                 $    U R                  U5      $ N_apply_recipeselfinputs     Q/mnt/rpi/tmp/demucs-venv-sys/lib/python3.13/site-packages/einops/layers/paddle.pyforwardRearrange.forward       !!%((     N__name__
__module____qualname____firstlineno__r   __static_attributes__r   r   r   r   r          )r   r   c                       \ rS rSrS rSrg)Reduce   c                 $    U R                  U5      $ r   r   r   s     r   r   Reduce.forward   r   r   r   Nr   r   r   r   r#   r#      r!   r   r#   c            	       R    \ rS rSrS rS\\   S\\   S\\   S\\   4S jrS r	S	r
g
)EinMix   c                    U R                  U[        R                  R                  R	                  U* U5      S9U l        Ub?  U R                  U[        R                  R                  R	                  U* U5      S9U l        g S U l        g )N)default_initializer)create_parameterpaddlenninitializerUniformweightbias)r   weight_shapeweight_bound
bias_shape
bias_bounds        r   _create_parametersEinMix._create_parameters   s    ++fii.C.C.K.K\M[g.h , 
 !--		0E0E0M0Mzk[e0f . DI DIr   pre_reshape_patternpre_reshape_lengthspost_reshape_patternpost_reshape_lengthsc                     S U l         Ub  [        U40 [        [        U5      D6U l         S U l        Ub   [        U40 [        [        U5      D6U l        g g r   )pre_rearranger   r   dictpost_rearrange)r   r9   r:   r;   r<   s        r   _create_rearrange_layersEinMix._create_rearrange_layers"   s[     "*!*+>!b$tM`Ba!bD"+"+,@"eDOcDd"eD ,r   c                 
   U R                   b  U R                  U5      n[        R                  " U R                  XR                  5      nU R
                  b  X R
                  -  nU R                  b  U R                  U5      nU$ r   )r>   r-   einsumeinsum_patternr1   r2   r@   )r   r   results      r   r   EinMix.forward1   so    )&&u-Et22E;;G99 iiF*((0Fr   )r2   r@   r>   r1   N)r   r   r   r   r7   r   strr   rA   r   r    r   r   r   r(   r(      sL    
f%c]f &d^f 'sm	f
 'tnf	r   r(   )typingr   r   r   r-    r   r   _einmixr	   
__author__r.   Layerr   r#   r(   r   r   r   <module>rN      s[    ' '  ) !
)		 )
)[&))// )
%\699?? %r   