
    Si                    P    S SK Jr  S SKrS SKJr   " S S\5      r " S S\5      rg)    )annotationsN)OpRunc                      \ rS rSrS rS
S jrS
S jrS
S jr                  SS jr             SS jr	S	r
g)
CommonLSTM   c                t    [         R                  " XU5        [        UR                  5      U l        SU l        g )N   )r   __init__lenoutput	n_outputsn_gatesself	onnx_node
run_paramss      Y/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/onnx/reference/ops/op_lstm.pyr
   CommonLSTM.__init__   s)    t
3Y--.    c                <    SS[         R                  " U* 5      -   -  $ )N   )npexpr   xs     r   fCommonLSTM.f   s    Ar
N##r   c                .    [         R                  " U5      $ Nr   tanhr   s     r   gCommonLSTM.g       wwqzr   c                .    [         R                  " U5      $ r   r    r   s     r   hCommonLSTM.h   r$   r   c	                P   UR                   S   n	UR                   S   n
UR                   S   n[        R                  " XX/5      n/ n[        R                  " US5      u  pnUnUn[        R                  " XR                   S   SS9 GH+  n[        R                  " U[        R
                  " U5      5      [        R                  " U[        R
                  " U5      5      -   [        R                  " [        R                  " US5      6 -   n[        R                  " USS5      u  nnnnU R                  UUU-  -   5      nU R                  UUU-  -   5      nU R                  U5      nUU-  UU-  -   nU R                  UUU-  -   5      nUU R                  U5      -  nUR                  U5        UnUnGM.     [        R                  " U5      nUS:X  a  UUS S 2SS S 2S S 24'   U R                  S:X  a	  US   nUU4$ [        R
                  " U/ SQ5      nUS S 2S S 2SS S 24   nUU4$ )	Nr   r   r	   axis      )r,   r   r   r	   )shaper   emptysplitdot	transposeaddr   r"   r&   appendconcatenatelayout)r   XRBWH_0C_0Pnum_directions
seq_lengthhidden_size
batch_sizeYh_listp_ip_op_fH_tC_tr   gatesior   cCHconcatenatedY_hs                                r   _stepCommonLSTM._step   s    WWQZ
iimWWQZ
HHj*JK((1a.3!WWQZa0Aq",,q/*&&bll1o./&&"((1a.)* 
 %B/JAq!Qq39}%Aq39}%Aq	AC!a%Aq37{#ADFF1IAMM!CC 1" ~~f-Q(AaAqjM;;!B%C
 #v Q-AAq"aK.C#vr   Nc                   SnSnUR                   S   nUS:X  Gaj  [        R                  " USS9n[        R                  " USS9nUbA  [        UR                   5      S:  a(  UR                   S   S:X  a  [        R                  " USS9nUbA  [        UR                   5      S:  a(  UR                   S   S:X  a  [        R                  " USS9nUbA  [        UR                   5      S:  a(  UR                   S   S:X  a  [        R                  " USS9nUbA  [        UR                   5      S:  a(  UR                   S   S:X  a  [        R                  " USS9nUbA  [        UR                   5      S:  a(  UR                   S   S:X  a  [        R                  " USS9nUR                   S   nUR                   S   nU R                  S:w  a  [        R
                  " USS5      nUc)  [        R                  " SU-  U-  [        R                  S9nUc&  [        R                  " UU-  [        R                  S9nUc%  [        R                  " UU4[        R                  S9nUc%  [        R                  " UU4[        R                  S9nO([        S	U< S
U R                  R                  < S35      eU R                  XXBXgUUS9u  nnUR                  UR                  5      nU R                  S:X  a  U4$ UUR                  UR                  5      4$ )Nr-   r	   r   r   r*   r)   r,   )dtypezUnsupported value z! for num_directions and operator .)r>   )r.   r   squeezer   r6   swapaxeszerosfloat32NotImplementedError	__class____name__rQ   astyperT   r   )r   r7   r:   r8   r9   sequence_lens	initial_h	initial_cr=   activation_alphaactivation_betaactivationsclip	directionr@   input_forgetr6   r   number_of_peepholesr>   rA   rB   rP   s                          r   _runCommonLSTM._runL   s   ( Q

11%A

11%A}QWW!1aggajAoJJqq))++,q0!''*a/ "

=q A%	(1,OOA&!+JJyq9	%	(1,OOA&!+JJyq9	}QWW!1aggajAoJJqq)''"+KJ{{aKK1a(yHHQ[;6bjjIyHH0;>bjjQ HHj+%>bjjQ	 HHj+%>bjjQ	%$^$6 7  $ 7 7:!= 
 !	a  
3 HHQWW~~*tHCJJqww4G0HHr   )r   r   )r   
np.ndarrayreturnrj   )r7   rj   r8   rj   r9   rj   r:   rj   r;   rj   r<   rj   r=   rj   r>   intrk   ztuple[np.ndarray, np.ndarray])NNNNNNNNNNNNN)r\   
__module____qualname____firstlineno__r
   r   r"   r&   rQ   rh   __static_attributes__ r   r   r   r      s    
$00 0 	0
 0 0 0 0 0 
'0n 
#JIr   r   c                      \ rS rSrS rSrg)LSTM   c                0    [         R                  XU5        g r   )r   r
   r   s      r   r
   LSTM.__init__   s    DZ8r   rq   N)r\   rm   rn   ro   r
   rp   rq   r   r   rs   rs      s    9r   rs   )
__future__r   numpyr   onnx.reference.op_runr   r   rs   rq   r   r   <module>rz      s-    #  'KI KI\9: 9r   