Ë
    g^(hþ  ã                   óž   — U d dl mZ 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y)é    )ÚOptionalN)ÚTensor)Ú2_scripted_functional_optimizer_deprecation_warningÚ__all__c                   óp   — 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	e      fd
„Z
y)Ú_FunctionalRpropÚparamsÚlrÚetasÚ
step_sizesÚforeachÚmaximizeÚ_allow_empty_param_listc                 ó\  — t        d¬«       d|i| _        || _        || _        || _        || _        t        |«      dk(  r|st        d«      ‚d|i| _        t        j                  j                  t        t        j                  t        t        t        j                  f   f   i «      | _        y )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/skyplay_api_hub/venv/lib/python3.12/site-packages/torch/distributed/optim/functional_rprop.pyÚ__init__z_FunctionalRprop.__init__   s—   € ô 	;ÀaÕHà�"ð
ˆŒð ˆŒ	Ø$ˆŒØˆŒØ ˆŒäˆv‹;˜!ÒÑ$;ÜÐDÓEÐEð % fÐ-ˆÔä—Y‘Y×'Ñ'¬¬U¯\©\¼4ÄÄUÇ\Á\Ð@QÑ;RÐ-RÑ(SÐUWÓXˆ�
ó    Ú	gradientsc                 ó  — | j                   d   }g }g }g }g }g }| j                  d   }| j                  \  }	}
| j                  \  }}t	        |«      t	        |«      k7  r*t        ddt	        |«      › d�z   dt	        |«      › �z   «      ‚d}t        ||«      D �]  \  }}|€Œ
|t        j                  |«      z  }|j                  |«       |j                  |«       || j                  vrwi | j                  |<   | j                  |   }t        j                  d«      |d	<   t        j                  |t        j                  ¬
«      |d<   t        j                  ||«      |d<   | j                  |   }|j                  |d   «       |j                  |d   «       |j                  |d	   «       �Œ t        j                  «       5  t!        j"                  ||||||||	|
| j$                  | j&                  |¬«       d d d «       y # 1 sw Y   y xY w)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.step6   s   € Ø×!Ñ! (Ñ+ˆØÐØˆØˆØˆ
ØˆØ�]‰]˜4Ñ ˆØ ŸI™IÑˆ�'Ø'+§¡Ñ$ˆ�}äˆv‹;œ#˜i›.Ò(ÜØWØ#¤C¨£K =°Ð3ñ4à&¤s¨9£~Ð&6Ð7ñ8óð ð ˆÜ" 6¨9Ó5ó 	2‰OˆE�8ØÑ#Øœu×/Ñ/°Ó6Ñ6�Ø ×'Ñ'¨Ô.Ø—‘˜XÔ&à §
¡
Ñ*Ø(*�D—J‘J˜uÑ%Ø ŸJ™J uÑ-�EÜ$)§L¡L°Ó$5�E˜&‘MÜ$)×$4Ñ$4Ø¬U×-BÑ-Bô%�E˜&‘Mô */¯©¸À2Ó)F�E˜+Ñ&àŸ
™
 5Ñ)�Ø—‘˜U 6™]Ô+Ø×!Ñ! %¨Ñ"4Ô5Ø×"Ñ" 5¨¡=Ö1ð%	2ô( �]‰]‹_ñ 	Ü�G‰GØ ØØØØØ+Ø+Ø!ØØŸ™ØŸ™Ø'õ÷	÷ 	ñ 	ús   Ç6H È H	N)g{®Gáz„?)g      à?g333333ó?)g�íµ ÷Æ°>é2   FFF)Ú__name__Ú
__module__Ú__qualname__Úlistr   ÚfloatÚtupleÚboolr   r   r#   © r    r   r   r      s“   „ ð
 Ø$.Ø*4ØØØ(-ñYà�V‘ðYð ðYð �E˜5�LÑ!ð	Yð
 ˜% ˜,Ñ'ðYð ðYð ðYð "&óYð85˜d 8¨FÑ#3Ñ4ô 5r    r   )Útypingr   r   Útorch.optim._functionalÚoptimÚ_functionalr4   r   Ú,torch.distributed.optim._deprecation_warningr   r   r@   r   Ú__annotations__r   Úscriptr   rD   r    r   ú<module>rL      sO   ðæ ã ß #Ð #Ý õð
 €ˆˆc‰Ó ð ‡�×Ñ÷Rð Ró ñRr    