§
    ŠŠtjß  ã                   ó’   — U d dl Z d dlmc mZ d dl mZ d dlmZ g Ze	e
         ed<   e j        j         G d„ d¦  «        ¦   «         ZdS )é    N)ÚTensor)Ú2_scripted_functional_optimizer_deprecation_warningÚ__all__c                   óŠ   — e Zd Z	 	 	 	 	 	 ddee         dedeeef         deeef         d	ed
edefd„Zdeedz           fd„Z	dS )Ú_FunctionalRpropç{®Gáz„?©g      à?g333333ó?©g�íµ ÷Æ°>é2   FÚparamsÚlrÚetasÚ
step_sizesÚforeachÚmaximizeÚ_allow_empty_param_listc                 óz  — t          d¬¦  «         d|i| _        || _        || _        || _        || _        t          |¦  «        dk    r|st          d¦  «        ‚d|i| _        t          j
                             t          t          j        t          t          t          j        f         f         i ¦  «        | _        d S )Né   )Ú
stacklevelr   r   z%optimizer got an empty parameter listr   )r   Údefaultsr   r   r   r   ÚlenÚ
ValueErrorÚparam_groupÚtorchÚjitÚannotateÚdictr   ÚstrÚstate)Úselfr   r   r   r   r   r   r   s           úf/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/torch/distributed/optim/functional_rprop.pyÚ__init__z_FunctionalRprop.__init__   s¬   € õ 	;ÀaÐHÑHÔHÐHà�"ð
ˆŒð ˆŒ	Ø$ˆŒØˆŒØ ˆŒåˆv‰;Œ;˜!ÒÐÐ$;ÐÝÐDÑEÔEÐEð % fÐ-ˆÔå”Y×'Ò'­­U¬\½4ÅÅUÄ\Ð@QÔ;RÐ-RÔ(SÐUWÑXÔXˆŒ
ˆ
ˆ
ó    Ú	gradientsNc                 ó*  — | j         d         }g }g }g }g }g }| j        d         }| j        \  }	}
| j        \  }}t	          |¦  «        t	          |¦  «        k    r6t          ddt	          |¦  «        › d�z   dt	          |¦  «        › �z   ¦  «        ‚d}t          ||¦  «        D �]\  }}|��|t          j        |¦  «        z  }| 	                    |¦  «         | 	                    |¦  «         || j
        vrii | j
        |<   | j
        |         }t          j        d¦  «        |d	<   t          j        |t          j        ¬
¦  «        |d<   t          j        ||¦  «        |d<   | j
        |         }| 	                    |d         ¦  «         | 	                    |d         ¦  «         | 	                    |d	         ¦  «         �Œt          j        ¦   «         5  t!          j        ||||||||	|
| j        | j        |¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   r   zEthe gradients passed in does not equal to the size of the parameters!zParams length: z. zGradients length: Fg        Ústep)Úmemory_formatÚprevÚ	step_size)Ústep_size_minÚstep_size_maxÚetaminusÚetaplusr   r   Úhas_complex)r   r   r   r   r   r   Úzipr   Ú
is_complexÚappendr   ÚtensorÚ
zeros_likeÚpreserve_formatÚ	full_likeÚno_gradÚFÚrpropr   r   )r    r$   r   Úparams_with_gradÚgradsÚprevsr   Ústate_stepsr   r,   r-   r*   r+   r.   ÚparamÚgradientr   s                    r!   r&   z_FunctionalRprop.step5   s…  € ØÔ! (Ô+ˆØÐØˆØˆØˆ
ØˆØŒ]˜4Ô ˆØ œIÑˆ�'Ø'+¤Ñ$ˆ�}åˆv‰;Œ;�#˜i™.œ.Ò(Ð(ÝØWØ3¥C¨¡K¤KÐ3Ð3Ð3ñ4à7¥s¨9¡~¤~Ð7Ð7ñ8ñô ð ð ˆÝ" 6¨9Ñ5Ô5ð 	2ñ 	2‰OˆE�8ØÑ#Ø�uÔ/°Ñ6Ô6Ñ6�Ø ×'Ò'¨Ñ.Ô.Ð.Ø—’˜XÑ&Ô&Ð&à ¤
Ð*Ð*Ø(*�D”J˜uÑ%Ø œJ uÔ-�EÝ$)¤L°Ñ$5Ô$5�E˜&‘MÝ$)Ô$4Ø­UÔ-Bð%ñ %ô %�E˜&‘Mõ */¬¸À2Ñ)FÔ)F�E˜+Ñ&àœ
 5Ô)�Ø—’˜U 6œ]Ñ+Ô+Ð+Ø×!Ò! %¨Ô"4Ñ5Ô5Ð5Ø×"Ò" 5¨¤=Ñ1Ô1Ð1ùåŒ]‰_Œ_ð 	ð 	ÝŒGØ ØØØØØ+Ø+Ø!ØØœØœØ'ðñ ô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   Ç+HÈHÈH)r   r	   r
   FFF)
Ú__name__Ú
__module__Ú__qualname__Úlistr   ÚfloatÚtupleÚboolr"   r&   © r#   r!   r   r      sË   € € € € € ð
 Ø$.Ø*4ØØØ(-ðYð Yà�V”ðYð ðYð �E˜5�LÔ!ð	Yð
 ˜% ˜,Ô'ðYð ðYð ðYð "&ðYð Yð Yð Yð85˜d 6¨D¡=Ô1ð 5ð 5ð 5ð 5ð 5ð 5r#   r   )r   Útorch.optim._functionalÚoptimÚ_functionalr7   r   Ú,torch.distributed.optim._deprecation_warningr   r   rB   r   Ú__annotations__r   Úscriptr   rF   r#   r!   ú<module>rM      sÁ   ðð €€€€Ø #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ø Ð Ð Ð Ð Ð ðð ð ð ð ð ð
 €ˆˆcŒÐ Ð Ñ ð „ÔðRð Rð Rð Rð Rñ Rô Rñ ÔðRð Rð Rr#   