
    [Th                         % S SK Jr  S SKrS SKJs  Jr  S SKJr  S SKJ	r	  / r
\\   \S'   \R                  R                   " S S5      5       rg)    )OptionalN)Tensor)2_scripted_functional_optimizer_deprecation_warning__all__c                       \ rS rSr            SS\\   S\S\S\S\S\S\S	\S
\S\S\S\S\4S jjrS\\	\      4S jr
Srg)_FunctionalAdagrad   paramslrlr_decayweight_decayinitial_accumulator_valuewarmup_lr_multiplierwarmup_num_itersepscoalesce_gradforeachfusedmaximize_allow_empty_param_listc                    [        SS9  UUUUUUUS.U l        Xl        Xl        Xl        Xl        [        R                  R                  [        [        R                  [        [        [        R                  4   4   0 5      U l        [        U5      S:X  a  U(       d  [        S5      eSU0U l        U R                  S    HH  n[        R                   " UR"                  U5      [        R$                  " S5      S.U R                  U'   MJ     g )	N   )
stacklevel)r   r   r   r   r   r   r   r   z%optimizer got an empty parameter listr
           )sumstep)r   defaultsr   r   r   r   torchjitannotatedictr   strstatelen
ValueErrorparam_group	full_likedatatensor)selfr
   r   r   r   r   r   r   r   r   r   r   r   r   ps                  b/var/www/auris/envauris/lib/python3.13/site-packages/torch/distributed/optim/functional_adagrad.py__init___FunctionalAdagrad.__init__   s      	;aH ()B$8 0
 +
 YY''U\\4U\\@Q;R-R(SUWX
v;!$;DEE %f- !!(+Aqvv/HIS)DJJqM ,    	gradientsc                 R   U R                   S   n/ n/ n/ n/ n[        U5      [        U5      :w  a*  [        SS[        U5       S3-   S[        U5       3-   5      eSu  px[        U R                   S   U5       H  u  pU
c  M
  XzR                  -  nU[
        R                  " U	5      -  nUR                  U	5        UR                  U
5        U R                  U	   nUR                  US   5        UR                  US   5        M     [
        R                  " 5          [        R                  " UUUUU R                  S	   U R                  S
   U R                  S   U R                  S   UU R                  U R                  UU R                  S S S9  S S S 5        g ! , (       d  f       g = f)Nr
   zEthe gradients passed in does not equal to the size of the parameters!zParams length: z. zGradients length: )FFr   r   r   r   r   r   )r   r   r   r   has_sparse_gradr   r   has_complexr   
grad_scale	found_inf)r&   r$   r%   zip	is_sparser   
is_complexappendr#   no_gradFadagradr   r   r   r   )r*   r0   r
   params_with_gradgrads
state_sumsstate_stepsr2   r3   paramgradientr#   s               r,   r   _FunctionalAdagrad.stepI   s   !!(+
$&v;#i.(W#CK=34&s9~&678  (4$"4#3#3H#=yIOE##5#55u//66 ''.X&

5)!!%,/""5=1  J ]]_II==&!]]>:z2MM%( /'jj __s   A5F
F&)r   r   r   r   r   r&   r#   N)g{Gz?r   r   r   g      ?r   g|=TFFFF)__name__
__module____qualname____firstlineno__listr   floatboolr-   r   r   __static_attributes__ r/   r,   r   r      s    
 !+.&)"%"(--V- - 	-
 - $)- $-  - - - - - - "&-^*d8F#34 *r/   r   )typingr   r   torch.optim._functionaloptim_functionalr;   r   ,torch.distributed.optim._deprecation_warningr   r   rH   r"   __annotations__r   scriptr   rL   r/   r,   <module>rT      sO      # # 
 c  Z Z Zr/   