
    ]iH                         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)_EinmixMixinzTianhe Ren & Depeng Liangc                       \ rS rSrS rSrg)	Rearrange   c                 $    U R                  U5      $ N_apply_recipeselfinputs     R/mnt/rpi/tmp/demucs-venv-sys/lib/python3.13/site-packages/einops/layers/oneflow.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                 :   [         R                  R                  [         R                  " U5      R	                  U* U5      SS9U l        UbI  [         R                  R                  [         R                  " U5      R	                  U* U5      SS9U l        g S U l        g )NT)requires_grad)flownn	Parameterzerosuniform_weightbias)r   weight_shapeweight_bound
bias_shape
bias_bounds        r   _create_parametersEinMix._create_parameters   s    gg''JJ|$--|m\JZ^ ( 
 !))$**Z*@*I*I:+Wa*brv)wDI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   r8   r9   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_patternr0   r1   r?   )r   r   results      r   r   EinMix.forward.   so    )&&u-ET00%E99 iiF*((0Fr   )r1   r?   r=   r0   N)r   r   r   r   r6   r   strr   r@   r   r   r   r   r   r'   r'      sL    f%c]f &d^f 'sm	f
 'tnfr   r'   )typingr   r   r   oneflowr+    r   r   _einmixr	   
__author__r,   Moduler   r"   r'   r   r   r   <module>rN      s[    ' '  ) !(
) )
)[$''.. )
!\477>> !r   