+
    ÆÜ³jÎ1  ã                   ó  € ^ RI Ht ^ RIt^ RIHtHt ^ RIt^ RIHt	 ^ RI
Ht  ! R R]P                  P                  4      t ! R R]4      t ! R	 R
]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      tR# )é    )ÚIterableN)ÚLiteralÚOptional)ÚOptimizer2Statec                   óx   a a€ ] tR t^t oRtRV3R lV 3R lllt]P                  ! 4       RR l4       tRt	Vt
V ;t# )Ú_ReferenceAdEMAMixz,
Reference: https://hf.co/papers/2409.03137
c                ó¼   <€ V ^8„  d   QhRS[ S[P                  P                  ,          RS[RS[S[S[S[3,          RS[RS[RS[RS[S[,          RS[S[,          /# )	é   ÚparamsÚlrÚbetasÚalphaÚepsÚweight_decayÚt_beta3Út_alpha©r   ÚtorchÚnnÚ	ParameterÚfloatÚtupler   Úint)ÚformatÚ__classdict__s   "€Ú\/home/luca/screen-checking/.venv/lib/python3.14/site-packages/bitsandbytes/optim/ademamix.pyÚ__annotate__Ú_ReferenceAdEMAMix.__annotate__   s~   ø€ ÷ +ñ +á™Ÿ™×+Ñ+Õ,ð+ñ ð+ñ ‘U™E¡5Ð(Õ)ð	+ñ
 ð+ñ ð+ñ ð+ñ ™#•ð+ñ ™#•ñ+ó    c	           
     óD   <€ \        W#WEWgVR 7      p	\        S
V `	  W4       R# ))r   r   r   r   r   r   r   N)ÚdictÚsuperÚ__init__)Úselfr   r   r   r   r   r   r   r   ÚdefaultsÚ	__class__s   &&&&&&&&& €r   r#   Ú_ReferenceAdEMAMix.__init__   s(   ø€ ô Ø eÀ<Ðjqô
ˆô 	‰Ñ˜Ö*r   c           
     ó   € R pVe.   \         P                  ! 4       ;_uu_ 4        V! 4       pR R R 4       V P                   EFõ  pRV9   d   VR;;,          ^,          uu&   M^VR&   VR,          pVR,          pVR,          w  rgpVR,          p	VR,          p
VR,          pVR,          pVR	,           EF  pVP                  f   K  VP                  pV P                  V,          p\        V4      ^ 8X  d@   VP                  ^.VP                  4       O54      VR
&   \         P                  ! V4      VR&   VR
,          ^ ,          VR
,          ^,          VR,          ppp^WcR,          ,          ,
          p^WsR,          ,          ,
          pV
e"   \        VR,          V	,          V
,          V	4      p	Ve‡   \        P                  ! V4      p\        P                  ! V4      pVR,          V,          p\        \        P                  ! VV,          ^V,
          V,          VV,          ,           ,          4      V4      pVP                  V4      P                  V^V,
          R7       VP                  V4      P                  V^V,
          R7       VP                  V4      P                  Wî^V,
          R7       VP!                  4       VR,          ,          P#                  V4      pVP%                  V4      V	V,          ,           V,          pVP                  WÜR7       VP                  V) V,          4       EK‚  	  EKø  	  V#   + '       g   i     EL; i)NÚstepr   r   r   r   r   r   r   r   Úm1_m2Únu)r   )Úvalueg      à?)r   Úenable_gradÚparam_groupsÚgradÚstateÚlenÚ	new_zerosÚsizeÚ
zeros_likeÚminÚmathÚlogÚexpÚmul_Úadd_Úaddcmul_ÚsqrtÚaddÚdiv)r$   ÚclosureÚlossÚgroupr   r   Úbeta1Úbeta2Úbeta3r   r   r   r   Úpr/   r0   Úm1Úm2r+   Úbias_correction1Úbias_correction2Úln_beta1Úln_beta3Ú
step_scaleÚdenomÚupdates   &&                        r   r)   Ú_ReferenceAdEMAMix.step!   s¼  € àˆàÒÜ×"Ò"×$Õ$Ù“y�÷ %ð ×&Õ&ˆEØ˜ŒØ�f— Õ"”à !��f‘à�t•ˆBØ˜•,ˆCØ"'¨¥.ÑˆE˜%Ø˜'•NˆEØ˜IÕ&ˆGØ˜IÕ&ˆGØ  Õ0ˆLà˜8—_‘_�Ø—6‘6’>Ùà—v‘v�ØŸ
™
 1��ô �u“: ”?ð &'§[¡[°!°°a·f±f³h±Ó%@�E˜'‘NÜ"'×"2Ò"2°1Ó"5�E˜$‘Kà" 7�^¨AÕ.°°gµ¸qÕ0AÀ5ÈÅ;˜�B�à#$ u°fµÕ'=Õ#=Ð à#$ u°fµÕ'=Õ#=Ð ð Ò&Ü  f¥°Õ 5¸Õ ?ÀÓG�Eð Ò&Ü#Ÿxšx¨›�HÜ#Ÿxšx¨›�HØ!& v¥°Õ!8�JÜÜŸš (¨XÕ"5¸AÀ
½NÈhÕ;VÐ[eÐhpÕ[pÕ:qÕ!rÓsØó�Eð —‘˜“×#Ñ# D°°Eµ	Ð#Ô:Ø—‘˜“×#Ñ# D°°Eµ	Ð#Ô:Ø—‘˜“×'Ñ'¨¸!¸e½)Ð'ÔDð Ÿ™›Ð&6¸Õ&;Õ<×AÑAÀ#ÓF�ØŸ&™&Ð!1Ó2°U¸RµZÕ?À5ÕH�ð —‘˜A�Ô2ð —‘˜�s˜V•|×$ô_ %ñ 'ð~ ˆ÷E %×$Ð$ús   ¤L<Ì<M	© )çü©ñÒMbP?©gÍÌÌÌÌÌì?g+‡ÙÎ÷ï?g§èH.ÿï?ç      @ç:Œ0âŽyE>ç{®Gáz„?NN)N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r#   r   Úno_gradr)   Ú__static_attributes__Ú__classdictcell__Ú__classcell__©r&   r   s   @@r   r   r      s6   ù‡ € ñ÷+õ +ð" ‡]‚]ƒ_óFó ÷Fð Fr   r   c                   óÄ   a a€ ] tR t^kt oRV3R lV 3R lllt]P                  ! 4       R 4       t]P                  ! 4       V 3R l4       t]P                  3R lt
RtVtV ;t# )ÚAdEMAMixc                óÜ   <€ V ^8„  d   QhRS[ S[P                  P                  ,          RS[RS[S[S[S[3,          RS[RS[S[,          RS[S[,          RS[RS[R	S[R,          R
S[RS[	/# )r
   r   r   r   r   r   r   r   r   Ú
optim_bitsÚmin_8bit_sizeÚis_paged©é   é    )
r   r   r   r   r   r   r   r   r   Úbool)r   r   s   "€r   r   ÚAdEMAMix.__annotate__l   s    ø€ ÷ 
ñ 
á™Ÿ™×+Ñ+Õ,ð
ñ ð
ñ ‘U™E¡5Ð(Õ)ð	
ñ
 ð
ñ ™#•ð
ñ ™#•ð
ñ ð
ñ ð
ñ ˜E•Nð
ñ ð
ñ ñ
r   c                ó@   <€ \         SV `  R VVVVVV	RV
VVVVR7       R# ©ÚademamixN)r   r   r   r   r   rc   Úargsrd   re   r   r   r   ©r"   r#   )r$   r   r   r   r   r   r   r   r   rc   rd   re   r&   s   &&&&&&&&&&&&€r   r#   ÚAdEMAMix.__init__l   s>   ø€ ô 	‰ÑØØØØØØ%Ø!ØØ'ØØØØð 	ö 	
r   c                óH  € V P                  W4V4      pVR ,          ^ 8X  d   \        P                  pM4VR ,          ^8X  d   \        P                  pM\	        RVR ,           24      hVP                  4       VR,          8  d   \        P                  pV P                  V,          p^ VR&   V\        P                  8X  Ed9   RV P                  9  d   V P                  4        V P                  R,          P                  VP                  4      ;V P                  R&   VR&   V P                  R,          P                  VP                  4      ;V P                  R&   VR&   RpVP                  4       p	W˜,          \        W˜,          4      ,           p
\        P                  ! ^V
3\        P                  VP                  R	7      VR
&   \        P                  ! V
3\        P                  VP                  R	7      VR&   V P                  W&R7      VR&   V P                  W&R7      VR&   R# )rc   z(Amount of optimizer bits not supported: rd   r)   ÚdynamicÚqmap1ÚudynamicÚqmap2é   ©ÚdtypeÚdeviceÚabsmax1Úabsmax2)rx   Ústate1Ústate2N)Ú
get_configr   Úfloat32Úuint8ÚNotImplementedErrorÚnumelr0   Ú	name2qmapÚ	fill_qmapÚtory   ri   ÚzerosÚ_get_state_double_bufferÚget_state_buffer)r$   rA   rE   ÚgindexÚpindexÚconfigrx   r0   Ú	blocksizeÚnÚblockss   &&&&&      r   Ú
init_stateÚAdEMAMix.init_stateŠ   s®  € ð —‘ °Ó7ˆà�,Õ 2Ô%Ü—M‘M‰EØ�LÕ! QÔ&Ü—K‘K‰Eä%Ð(PÐQWÐXdÕQeÐPfÐ&gÓhÐhà�7‰7‹9�v˜oÕ.Ô.Ü—M‘MˆEà—
‘
˜1•ˆØˆˆf‰à”E—K‘KÕØ §¡Ô.Ø—‘Ô Ø9=¿¹È	Õ9R×9UÑ9UÐVW×V^ÑV^Ó9_Ð_ˆD�N‰N˜9Ñ%¨¨g©Ø:>¿.¹.ÈÕ:T×:WÑ:WÐXY×X`ÑX`Ó:aÐaˆD�N‰N˜:Ñ&¨¨w©àˆIØ—‘“	ˆAØ•n¬¨Q­]Ó(;Õ;ˆFä$Ÿ{š{¨A¨v¨;¼e¿m¹mÐTU×T\ÑT\Ô]ˆE�)ÑÜ$Ÿ{š{¨F¨9¼E¿M¹MÐRS×RZÑRZÔ[ˆE�)Ñà×7Ñ7¸Ð7ÓGˆˆh‰Ø×/Ñ/°Ð/Ó?ˆˆh‹r   c                óæ  <€ V P                  W4V4      pVR ,          '       g"   VR,          '       g   \        SV `	  WW44       R# VP                  P	                  4       Vn        VP
                  P	                  4       Vn        V P                  V,          pVP
                  pVR;;,          ^,          uu&   VR,          pVR,          w  ršpVR,          pVR ,          pVR,          pV'       d   \        WŒ,          V,          V4      pMTpV'       d€   \        P                  ! V	4      p\        P                  ! V4      pWŽ,          p\        \        P                  ! VV,          ^V,
          V,          VV,          ,           ,          4      V4      pMTpVR,          P                  \        P                  8X  d|   \        P                  ! V P                   TTVR,          T	VR,          TVR,          VR	,          T
TTVR
,          RVR,          R8”  d
   VR,          MRVR,          VR,          R7       R# VR,          P                  \        P"                  8X  d˜   \        P$                  ! V P                   VVVR,          VR	,          VR,          ^ ,          VR,          ^,          VVVR,          VVR,          VR,          VR,          VR,          VR,          VR
,          RVR,          R7       R# R# )r   r   Nr)   r   r   r|   r   r   r}   r   g      ð?Ú	max_unormg        Ú	unorm_vecÚ
skip_zeros)Úgnorm_scaler“   r’   r”   rs   ru   rz   r{   )r•   r”   )r~   r"   Úupdate_stepÚdataÚ
contiguousr/   r0   r5   r6   r7   r8   rx   r   r   ÚFÚoptimizer_update_32bitÚoptimizer_namer€   Úoptimizer_update_8bit_blockwise)r$   rA   rE   r‰   rŠ   r‹   r0   r/   r)   rB   rC   rD   r   r   r   Úalpha_trJ   rK   rL   Úbeta3_tr&   s   &&&&&               €r   r–   ÚAdEMAMix.update_step¯   sw  ø€ à—‘ °Ó7ˆà�i× Ô ¨°	×):Ô):ä‰GÑ ¨&Ô9Ùð —‘×"Ñ"Ó$ˆŒØ—‘×"Ñ"Ó$ˆŒà—
‘
˜1•ˆØ�v‰vˆàˆf�˜Õ‹Ø�V�}ˆà$ W�oÑˆ�eØ�w•ˆØ˜Õ#ˆØ˜Õ#ˆ÷ Ü˜$�,¨Õ0°%Ó8‰GàˆG÷ Ü—x’x “ˆHÜ—x’x “ˆHØ�ˆJÜÜ—’˜( XÕ-°A¸
µNÀhÕ3NÐS]Ð`hÕShÕ2iÕjÓkÐmró‰Gð ˆGð ��?× Ñ ¤E§M¡MÔ1Ü×$Ò$Ø×#Ñ#ØØØ�h•ØØ�u•ØØ�t•Ø�h•ØØØØ�~Õ&ØØ06°{Õ0CÀcÔ0I˜% Ö,ÈtØ  Õ-Ø! ,Õ/÷#ð& �8�_×"Ñ"¤e§k¡kÔ1Ü×-Ò-Ø×#Ñ#ØØØ�h•Ø�h•Ø�w• Õ"Ø�w• Õ"ØØØ�u•ØØ�t•Ø�g•Ø�g•Ø�iÕ Ø�iÕ Ø�~Õ&ØØ! ,Õ/÷'ñ 2r   c                óœ  € V P                   '       d   VP                  4       R 8  d5   \        P                  ! ^.VP	                  4       O5W!P
                  R7      # \        P                  ! ^.VP	                  4       O5RVRVP
                  / p\        P                  ! V^ 4       V P                  P                  P                  V4       V# )g     jø@rw   rx   ry   )re   r‚   r   r†   r3   ry   r™   Ú	get_pagedÚfillÚpage_mngÚpaged_tensorsÚappend)r$   rE   rx   Úbuffs   &&& r   r‡   Ú!AdEMAMix._get_state_double_buffer  sŠ   € Ø�}�}ˆ} §¡£	¨C¤Ü—;’; ˜~ A§F¡F£H™~°UÇ8Á8ÔLÐLä—;’;   Q§V¡V£X¡ÐM°eÐMÀAÇHÁHÑMˆDÜ�FŠF�4˜ŒOØ�M‰M×'Ñ'×.Ñ.¨tÔ4ØˆKr   rP   )
rQ   rR   rS   NNrT   rU   rh   é   F)rV   rW   rX   rY   r#   r   r[   r�   r–   r   r‡   r\   r]   r^   r_   s   @@r   ra   ra   k   s\   ù‡ € ÷
õ 
ð< ‡]‚]ƒ_ñ"@ó ð"@ðH ‡]‚]ƒ_ôRó ðRðh 16·±÷ ô r   ra   c                   óB   a a€ ] tR tRt oRV3R lV 3R llltRtVtV ;t# )ÚAdEMAMix8biti  c                óÈ   <€ V ^8„  d   QhRS[ S[P                  P                  ,          RS[RS[S[S[S[3,          RS[RS[S[,          RS[S[,          RS[RS[R	S[R
S[/
# ©r
   r   r   r   r   r   r   r   r   rd   re   ©	r   r   r   r   r   r   r   r   ri   )r   r   s   "€r   r   ÚAdEMAMix8bit.__annotate__  s’   ø€ ÷ 
ñ 
á™Ÿ™×+Ñ+Õ,ð
ñ ð
ñ ‘U™E¡5Ð(Õ)ð	
ñ
 ð
ñ ™#•ð
ñ ™#•ð
ñ ð
ñ ð
ñ ð
ñ ñ
r   c                ó<   <€ \         SV `  VVVVVVVV^V	V
R7       R# )rg   ©
r   r   r   r   r   r   r   rc   rd   re   Nro   ©r$   r   r   r   r   r   r   r   r   rd   re   r&   s   &&&&&&&&&&&€r   r#   ÚAdEMAMix8bit.__init__  s8   ø€ ô 	‰ÑØØØØØØØØ%ØØ'Øð 	ö 	
r   rP   ©	rQ   rR   rS   NNrT   rU   r¨   F©rV   rW   rX   rY   r#   r\   r]   r^   r_   s   @@r   rª   rª     ó   ù‡ € ÷
÷ 
õ 
r   rª   c                   óB   a a€ ] tR tRt oRV3R lV 3R llltRtVtV ;t# )ÚPagedAdEMAMix8biti+  c                óÂ   <€ V ^8„  d   QhRS[ S[P                  P                  ,          RS[RS[S[S[S[3,          RS[RS[S[,          RS[S[,          RS[RS[R	S[/	# ©
r
   r   r   r   r   r   r   r   r   rd   r   )r   r   s   "€r   r   ÚPagedAdEMAMix8bit.__annotate__,  óˆ   ø€ ÷ 
ñ 
á™Ÿ™×+Ñ+Õ,ð
ñ ð
ñ ‘U™E¡5Ð(Õ)ð	
ñ
 ð
ñ ™#•ð
ñ ™#•ð
ñ ð
ñ ð
ñ ñ
r   c
                ó:   <€ \         S
V `  VVVVVVVVV	R R7
       R# ©T)	r   r   r   r   r   r   r   rd   re   Nro   ©r$   r   r   r   r   r   r   r   r   rd   r&   s   &&&&&&&&&&€r   r#   ÚPagedAdEMAMix8bit.__init__,  ó5   ø€ ô 	‰ÑØØØØØØØØ%Ø'Øð 	ö 	
r   rP   ©rQ   rR   rS   NNrT   rU   r¨   r´   r_   s   @@r   r·   r·   +  ó   ù‡ € ÷
÷ 
õ 
r   r·   c                   óB   a a€ ] tR tRt oRV3R lV 3R llltRtVtV ;t# )ÚPagedAdEMAMixiF  c                óÖ   <€ V ^8„  d   QhRS[ S[P                  P                  ,          RS[RS[S[S[S[3,          RS[RS[S[,          RS[S[,          RS[RS[R	S[R,          R
S[/
# )r
   r   r   r   r   r   r   r   r   rc   rd   rf   )	r   r   r   r   r   r   r   r   r   )r   r   s   "€r   r   ÚPagedAdEMAMix.__annotate__G  s–   ø€ ÷ 
ñ 
á™Ÿ™×+Ñ+Õ,ð
ñ ð
ñ ‘U™E¡5Ð(Õ)ð	
ñ
 ð
ñ ™#•ð
ñ ™#•ð
ñ ð
ñ ð
ñ ˜E•Nð
ñ ñ
r   c                ó<   <€ \         SV `  VVVVVVVVV	V
R R7       R# )Tr°   Nro   )r$   r   r   r   r   r   r   r   r   rc   rd   r&   s   &&&&&&&&&&&€r   r#   ÚPagedAdEMAMix.__init__G  s8   ø€ ô 	‰ÑØØØØØØØØ%Ø!Ø'Øð 	ö 	
r   rP   )	rQ   rR   rS   NNrT   rU   rh   r¨   r´   r_   s   @@r   rÄ   rÄ   F  rµ   r   rÄ   c                   óB   a a€ ] tR tRt oRV3R lV 3R llltRtVtV ;t# )ÚAdEMAMix32bitic  c                óÈ   <€ V ^8„  d   QhRS[ S[P                  P                  ,          RS[RS[S[S[S[3,          RS[RS[S[,          RS[S[,          RS[RS[R	S[R
S[/
# r¬   r­   )r   r   s   "€r   r   ÚAdEMAMix32bit.__annotate__d  s’   ø€ ÷ 
ñ 
á™Ÿ™×+Ñ+Õ,ð
ñ ð
ñ ‘U™E¡5Ð(Õ)ð	
ñ
 ð
ñ ™#•ð
ñ ™#•ð
ñ ð
ñ ð
ñ ð
ñ ñ
r   c                ó@   <€ \         SV `  R VVVVV^ RV	V
VVVR7       R# rl   ro   r±   s   &&&&&&&&&&&€r   r#   ÚAdEMAMix32bit.__init__d  s>   ø€ ô 	‰ÑØØØØØØ%ØØØ'ØØØØð 	ö 	
r   rP   r³   r´   r_   s   @@r   rÊ   rÊ   c  s   ù‡ € ÷
÷ 
õ 
r   rÊ   c                   óB   a a€ ] tR tRt oRV3R lV 3R llltRtVtV ;t# )ÚPagedAdEMAMix32biti‚  c                óÂ   <€ V ^8„  d   QhRS[ S[P                  P                  ,          RS[RS[S[S[S[3,          RS[RS[S[,          RS[S[,          RS[RS[R	S[/	# r¹   r   )r   r   s   "€r   r   ÚPagedAdEMAMix32bit.__annotate__ƒ  r»   r   c
                ó:   <€ \         S
V `  VVVVVVVVV	R R7
       R# r½   ro   r¾   s   &&&&&&&&&&€r   r#   ÚPagedAdEMAMix32bit.__init__ƒ  rÀ   r   rP   rÁ   r´   r_   s   @@r   rÐ   rÐ   ‚  rÂ   r   rÐ   )Úcollections.abcr   r6   Útypingr   r   r   Úbitsandbytes.functionalÚ
functionalr™   Úbitsandbytes.optim.optimizerr   ÚoptimÚ	Optimizerr   ra   rª   r·   rÄ   rÊ   rÐ   rP   r   r   Ú<module>rÜ      s{   ðÝ $Û ß $ã å #Ý 8ô]˜Ÿ™×.Ñ.ô ]ô@`ˆô `ôF
�8ô 
ô:
˜ô 
ô6
�Hô 
ô:
�Oô 
ô>
˜ö 
r   