
    Fg                        S SK r S SKJr  S SKJr  SS jrS\R                  S\ R                  S\ R                  4S jrSS jr	S\R                  S\ R                  S\ R                  4S	 jrSS
 jrS\R                  S\ R                  S\ R                  4S jrS\R                  4S jrS\R"                  4S jrS\R&                  4S jrg)    N)PackedSequencec                 6    XU-   -  U-   nU(       a  X1S-  -  nU$ )N    )
input_sizehidden_sizebias	total_opss       _/Users/admin/workspace/ai/PDFMathTranslate/myenv/lib/python3.13/site-packages/thop/rnn_hooks.py_count_rnn_cellr      s)    K78;FI1_$	    mxyc                     [        U R                  U R                  U R                  5      nUS   R	                  S5      nX4-  nU =R
                  [        R                  " [        U5      /5      -  sl        g Nr   )	r   r   r   r	   sizer
   torchDoubleTensorintr   r   r   r
   
batch_sizes        r   count_rnn_cellr      U    ammQVVDI11JIKK5%%s9~&677Kr   c                     SnX-   U-  U-   nU(       a  XAS-  -  nX4S-  -  nX1U -   U-  U-   -  nU(       a  X1S-  -  nX1-  nX1S-  -  nU$ )Nr   r      r   r   r   r	   r
   	state_opss        r   _count_gru_cellr      sz    I )[8;FI1_$	QI 
*k9KGGI1_$	I q Ir   c                     [        U R                  U R                  U R                  5      nUS   R	                  S5      nX4-  nU =R
                  [        R                  " [        U5      /5      -  sl        g r   )	r   r   r   r	   r   r
   r   r   r   r   s        r   count_gru_cellr!   /   r   r   c                 ^    SnX-   U-  U-   nU(       a  XAS-  -  nX4S-  -  nX1S-  -  nX1-  nU$ )Nr   r      r   r   r   s        r   _count_lstm_cellr$   8   sT    I )[8;FI1_$	QI q I Ir   c                     [        U R                  U R                  U R                  5      nUS   R	                  S5      nX4-  nU =R
                  [        R                  " [        U5      /5      -  sl        g r   )	r$   r   r   r	   r   r
   r   r   r   r   s        r   count_lstm_cellr&   N   sU     q}}affEI11JIKK5%%s9~&677Kr   c                 T   U R                   nU R                  nU R                  nU R                  n[	        US   [
        5      (       aB  [        R                  " US   R                  5      nUS   R                  R                  S5      nObU R                  (       a)  US   R                  S5      nUS   R                  S5      nO(US   R                  S5      nUS   R                  S5      nSn	U R                  (       a  U	[        XEU5      S-  -  n	OU	[        XEU5      -  n	[        US-
  5       H:  n
U R                  (       a  U	[        US-  XS5      S-  -  n	M+  U	[        XUU5      -  n	M<     X-  n	X-  n	U =R                  [        R                  " [!        U	5      /5      -  sl        g Nr      r   )r	   r   r   
num_layers
isinstancer   r   maxbatch_sizesr   batch_firstbidirectionalr   ranger
   r   r   r   r   r   r	   r   r   r*   r   	num_stepsr
   is              r   	count_rnnr4   W   ^   66DJ--KJ!A$''YYqt//0
aD$$))!,	==11J!		!I11J!		!II_ZdCaGG	_ZdCC	:>"??q+LqPPI4HHI	 # IIKK5%%s9~&677Kr   c                 T   U R                   nU R                  nU R                  nU R                  n[	        US   [
        5      (       aB  [        R                  " US   R                  5      nUS   R                  R                  S5      nObU R                  (       a)  US   R                  S5      nUS   R                  S5      nO(US   R                  S5      nUS   R                  S5      nSn	U R                  (       a  U	[        XEU5      S-  -  n	OU	[        XEU5      -  n	[        US-
  5       H:  n
U R                  (       a  U	[        US-  XS5      S-  -  n	M+  U	[        XUU5      -  n	M<     X-  n	X-  n	U =R                  [        R                  " [!        U	5      /5      -  sl        g r(   )r	   r   r   r*   r+   r   r   r,   r-   r   r.   r/   r   r0   r
   r   r   r1   s              r   	count_grur7   |   r5   r   c                 T   U R                   nU R                  nU R                  nU R                  n[	        US   [
        5      (       aB  [        R                  " US   R                  5      nUS   R                  R                  S5      nObU R                  (       a)  US   R                  S5      nUS   R                  S5      nO(US   R                  S5      nUS   R                  S5      nSn	U R                  (       a  U	[        XEU5      S-  -  n	OU	[        XEU5      -  n	[        US-
  5       H:  n
U R                  (       a  U	[        US-  XS5      S-  -  n	M+  U	[        XUU5      -  n	M<     X-  n	X-  n	U =R                  [        R                  " [!        U	5      /5      -  sl        g r(   )r	   r   r   r*   r+   r   r   r,   r-   r   r.   r/   r$   r0   r
   r   r   r1   s              r   
count_lstmr9      sc   66DJ--KJ!A$''YYqt//0
aD$$))!,	==11J!		!I11J!		!II%jtDqHH	%jtDD	:>"??)+/;MPQQQI)+DIII	 # IIKK5%%s9~&677Kr   )T)r   torch.nnnntorch.nn.utils.rnnr   r   RNNCellTensorr   r   GRUCellr!   r$   LSTMCellr&   RNNr4   GRUr7   LSTMr9   r   r   r   <module>rD      s      -8bjj 8U\\ 8ell 8.8bjj 8U\\ 8ell 8,8r{{ 8u|| 8 8"8 "8J"8 "8J"8"'' "8r   