+
    &jE                        R t ^ RIHt ^ RIt^ RIHt ^RIHtHtHtH	t	H
t
HtHtHtHtHtHtHtHtHt RR.t ! R R]4      tRR	] R
] R]
 R] R] R2,           ]n         R R ltR R lt]	! ]R7      RR R ll4       tR# )z1Implementation for the Resilient backpropagation.)castN)Tensor)_capturable_doc_default_to_fused_or_foreach_differentiable_doc_disable_dynamo_if_unsupported_foreach_doc!_get_capturable_supported_devices_get_scalar_dtype_maximize_doc_params_doc
_to_scalar_use_grad_for_differentiable_view_as_real	OptimizerParamsTRproprpropc            	       |   a a ] tR t^t oRRRRRRRRR/V3R lV 3R lllltV 3R	 ltR
 t]RR l4       tRt	Vt
V ;t# )r   
capturableFforeachNmaximizedifferentiablec                   < V ^8  d   QhRS[ RS[S[,          RS[S[S[3,          RS[S[S[3,          RS[RS[R,          RS[R	S[R
R/	# )   paramslretas
step_sizesr   r   Nr   r   return)r   floatr   tuplebool)format__classdict__s   "i/Users/jameslopez/projects/CWCArchive/cwc-podcast/.venv/lib/python3.14/site-packages/torch/optim/rprop.py__annotate__Rprop.__annotate__   s     + ++ FN+ E5L!	+
 %,'+ + + + + 
+    c               h  < \        V\        4      '       d!   VP                  4       ^8w  d   \        R4      hRV8:  g   \        RV 24      hRV^ ,          u;8  d   Ru;8  d   V^,          8  g"   M \        RV^ ,           RV^,           24      hRVRVR	VR
VRVRVRV/p	\        S
V `  W4       R# )   zTensor lr must be 1-elementg        zInvalid learning rate:       ?zInvalid eta values: z, r   r   r   r   r   r   r   N)
isinstancer   numel
ValueErrorsuper__init__)selfr   r   r   r   r   r   r   r   defaults	__class__s   &&&&&$$$$ r%   r0   Rprop.__init__   s     b&!!bhhjAo:;;by6rd;<<T!W,s,T!W,3DG9BtAwiHII "D*wn*
 	*r(   c                  < \         SV `  V4       V P                   EF  pVP                  R R4       VP                  RR4       VP                  RR4       VP                  RR4       VR,           F  pV P                  P                  V. 4      p\        V4      ^ 8w  g   K1  \        P                  ! VR,          4      '       d   KV  \        VR,          4      pVR,          '       d,   \        P                  ! V\        4       VP                  R7      M\        P                  ! V\        4       R	7      VR&   K  	  EK!  	  R# )
r   Nr   Fr   r   r   stepdtypedevicer8   )r/   __setstate__param_groups
setdefaultstategetlentorch	is_tensorr    tensorr
   r9   )r1   r>   grouppp_statestep_valr3   s   &&    r%   r;   Rprop.__setstate__=   s    U#&&EY-Z/-u5\518__**..B/w<1$U__WV_-M-M$WV_5H
 !.. $,=,? #\\(:K:MN FO	 % 'r(   c           	        R pVR,           EF  pVP                   f   K  V\        P                  ! V4      ,          pVP                  V4       VP                   p	V	P                  '       d   \        R4      hVP                  V	4       V P                  V,          p
\        V
4      ^ 8X  Ed    VR,          '       d,   \        P                  ! R\        4       VP                  R7      M\        P                  ! R\        4       R7      V
R&   \        P                  ! V\        P                  R7      V
R&   VP                  P                  '       d4   \        P                  ! V	\        VR	,          VR	,          4      4      V
R
&   M*\        P                  ! V	\!        VR	,          4      4      V
R
&   VP                  V
R,          4       VP                  V
R
,          4       VP                  V
R,          4       EK  	  V# )Fr   z'Rprop does not support sparse gradientsr   r7   r:   r6   memory_formatprevr   	step_size )gradrA   
is_complexappend	is_sparseRuntimeErrorr>   r@   zerosr
   r9   
zeros_likepreserve_formatr8   	full_likecomplexr   )r1   rD   r   gradsprevsr   state_stepshas_complexrE   rO   r>   s   &&&&&&&    r%   _init_groupRprop._init_groupP   s   xAvv~5++A..KMM!66D~~~"#LMMLLJJqME 5zQ \** KK*;*=ahhOR/@/BC f !& 0 0%BWBW Xf77%%% */geDk5;?*E+& */z%PT+?V)WE+&LLv'eK01uV}-A !D r(   c                   V P                  4        RpVe.   \        P                  ! 4       ;_uu_ 4        V! 4       pRRR4       V P                   Fo  p. p. p. p. p. pVR,          w  rVR,          w  rVR,          pVR,          pV P	                  W4WVWx4      p\        VVVVVVVV	V
VVVR,          VR,          VR7       Kq  	  V#   + '       g   i     L; i)	zPerform a single optimization step.

Args:
    closure (Callable, optional): A closure that reevaluates the model
        and returns the loss.
Nr   r   r   r   r   r   )	step_size_minstep_size_maxetaminusetaplusr   r   r   r   r\   )'_accelerator_graph_capture_health_checkrA   enable_gradr<   r]   r   )r1   closurelossrD   r   rY   rZ   r   r[   rb   rc   r`   ra   r   r   r\   s   &&              r%   r6   
Rprop.stepv   s     	446""$$y % &&E#%F"$E"$E')J(*K %fH+0+>(MI&GZ(H**uZK ++!!$%56 .'! 'B I %$s   CC	rN   )g{Gz?)g      ?g333333?)gư>2   N)__name__
__module____qualname____firstlineno__r0   r;   r]   r   r6   __static_attributes____classdictcell____classcell__)r3   r$   s   @@r%   r   r      s[     + !+  $+ +  %+ +<&$L "/ "/ /r(   a
  Implements the resilient backpropagation algorithm.

    .. math::
       \begin{aligned}
            &\rule{110mm}{0.4pt}                                                                 \\
            &\textbf{input}      : \theta_0 \in \mathbf{R}^d \text{ (params)},f(\theta)
                \text{ (objective)},                                                             \\
            &\hspace{13mm}      \eta_{+/-} \text{ (etaplus, etaminus)}, \Gamma_{max/min}
                \text{ (step sizes)}                                                             \\
            &\textbf{initialize} :   g^0_{prev} \leftarrow 0,
                \: \eta_0 \leftarrow \text{lr (learning rate)}                                   \\
            &\rule{110mm}{0.4pt}                                                                 \\
            &\textbf{for} \: t=1 \: \textbf{to} \: \ldots \: \textbf{do}                         \\
            &\hspace{5mm}g_t           \leftarrow   \nabla_{\theta} f_t (\theta_{t-1})           \\
            &\hspace{5mm} \textbf{for} \text{  } i = 0, 1, \ldots, d-1 \: \mathbf{do}            \\
            &\hspace{10mm}  \textbf{if} \:   g^i_{prev} g^i_t  > 0                               \\
            &\hspace{15mm}  \eta^i_t \leftarrow \mathrm{min}(\eta^i_{t-1} \eta_{+},
                \Gamma_{max})                                                                    \\
            &\hspace{10mm}  \textbf{else if}  \:  g^i_{prev} g^i_t < 0                           \\
            &\hspace{15mm}  \eta^i_t \leftarrow \mathrm{max}(\eta^i_{t-1} \eta_{-},
                \Gamma_{min})                                                                    \\
            &\hspace{15mm}  g^i_t \leftarrow 0                                                   \\
            &\hspace{10mm}  \textbf{else}  \:                                                    \\
            &\hspace{15mm}  \eta^i_t \leftarrow \eta^i_{t-1}                                     \\
            &\hspace{5mm}\theta_t \leftarrow \theta_{t-1}- \eta_t \mathrm{sign}(g_t)             \\
            &\hspace{5mm}g_{prev} \leftarrow  g_t                                                \\
            &\rule{110mm}{0.4pt}                                                          \\[-1.ex]
            &\bf{return} \:  \theta_t                                                     \\[-1.ex]
            &\rule{110mm}{0.4pt}                                                          \\[-1.ex]
       \end{aligned}

    For further details regarding the algorithm we refer to the paper
    `A Direct Adaptive Method for Faster Backpropagation Learning: The RPROP Algorithm
    <http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.21.1417>`_.z

    Args:
        a{  
        lr (float, optional): learning rate (default: 1e-2)
        etas (Tuple[float, float], optional): pair of (etaminus, etaplus), that
            are multiplicative increase and decrease factors
            (default: (0.5, 1.2))
        step_sizes (Tuple[float, float], optional): a pair of minimal and
            maximal allowed step sizes (default: (1e-6, 50))
        z	
        z

    c                &   V ^8  d   QhR\         \        ,          R\         \        ,          R\         \        ,          R\         \        ,          R\         \        ,          R\        R\        R\        R	\        R
\        R\        R\        R\        RR/# r   r   rY   rZ   r   r[   r`   ra   rb   rc   r   r   r   r\   r   Nlistr   r    r"   )r#   s   "r%   r&   r&      s     D DLD<D <D V	D
 fD D D D D D D D D 
Dr(   c                   \        V 4       EFA  w  rW,          pV	'       g   TMV) pW-,          pW=,          pWM,          p\        P                  P                  4       '       gl   V
'       dd   \	        4       pVP
                  P                  VP
                  P                  8X  d   VP
                  P                  V9   g   \        R V R24      hV^,          p\        P                  ! V4      '       dY   \        P                  ! V4      p\        P                  ! V4      p\        P                  ! V4      p\        P                  ! V4      pV'       d/   VP                  VP                  4       4      P                  4       pMVP                  V4      P                  4       pV
'       d   VP                  \        P                  ! VP                  ^ 4      VV4      4       VP                  \        P                  ! VP!                  ^ 4      VV4      4       VP                  \        P                  ! VP#                  ^ 4      ^V4      4       M<VVVP                  ^ 4      &   VVVP!                  ^ 4      &   ^VVP#                  ^ 4      &   VP%                  V4      P'                  WV4       VP                  \        P(                  R7      pV
'       d8   VP                  \        P                  ! VP#                  V4      ^ V4      4       M^ VVP#                  V4      &   VP+                  VP                  4       VRR7       VP                  V4       EKD  	  R# )IIf capturable=True, params and state_steps must be on supported devices: .rJ   valueN)	enumeraterA   compileris_compilingr	   r9   typeAssertionErrorrP   view_as_realmulclonesigncopy_wheregtlteqmul_clamp_rV   addcmul_)r   rY   rZ   r   r[   r`   ra   rb   rc   r   r   r   r\   iparamrO   rL   rM   r6   capturable_supported_devicesr   s   &&&&&$$$$$$$$        r%   _single_tensor_rpropr      se     f%x#t$xM	~ ~~**,,+L+N(!!T[[%5%55LL%%)EE$_`|_}}~  		E""%%d+D%%d+D&&u-E**95I88DJJL)..0D88D>&&(DJJu{{4771:w=>JJu{{4771:x>?JJu{{4771:q$78&D'D D 	t##MA zz(=(=z>JJu{{4778#4a>?&'D"# 	tyy{IR8

4i &r(   c                &   V ^8  d   QhR\         \        ,          R\         \        ,          R\         \        ,          R\         \        ,          R\         \        ,          R\        R\        R\        R	\        R
\        R\        R\        R\        RR/# rs   rt   )r#   s   "r%   r&   r&   &  s     o
 o
Lo
<o
 <o
 V	o

 fo
 o
 o
 o
 o
 o
 o
 o
 o
 
o
r(   c          
        a \        V 4      ^ 8X  d   R# V'       d   \        R4      h\        P                  P	                  4       '       gx   V
'       dp   \        4       o\        ;QJ d*    V3R l\        WRR7       4       F  '       d   K   RM	  RM! V3R l\        WRR7       4       4      '       g   \        RS R24      h\        P                  ! WW#V.4      pVP                  4        EF  w  w  pppppp\        \        \        ,          V4      p\        \        \        ,          V4      p\        \        \        ,          V4      p\        \        \        ,          V4      p\        \        \        ,          V4      p\        P                  P	                  4       '       gJ   V^ ,          P                  '       d1   \        P                  ! V\        P                   ! R	R
R7      R	R7       M\        P                  ! V^4       V'       d   \#        VVVV4       \        P$                  ! VV4      pV	'       d   \        P&                  ! V4       \        P(                  ! VV4       V	'       d   \        P&                  ! V4       Tp\        P*                  ! V4       V
'       d   V F  pVP-                  \        P.                  ! VP1                  ^ 4      VV4      4       VP-                  \        P.                  ! VP3                  ^ 4      VV4      4       VP-                  \        P.                  ! VP5                  ^ 4      ^V4      4       K  	  MEV F?  pVVVP1                  ^ 4      &   VVVP3                  ^ 4      &   ^VVP5                  ^ 4      &   KA  	  \        P6                  ! VV4       V F  pVP9                  WV4       K  	  \        V4      p\;        \        V4      4       FN  pVV,          P-                  \        P.                  ! VV,          P5                  V4      ^ VV,          4      4       KP  	  ?V Uu. uF  pVP=                  4       NK  	  pp\        P>                  ! VVVRR7       EK  	  R# u upi )    Nz#_foreach ops don't support autogradc              3      <"   T FU  w  rVP                   P                  VP                   P                  8H  ;'       d    VP                   P                  S9   x  KW  	  R # 5irj   )r9   r   ).0rE   r6   r   s   &  r%   	<genexpr>&_multi_tensor_rprop.<locals>.<genexpr>?  sT      
 A HHMMT[[--- > >!==>@s
   :A "A T)strictFrw   rx   r+   cpu)r9   )alphary   r{   ) r@   r   rA   r}   r~   r	   allzipr   "_group_tensors_by_device_and_dtypevaluesr   ru   r   is_cpu_foreach_add_rC   r   _foreach_mul_foreach_neg__foreach_copy__foreach_sign_r   r   r   r   r   _foreach_mul_r   ranger   _foreach_addcmul_) r   rY   rZ   r   r[   r`   ra   rb   rc   r   r   r   r\   grouped_tensorsgrouped_params_grouped_grads_grouped_prevs_grouped_step_sizes_grouped_state_steps__grouped_paramsgrouped_gradsgrouped_prevsgrouped_step_sizesgrouped_state_stepssignsr   rM   r   rO   
grad_signsr   s    &&&&&$$$$$$$$                  @r%   _multi_tensor_rpropr   &  s     6{aBCC >>&&((Z'H'J$s 
 v4@
sss 
 v4@
 
 

 ![\x[yyz{   BB	;7O ""$		 	d6lO<T&\>:T&\>:!$v,0CD"4<1EF ~~**,,1DQ1G1N1N1N#U\\#e%DC  3Q7 }>P ""=-@&
 	]M:.%U#

5;;twwqz7DAB

5;;twwqz8TBC

5;;twwqz1d;< 
 #*TWWQZ #+TWWQZ #$TWWQZ   	.6+I]: ,
 ]+s=)*A!""E!HKK11mA6FG +  /<<mddiikm
<J(:"	
 	
E %B =s   ;Q7)single_tensor_fnc                @   V ^8  d   QhR\         \        ,          R\         \        ,          R\         \        ,          R\         \        ,          R\         \        ,          R\        R,          R\        R	\        R
\        R\        R\        R\        R\        R\        RR/# )r   r   rY   rZ   r   r[   r   Nr   r   r   r\   r`   ra   rb   rc   r   )ru   r   r"   r    )r#   s   "r%   r&   r&     s     ; ;L;<; <; V	;
 f; D[; ; ; ; ; ; ;  !;" #;$ 
%;r(   c
                  \         P                  P                  4       '       gF   \        ;QJ d    R V 4       F  '       d   K   RM	  RM! R V 4       4      '       g   \	        R4      hVf   \        WRR7      w  rV'       d0   \         P                  P                  4       '       d   \	        R4      hV'       d,   \         P                  P                  4       '       g   \        pM\        pV! V VVVVV
VVVVVVV	R7       R# )	zhFunctional API that performs rprop algorithm computation.

See :class:`~torch.optim.Rprop` for details.
c              3   V   "   T F  p\        V\        P                  4      x  K!  	  R # 5irj   )r,   rA   r   )r   ts   & r%   r   rprop.<locals>.<genexpr>  s!      5-8
1ell##[s   ')FTzPAPI has changed, `state_steps` argument must contain a list of singleton tensorsN)	use_fusedz6torch.jit.script not supported with foreach optimizers)r`   ra   rb   rc   r   r   r   r\   )
rA   r}   r~   r   rS   r   jitis_scriptingr   r   )r   rY   rZ   r   r[   r   r   r   r   r\   r`   ra   rb   rc   r   funcs   &&&&&&&&&&$$$$  r%   r   r     s    4 >>&&(( 5-85 5-85 2 2 ^
 	
 1e

 599))++STTuyy--//"###%r(   )NFFFF)__doc__typingr   rA   r   	optimizerr   r   r   r   r   r	   r
   r   r   r   r   r   r   r   __all__r   r   r   r   rN   r(   r%   <module>r      s    8      $ G
HI HX!LD	 
 	 
 		 		 		 E1 lDNo
l  1EF; G;r(   