Ë
    M²jß  ã                   ó’   — 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y)é    N)Ú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d
z     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           úg/var/www/html/ia-enhanced/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ˆ�
ó    Ú	gradientsNc                 ó  — | 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.step5   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	)g{®Gáz„?)g      à?g333333ó?)g�íµ ÷Æ°>é2   FFF)
Ú__name__Ú
__module__Ú__qualname__Úlistr   ÚfloatÚtupleÚboolr   r"   © r   r   r   r      s’   „ ð
 Ø$.Ø*4ØØØ(-ñYà�V‘ðYð ðYð �E˜5�LÑ!ð	Yð
 ˜% ˜,Ñ'ðYð ðYð ðYð "&óYð85˜d 6¨D¡=Ñ1ô 5r   r   )r   Útorch.optim._functionalÚoptimÚ_functionalr3   r   Ú,torch.distributed.optim._deprecation_warningr   r   r?   r   Ú__annotations__r   Úscriptr   rC   r   r   ú<module>rJ      sN   ðô ß #Ð #Ý õð
 €ˆˆc‰Ó ð ‡�×Ñ÷Rð Ró ñRr   