ó
    "Eñiah  ã            (       óP  • S r SSKJr  SSKrSSKJr  SSKJrJrJrJ	r	J
r
JrJrJrJrJrJrJrJrJrJrJr  SS/r " S	 S\5      rS
S\ S\
 S\ S\ S\ S3-   \l         S\\   S\\   S\\   S\\   S\\   S\\   S\S\S\S\S\S\S\S\S\S\S\S S4$S! jrS\\   S\\   S\\   S\\   S\\   S\\   S\S\S\S\S\S\S\S\S\S\S\S S4$S" jr\	" \S#9      S&S\\   S\\   S\\   S\\   S\\   S\\   S\S$\S-  S\S\S\S\S\S\S\S\S\S\S S4&S% jj5       rg)'z'Implementation for the NAdam algorithm.é    )ÚcastN)ÚTensoré   )Ú_capturable_docÚ_default_to_fused_or_foreachÚ_differentiable_docÚ_disable_dynamo_if_unsupportedÚ_foreach_docÚ!_get_capturable_supported_devicesÚ_get_scalar_dtypeÚ
_get_valueÚ_maximize_docÚ_params_docÚ_stack_if_compilingÚ
_to_scalarÚ_use_grad_for_differentiableÚ_view_as_realÚ	OptimizerÚParamsTÚNAdamÚnadamc                   ó¶   ^ • \ rS rSr      SSSSSS.S\S\\-  S\\\4   S\S	\S
\S\S\S-  S\S\S\SS4U 4S jjjjr	U 4S jr
S r\SS j5       rSrU =r$ )r   é    FN)ÚforeachÚmaximizeÚ
capturableÚdifferentiableÚparamsÚlrÚbetasÚepsÚweight_decayÚmomentum_decayÚdecoupled_weight_decayr   r   r   r   Úreturnc                óÒ  >• [        U[        5      (       a  UR                  5       S:w  a  [        S5      eSU::  d  [        SU 35      eSU::  d  [        SU 35      eSUS   s=::  a  S:  d  O  [        SUS    35      eSUS   s=::  a  S:  d  O  [        S	US    35      eSU::  d  [        S
U 35      eSU::  d  [        SU 35      eUUUUUUU	UU
US.
n[        TU ]  X5        g )Nr   zTensor lr must be 1-elementç        zInvalid learning rate: zInvalid epsilon value: r   ç      ð?z#Invalid beta parameter at index 0: z#Invalid beta parameter at index 1: zInvalid weight_decay value: zInvalid momentum_decay value: )
r   r    r!   r"   r#   r$   r   r   r   r   )Ú
isinstancer   ÚnumelÚ
ValueErrorÚsuperÚ__init__)Úselfr   r   r    r!   r"   r#   r$   r   r   r   r   ÚdefaultsÚ	__class__s                €ÚN/home/mande/repo/quber/.venv/lib/python3.13/site-packages/torch/optim/nadam.pyr-   ÚNAdam.__init__!   s  ø€ ô �bœ&×!Ñ! b§h¡h£j°A£oÜÐ:Ó;Ð;Ø�b‹yÜÐ6°r°dÐ;Ó<Ð<Ø�c‹zÜÐ6°s°eÐ<Ó=Ð=Ø�e˜A‘hÕ$ Õ$ÜÐBÀ5ÈÁ8À*ÐMÓNÐNØ�e˜A‘hÕ$ Õ$ÜÐBÀ5ÈÁ8À*ÐMÓNÐNØ�lÓ"ÜÐ;¸L¸>ÐJÓKÐKØ�nÓ$ÜÐ=¸nÐ=MÐNÓOÐOàØØØ(Ø,Ø&<Ø ØØ$Ø,ñ
ˆô 	‰Ñ˜Õ*ó    c                 ób  >• [         TU ]  U5        U R                   GHŽ  nUR                  SS5        UR                  SS 5        UR                  SS5        UR                  SS5        UR                  SS5        US    GH&  nU R                  R                  U/ 5      n[        U5      S:w  d  M1  [        R                  " US	   5      (       d`  [        US	   5      nUS   (       a(  [        R                  " U[        5       UR                  S
9O[        R                  " U[        5       S9US	'   [        R                  " US   5      (       a  MÏ  US   nUS   (       a(  [        R                  " U[        5       UR                  S
9O[        R                  " U[        5       S9US'   GM)     GM‘     g )Nr   Fr   r   r   r$   r   r   Ústep©ÚdtypeÚdevice©r7   Ú
mu_product)r,   Ú__setstate__Úparam_groupsÚ
setdefaultÚstateÚgetÚlenÚtorchÚ	is_tensorÚfloatÚtensorr   r8   )r.   r>   ÚgroupÚpÚp_stateÚstep_valÚmu_prod_valr0   s          €r1   r;   ÚNAdam.__setstate__L   sj  ø€ Ü‰Ñ˜UÔ#Ø×&Õ&ˆEØ×Ñ˜Z¨Ô/Ø×Ñ˜Y¨Ô-Ø×Ñ˜\¨5Ô1Ø×ÑÐ-¨uÔ5Ø×ÑÐ5°uÔ=Ø˜8•_�ØŸ*™*Ÿ.™.¨¨BÓ/�Ü�w“< 1Õ$Ü Ÿ?š?¨7°6©?×;Ñ;Ü#(¨°©Ó#9˜ð
  % \×2ô "ŸLšLØ (Ô0AÓ0CÈAÏHÉHòô "'§¢¨hÔ>OÓ>QÑ!Rð   ™ô !Ÿ?š?¨7°<Ñ+@×AÓAØ&-¨lÑ&;˜ð
  % \×2ô "ŸLšLØ +Ô3DÓ3FÈqÏxÉxòô "'§¢¨kÔARÓATÑ!Uð   Ô-ô %ò 'r3   c                 óÖ  • SnUS    GHÜ  n	U	R                   c  M  U[        R                  " U	5      -  nUR                  U	5        U	R                   R                  (       a  [        S5      eUR                  U	R                   5        U R                  U	   n
[        U
5      S:X  að  US   (       a(  [        R                  " S[        5       U	R                  S9O[        R                  " S[        5       S	9U
S
'   US   (       a(  [        R                  " S[        5       U	R                  S9O[        R                  " S[        5       S	9U
S'   [        R                  " U	[        R                  S9U
S'   [        R                  " U	[        R                  S9U
S'   UR                  U
S   5        UR                  U
S   5        UR                  U
S   5        UR                  U
S
   5        GMß     U$ )NFr   z'NAdam does not support sparse gradientsr   r   © r6   r'   r9   r5   r(   r:   )Úmemory_formatÚexp_avgÚ
exp_avg_sq)ÚgradrA   Ú
is_complexÚappendÚ	is_sparseÚRuntimeErrorr>   r@   Úzerosr   r8   rD   ÚonesÚ
zeros_likeÚpreserve_format)r.   rE   Úparams_with_gradÚgradsÚexp_avgsÚexp_avg_sqsÚmu_productsÚstate_stepsÚhas_complexrF   r>   s              r1   Ú_init_groupÚNAdam._init_groupj   s�  € ð ˆØ�x•ˆAØ�v‰vÓ!Øœu×/Ò/°Ó2Ñ2�Ø ×'Ñ'¨Ô*Ø—6‘6×#×#Ü&Ð'PÓQÐQØ—‘˜QŸV™VÔ$àŸ
™
 1™�ä�u“: “?ð ! ×.ô Ÿš BÔ.?Ó.AÈ!Ï(É(ÒSä"Ÿ\š\¨#Ô5FÓ5HÑIð ˜&‘Mð ! ×.ô Ÿ
š
 2Ô->Ó-@ÈÏÉÒRä"Ÿ\š\¨#Ô5FÓ5HÑIð ˜,Ñ'ô (-×'7Ò'7Ø¬×)>Ñ)>ñ(�E˜)Ñ$ô +0×*:Ò*:Ø¬×)>Ñ)>ñ+�E˜,Ñ'ð —‘  iÑ 0Ô1Ø×"Ñ" 5¨Ñ#6Ô7Ø×"Ñ" 5¨Ñ#6Ô7Ø×"Ñ" 5¨¡=×1ñI !ðJ Ðr3   c                 ó¶  • U R                  5         SnUb%  [        R                  " 5          U" 5       nSSS5        U R                   H}  n/ n/ n/ n/ n/ n/ n	[	        [
        [        [        4   US   5      u  p«U R                  UUUUUUU	5      n[        UUUUUU	U
UUS   US   US   US   US   US   US	   US
   US   US9  M     U$ ! , (       d  f       N�= f)z�Perform a single optimization step.

Args:
    closure (Callable, optional): A closure that reevaluates the model
        and returns the loss.
Nr    r   r"   r#   r!   r   r$   r   r   r   )Úbeta1Úbeta2r   r"   r#   r!   r   r$   r   r   r   r_   )	Ú'_accelerator_graph_capture_health_checkrA   Úenable_gradr<   r   ÚtuplerC   r`   r   )r.   ÚclosureÚlossrE   rY   rZ   r[   r\   r]   r^   rc   rd   r_   s                r1   r5   Ú
NAdam.stepœ   s$  € ð 	×4Ñ4Ô6àˆØÑÜ×"Ò"Õ$Ù“y�÷ %ð ×&Ô&ˆEØ-/ÐØ"$ˆEØ%'ˆHØ(*ˆKØ(*ˆKØ(*ˆKÜ¤¤e¬U lÑ 3°U¸7±^ÓD‰LˆEà×*Ñ*ØØ ØØØØØóˆKô Ø ØØØØØØØØ˜‘;Ø" >Ñ2Ø$Ð%5Ñ6Ø˜%‘LØ˜zÑ*Ø',Ð-EÑ'FØ˜iÑ(Ø  Ñ.Ø$Ð%5Ñ6Ø'ô%ñ' 'ðP ˆ÷W %Õ$ús   «C
Ã

CrL   )gü©ñÒMb`?)gÍÌÌÌÌÌì?g+‡ÙÎ÷ï?g:Œ0âŽyE>r   gü©ñÒMbp?F©N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   rC   r   rg   Úboolr-   r;   r`   r   r5   Ú__static_attributes__Ú__classcell__)r0   s   @r1   r   r       sÛ   ø† ð "Ø%1ØØØ $Ø',ð)+ð  $ØØ Ø$ò)+àð)+ð �F‰Nð)+ð �U˜E�\Ñ"ð	)+ð
 ð)+ð ð)+ð ð)+ð !%ð)+ð ˜‘ð)+ð ð)+ð ð)+ð ð)+ð 
÷)+ñ )+õVò<0ðd "ó6ó "ö6r3   a¼  Implements NAdam algorithm.

    .. math::
       \begin{aligned}
            &\rule{110mm}{0.4pt}                                                                 \\
            &\textbf{input}      : \gamma_t \text{ (lr)}, \: \beta_1,\beta_2 \text{ (betas)},
                \: \theta_0 \text{ (params)}, \: f(\theta) \text{ (objective)}                   \\
            &\hspace{13mm} \: \lambda \text{ (weight decay)}, \:\psi \text{ (momentum decay)}    \\
            &\hspace{13mm} \: \textit{decoupled\_weight\_decay}, \:\textit{maximize}             \\
            &\textbf{initialize} :  m_0 \leftarrow 0 \text{ ( first moment)},
                v_0 \leftarrow 0 \text{ ( second moment)}                                 \\[-1.ex]
            &\rule{110mm}{0.4pt}                                                                 \\
            &\textbf{for} \: t=1 \: \textbf{to} \: \ldots \: \textbf{do}                         \\
            &\hspace{5mm}\textbf{if} \: \textit{maximize}:                                       \\
            &\hspace{10mm}g_t           \leftarrow   -\nabla_{\theta} f_t (\theta_{t-1})         \\
            &\hspace{5mm}\textbf{else}                                                           \\
            &\hspace{10mm}g_t           \leftarrow   \nabla_{\theta} f_t (\theta_{t-1})          \\
            &\hspace{5mm} \theta_t \leftarrow \theta_{t-1}                                       \\
            &\hspace{5mm} \textbf{if} \: \lambda \neq 0                                          \\
            &\hspace{10mm}\textbf{if} \: \textit{decoupled\_weight\_decay}                       \\
            &\hspace{15mm} \theta_t \leftarrow \theta_{t-1} - \gamma \lambda \theta_{t-1}                    \\
            &\hspace{10mm}\textbf{else}                                                          \\
            &\hspace{15mm} g_t \leftarrow g_t + \lambda \theta_{t-1}                             \\
            &\hspace{5mm} \mu_t \leftarrow \beta_1 \big(1 - \frac{1}{2}  0.96^{t \psi} \big)     \\
            &\hspace{5mm} \mu_{t+1} \leftarrow \beta_1 \big(1 - \frac{1}{2} 0.96^{(t+1)\psi}\big)\\
            &\hspace{5mm}m_t           \leftarrow   \beta_1 m_{t-1} + (1 - \beta_1) g_t          \\
            &\hspace{5mm}v_t           \leftarrow   \beta_2 v_{t-1} + (1-\beta_2) g^2_t          \\
            &\hspace{5mm}\widehat{m_t} \leftarrow \mu_{t+1} m_t/(1-\prod_{i=1}^{t+1}\mu_i)\\[-1.ex]
            & \hspace{11mm} + (1-\mu_t) g_t /(1-\prod_{i=1}^{t} \mu_{i})                         \\
            &\hspace{5mm}\widehat{v_t} \leftarrow   v_t/\big(1-\beta_2^t \big)                   \\
            &\hspace{5mm}\theta_t \leftarrow \theta_t - \gamma \widehat{m_t}/
                \big(\sqrt{\widehat{v_t}} + \epsilon \big)                                       \\
            &\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 `Incorporating Nesterov Momentum into Adam`_.
    z
    Args:
        aø  
        lr (float, Tensor, optional): learning rate (default: 2e-3)
        betas (Tuple[float, float], optional): coefficients used for computing
            running averages of gradient and its square (default: (0.9, 0.999))
        eps (float, optional): term added to the denominator to improve
            numerical stability (default: 1e-8)
        weight_decay (float, optional): weight decay (L2 penalty) (default: 0)
        momentum_decay (float, optional): momentum momentum_decay (default: 4e-3)
        decoupled_weight_decay (bool, optional): whether to decouple the weight
            decay as in AdamW to obtain NAdamW. If True, the algorithm does not
            accumulate weight decay in the momentum nor variance. (default: False)
        z	
        zÏ

    .. _Incorporating Nesterov Momentum into Adam:
        https://openreview.net/forum?id=OM0jvwB8jIp57ZJjtNEZ
    .. _Decoupled Weight Decay Regularization:
        https://arxiv.org/abs/1711.05101

    r   rZ   r[   r\   r]   r^   rc   rd   r   r"   r#   r!   r$   r   r   r   r_   r%   c                óv  • [         R                  R                  5       (       d  [        U5      n[	        U 5       GHû  u  nnU(       d  UU   OUU   * nUU   nUU   nUU   nUU   n[         R
                  " U5      (       aX  [         R                  " U5      n[         R                  " U5      n[         R                  " U5      n[         R                  " U5      n[         R                  R                  5       (       d†  U(       a  [        5       nUR                  R                  UR                  R                  s=:X  a  UR                  R                  :X  a  O  OUR                  R                  U;   d  [        SU S35      eUS-  nU(       a  UnO[        U5      nSUU-  -
  nU	S:w  a.  U(       a  UR                  SX‰-  -
  5        OUR                  UU	S9nUSSSUU
-  -  -  -
  -  nUSSSUS-   U
-  -  -  -
  -  nUU-  nUR!                  USU-
  5        UR                  U5      R#                  UUSU-
  S	9  UR%                  U5      R'                  5       nU(       d  U(       a^  UR                  U5      nUU-  nUU* SU-
  -  SU-
  -  -  nUU* U-  SU-
  -  -  nUR)                  UU5        UR)                  UU5        GMŒ  [        U5      U-  nUR+                  U5        UR)                  UUU* SU-
  -  S[        U5      -
  -  S	9  UR)                  UU[-        [.        U* U-  SU-
  -  5      S	9  GMþ     g )
NzVIf capturable=True, params, mu_products and state_steps must be on supported devices: Ú.r   r   ©Úalphar(   ç      à?ç¸…ëQ¸î?)Úvalue)rA   ÚjitÚis_scriptingr   Ú	enumeraterQ   Úview_as_realÚcompilerÚis_compilingr   r8   ÚtypeÚAssertionErrorr   Úmul_ÚaddÚlerp_Úaddcmul_ÚdivÚsqrtÚaddcdiv_Úadd_r   rC   )r   rZ   r[   r\   r]   r^   rc   rd   r   r"   r#   r!   r$   r   r   r   r_   ÚiÚparamrP   rN   rO   r:   Ústep_tÚcapturable_supported_devicesr5   Úbias_correction2ÚmuÚmu_nextÚdenomÚmu_product_nexts                                  r1   Ú_single_tensor_nadamr“     s&  € ô( �9‰9×!Ñ!×#Ñ#Ü˜‹^ˆä˜f×%‰ˆˆ5Þ'ˆu�QŠx¨e°A©h¨YˆØ˜1‘+ˆØ  ‘^ˆ
Ø  ‘^ˆ
Ø˜Q‘ˆä×Ò˜E×"Ñ"Ü×&Ò& uÓ-ˆEÜ×%Ò% dÓ+ˆDÜ×(Ò(¨Ó1ˆGÜ×+Ò+¨JÓ7ˆJô �~‰~×*Ñ*×,Ñ,¶Ü+LÓ+NÐ(à—‘×!Ñ! Z×%6Ñ%6×%;Ñ%;ÕQ¸v¿}¹}×?QÑ?QÖQØ—L‘L×%Ñ%Ð)EÓEä$ð-Ø-IÐ,JÈ!ðMóð ð 	�!‰ˆæØ‰Dä˜fÓ%ˆDà˜u d™{™?Ðà˜1ÓÞ%à—
‘
˜1˜rÑ0Ñ0Õ1à—x‘x ¨\�xÐ:�ð �c˜C 4¨D°>Ñ,AÑ#BÑCÑCÑDˆØ˜3 ¨°$¸±(¸nÑ1LÑ(MÑ!NÑNÑOˆð 	�bÑˆ
ð 	�‰�d˜A ™IÔ&Ø�‰˜Ó×'Ñ'¨¨d¸!¸e¹)Ð'ÑDØ—‘Ð/Ó0×5Ñ5Ó7ˆæžZØ—I‘I˜c“NˆEð )¨7Ñ2ˆOØ˜B˜3 #¨¡(Ñ+¨s°ZÑ/?Ñ@ÑAˆDØ "  w¡°#¸Ñ2GÑ!HÑIˆGØ�N‰N˜4 Ô'Ø�N‰N˜7 E×*ä(¨Ó4°wÑ>ˆOØ�J‰J�sŒOØ�N‰NØ�e R C¨3°©8Ñ$4¸¼jÈÓ>TÑ8TÑ$Uð ñ ð �N‰NØØÜœ5 B 3¨¡=°S¸?Ñ5JÑ"KÓLð ô òM &r3   c                ó¶  ^,• [        U 5      S:X  a  g U(       a  [        S5      e[        R                  R	                  5       (       dB  U(       a;  [        SS9m,[        U,4S j[        XUSS9 5       5      (       d  [        ST, S	35      e[        U5      n[        R                  " XX#XE/5      nUR                  5        GHý  u  u  nnnnnnn[        [        [           U5      n[        [        [           U5      n[        [        [           U5      n[        [        [           U5      n[        [        [           U5      n[        [        [           U5      nU(       a  [        UUUU5        U(       a  [        R                   " U5      n[        R                  R	                  5       (       d>  US   R"                  (       a*  [        R$                  " U[        R&                  " S
SS9S
S9  O[        R$                  " US5        U	S:w  aX  U(       a  [        R(                  " USX‰-  -
  5        O4U(       a  [        R$                  " UUU	S9  O[        R*                  " UUU	S9n[        R,                  " UUSU-
  5        [        R(                  " UU5        [        R.                  " UUUSU-
  5        [        R0                  " U5      nU(       GaB  [        R2                  " UU
5      n [        R4                  " SU 5      n![        R(                  " U!S5        [        R$                  " U!S
5        [        R(                  " U!U5        [        R$                  " U U
5        [        R4                  " SU 5      n"[        R(                  " U"S5        [        R$                  " U"S
5        [        R(                  " U"U5        A [        R4                  " UU5      n#[        R6                  " U#S
5        [        R8                  " U#5        [        R:                  " U#5        O{U V$s/ s H  n$SU[=        U$5      -  -
  S-  PM     n#n$U V$s/ s H  n$US
SS[=        U$5      U
-  -  -  -
  -  PM     n!n$U V$s/ s H   n$US
SS[=        U$5      S-   U
-  -  -  -
  -  PM"     n"n$[        R(                  " UU!5        [        R>                  " UU#5        [        R$                  " UU5        A#U(       Ga  [        R6                  " U!S
5        [        R(                  " U!U5        [        R@                  " US
5      n%[        R8                  " U%5        [        R>                  " U!U%5        U!n&A%[        R2                  " UU"5      n%[        R(                  " U"U5        [        R6                  " U%S
5        [        R>                  " U"U%5        U"n'A%[        R2                  " U&U5      n([        R.                  " U(U'U5        [        RB                  " UU(U5        GM5  [E        [        UU!SS9 V)V*s/ s H)  u  n)n*[=        U5      S
U*-
  -  S
[=        U)5      -
  -  S-  PM+     sn*n)5      n&[E        [        UU"SS9 V)V+s/ s H)  u  n)n+[=        U5      U+-  S
[=        U)5      U+-  -
  -  S-  PM+     sn+n)5      n'[        RB                  " UUUU&5        [        RB                  " UUUU'5        GM      g s  sn$f s  sn$f s  sn$f s  sn*n)f s  sn+n)f )Nr   z#_foreach ops don't support autogradF)Úsupports_xlac              3   ó  >#   • U  Hy  u  pnUR                   R                  UR                   R                  s=:H  =(       a    UR                   R                  :H  Os  =(       a    UR                   R                  T;   v •  M{     g 7frk   )r8   r€   )Ú.0rF   Úmpr5   r�   s       €r1   Ú	<genexpr>Ú&_multi_tensor_nadam.<locals>.<genexpr>œ  sa   øé € ð 
ò  R‘��tð �H‰H�M‰M˜RŸY™YŸ^™^×?Ó?¨t¯{©{×/?Ñ/?Ô?÷ >Ø—‘—‘Ð!=Ñ=ô>âQùs   ƒBBT)ÚstrictzWIf capturable=True, params, mu_products, and state_steps must be on supported devices: rt   r(   Úcpu)r8   ru   r   rx   g      à¿rw   éÿÿÿÿ)#r@   r�   rA   r~   r   r   ÚallÚzipr   r   Ú"_group_tensors_by_device_and_dtypeÚvaluesr   Úlistr   r   Ú_foreach_negÚis_cpuÚ_foreach_add_rD   Ú_foreach_mul_Ú_foreach_addÚ_foreach_lerp_Ú_foreach_addcmul_Ú_foreach_sqrtÚ_foreach_mulÚ_foreach_powÚ_foreach_sub_Ú_foreach_neg_Ú_foreach_sqrt_r   Ú_foreach_div_Ú_foreach_subÚ_foreach_addcdiv_r   )-r   rZ   r[   r\   r]   r^   rc   rd   r   r"   r#   r!   r$   r   r   r   r_   Úgrouped_tensorsÚgrouped_params_Úgrouped_grads_Úgrouped_exp_avgs_Úgrouped_exp_avg_sqs_Úgrouped_mu_products_Úgrouped_state_steps_Ú_Úgrouped_paramsÚgrouped_gradsÚgrouped_exp_avgsÚgrouped_exp_avg_sqsÚgrouped_mu_productsÚgrouped_state_stepsÚexp_avg_sq_sqrtÚexponentÚmusÚmu_nextsÚbias_correction_sqrtr5   r‘   Ústep_size_gradsÚstep_size_expavgÚ	numeratorr:   r�   r�   r�   s-                                               @r1   Ú_multi_tensor_nadamrÉ   }  sp  ø€ ô( ˆ6ƒ{�aÓØæÜÐBÓCÐCô �>‰>×&Ñ&×(Ñ(®ZÜ'HØñ(
Ð$ô ô 
ô  # 6¸ÈDÒQó
÷ 
ñ 
ô
 !ðVà/Ð0°ð3óð ô 
�B‹€Bä×BÒBØ	˜¨{ÐHó€Oð ×"Ñ"×$ñ		ñ 	ØØØØØØØÜœd¤6™l¨OÓ<ˆÜœT¤&™\¨>Ó:ˆÜ¤¤V¡Ð.?Ó@ÐÜ"¤4¬¡<Ð1EÓFÐÜ"¤4¬¡<Ð1EÓFÐÜ"¤4¬¡<Ð1EÓFÐö ÜØ Ð/?ÐATôö Ü!×.Ò.¨}Ó=ˆMô �~‰~×*Ñ*×,Ñ,Ð1DÀQÑ1G×1N×1NÜ×ÒØ#¤U§\¢\°#¸eÑ%DÈCóô ×ÒÐ 3°QÔ7à˜1ÓÞ%ä×#Ò# N°A¸Ñ8IÑ4IÕJö Ü×'Ò'Ø% ~¸\óô %*×$6Ò$6Ø% ~¸\ñ%�Mô
 	×ÒÐ-¨}¸aÀ%¹iÔHä×ÒÐ/°Ô7Ü×ÒØ °¸qÀ5¹yô	
ô  ×-Ò-Ð.AÓBˆ÷
 ä×)Ò)Ð*=¸~ÓNˆHÜ×$Ò$ T¨8Ó4ˆCÜ×Ò  TÔ*Ü×Ò  SÔ)Ü×Ò  UÔ+ô ×Ò ¨.Ô9Ü×)Ò)¨$°Ó9ˆHÜ×Ò ¨$Ô/Ü×Ò ¨#Ô.Ü×Ò ¨%Ô0ð ä#(×#5Ò#5°eÐ=PÓ#QÐ ä×ÒÐ 4°cÔ:Ü×ÒÐ 4Ô5Ü× Ò Ð!5Õ6ñ DWó$ÚCV¸4��Uœj¨Ó.Ñ.Ñ.°3Ô6ÑCVð !ð $ñ
 0óâ/�Dð ˜˜s d¬z¸$Ó/?À.Ñ/PÑ&QÑRÑRÔSÙ/ð ð ñ 0óò 0�Dð Ø˜ ¬*°TÓ*:¸QÑ*>À.Ñ)PÑ QÑRÑRôTá/ð ð ô 	×ÒÐ/°Ô5ä×Ò˜OÐ-AÔBÜ×Ò˜O¨SÔ1ð !çä×Ò  SÔ)Ü×Ò  RÔ(ä×&Ò&Ð':¸CÓ@ˆEÜ×Ò Ô&Ü×Ò  UÔ+à!ˆOàô ×&Ò&Ð':¸HÓEˆEÜ×Ò ¨"Ô-ô ×Ò  sÔ+Ü×Ò ¨%Ô0à'Ðàô ×*Ò*¨?¸MÓJˆIÜ×#Ò# IÐ/?ÐAQÔRô ×#Ò# N°I¸×Oä1ô +.Ð.AÀ3ÈtÒ*Tôâ*T™˜
 Bô   “^ s¨R¡xÑ0°C¼*ÀZÓ:PÑ4PÑQÐUWÔWÙ*TòóˆOô  3ô 03Ø+¨X¸dò0ô
ò0Ñ+˜
 Gô # 2›Ø!ñ"à¤¨JÓ!7¸'Ñ!AÑAñCð ôñ0ò
ó Ðô ×#Ò#ØØØØô	ô ×#Ò#ØØ ØØ ÷	òC %ùò`$ùòùòùóbùó
s   Ð[ Ð3$[Ñ'[
Ø0[Ù0[)Úsingle_tensor_fnr   c                ó°  • [        S U 5       5      (       d  [        S5      e[        S U 5       5      (       d  [        S5      eUc  [        X	SS9u  nnU(       a.  [        R                  R                  5       (       a  [        S5      eU(       a*  [        R                  R                  5       (       d  [        nO[        nU" U UUUUUUUUUUUUUUU	U
S	9  g)
zhFunctional API that performs NAdam algorithm computation.

See :class:`~torch.optim.NAdam` for details.
c              3   óV   #   • U  H  n[        U[        R                  5      v •  M!     g 7frk   ©r)   rA   r   ©r—   Úts     r1   r™   Únadam.<locals>.<genexpr>x  ó   é € Ð@²K¨qŒz˜!œUŸ\™\×*Ð*²Kùó   ‚')zPAPI has changed, `state_steps` argument must contain a list of singleton tensorsc              3   óV   #   • U  H  n[        U[        R                  5      v •  M!     g 7frk   rÍ   rÎ   s     r1   r™   rÐ   }  rÑ   rÒ   zPAPI has changed, `mu_products` argument must contain a list of singleton tensorsNF)Ú	use_fusedz6torch.jit.script not supported with foreach optimizers)rc   rd   r   r"   r#   r   r$   r!   r   r   r_   )rž   rT   r   rA   rz   r{   rÉ   r“   )r   rZ   r[   r\   r]   r^   r$   r   r   r   r_   r   rc   rd   r   r"   r#   r!   rº   Úfuncs                       r1   r   r   \  sß   € ô8 Ñ@±KÓ@×@Ñ@ÜØ^ó
ð 	
ô Ñ@±KÓ@×@Ñ@ÜØ^ó
ð 	
ð �Ü1Ø¨eñ
‰
ˆˆ7ö ”5—9‘9×)Ñ)×+Ñ+ÜÐSÓTÐTæ”u—y‘y×-Ñ-×/Ñ/Ü"‰ä#ˆáØØØØØØØØØØ!Ø%ØØ5ØØØ%Øó#r3   )FNFFFF)Ú__doc__Útypingr   rA   r   Ú	optimizerr   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   Ú__all__r   r¢   rC   rp   r“   rÉ   r   rL   r3   r1   Ú<module>rÚ      su  ðá .å ã Ý ÷÷ ÷ ÷ ó ð( �GÐ
€ôsˆIô sðn&ðN	à	ˆð 	ð 
ˆð 	Ø	ˆð 	Ø	Ðð 	Ø	Ðð ð!ñO>ð „ðFaØ�‰Lðaà�‰<ðað �6‰lðað �f‘ð	að
 �f‘ðað �f‘ðað ðað ðað 	ðað ðað ðað 
ðað !ðað ðað  ð!að" ð#að$ ð%að& 
ô'aðH\Ø�‰Lð\à�‰<ð\ð �6‰lð\ð �f‘ð	\ð
 �f‘ð\ð �f‘ð\ð ð\ð ð\ð 	ð\ð ð\ð ð\ð 
ð\ð !ð\ð ð\ð  ð!\ð" ð#\ð$ ð%\ð& 
ô'\ñ~  Ð1EÑFð $)ØØØ ØØñDØ�‰LðDà�‰<ðDð �6‰lðDð �f‘ð	Dð
 �f‘ðDð �f‘ðDð !ðDð �D‰[ðDð ðDð ðDð ðDð ðDð  ð!Dð" ð#Dð$ 	ð%Dð& ð'Dð( ð)Dð* 
ð+Dð, 
ô-Dó GñDr3   