+
    ÆÜ³jZM  ã                   ó0  € ^ RI Ht ^ RIHtHt ^ RIHtHt ^ RIH	t	 ^ RI
t
^RIHt ^RIHt RGR lt]! R	R
4      RHR R ll4       t]! RR
4      RHR R ll4       t]! RR
4      RHR R ll4       t]! RR
4      R R l4       t]! RR
4      R R l4       tRGR R llt]! RR
4      RIR R ll4       t]! RR
4      R R  l4       t]! R!R"7      R# R$ l4       t]! R%R
4      R& R' l4       t]R( R) l4       t]! R*R
4      R+ R, l4       t]! R!R"7      R- R. l4       t]! R/R
4      R0 R1 l4       t]! R2R
4      R3 R4 l4       tRJR5 R6 llt]! R7R
4      ! ]4       ^ t^t^t^t^t^tR8]R9]R:]R;]R<]R=]R>]R?]/t]R@ RA l4       t]RB RC l4       t]! RDR
4      RKRE RF ll4       tR# )Lé    )ÚSequence)ÚcacheÚwraps)ÚprodÚsqrt)ÚOptionalN)Úregister_kernel)Ú_get_4bit_codec                ó,   a€ V3R lpV f   V# V! V 4      # )z]
Wrapper around torch.compile that falls back to the original function if compilation fails.
c                 óŒ   <a a€  \         P                  ! S 3/ SB o\        S 4      VV 3R  l4       pV#   \         d    S u # i ; i)c                  óH   <€  S! V / VB #   \          d    S! T / TB u # i ; i©N)Ú	Exception)ÚargsÚkwargsÚcompiled_fnÚfns   *,€€Úb/home/luca/screen-checking/.venv/lib/python3.14/site-packages/bitsandbytes/backends/default/ops.pyÚwrapperÚ6_try_torch_compile.<locals>.decorator.<locals>.wrapper   s7   ø€ ð/Ù&¨Ð7°Ñ7Ð7øÜ ô /Ù˜tÐ. vÑ.Ò.ð/ús   ƒ ‹! !)ÚtorchÚcompiler   r   )r   r   r   Úcompile_kwargss   f @€r   Ú	decoratorÚ%_try_torch_compile.<locals>.decorator   sL   ú€ ð	ÜŸ-š-¨Ñ=¨nÑ=ˆKä�2‹Yõ/ó ð/ð ˆNøÜô 	ØŠIð	ús   …-3 ³AÁA© )Úfuncr   r   s   &l r   Ú_try_torch_compiler      s   ø€ õ
ð ‚|ØÐá˜‹Ðó    zbitsandbytes::int8_mm_dequantÚdefaultc                ó  € V ^8„  d   QhR\         P                  R\         P                  R\         P                  R\        \         P                  ,          R\        \         P                  ,          R\         P                  /# )é   ÚAÚ	row_statsÚ	col_statsÚdtypeÚbiasÚreturn©r   ÚTensorr   r&   )Úformats   "r   Ú__annotate__r,   '   sf   € ÷ *ñ *Ü‡|�|ð*ä�|‰|ð*ô �|‰|ð*ô ”E—K‘KÕ ð	*ô
 ”5—<‘<Õ
 ð*ô ‡\�\ñ*r   c                 ó¨  € V P                   \        P                  8w  d   \        R V P                    24      hVP                   \        P                  8w  d   \        RVP                    24      hVP                   \        P                  8w  d   \        RVP                    24      hV P                  RV P                  R,          4      pVP                  R4      P                  R4      pVP                  R4      P                  ^ 4      pWQV,          ,          R,          pVe	   Wd,          pTP                  T;'       g    \        P                  4      # )zA must be int32, got zrow_stats must be float32, got zcol_stats must be float32, got gŽ D1Õ@?éÿÿÿÿ)r&   r   Úint32Ú
ValueErrorÚfloat32ÚviewÚshapeÚreshapeÚ	unsqueezeÚtoÚfloat16)r#   r$   r%   r&   r'   ÚA_calcÚouts   &&&&&  r   Ú_r:   &   s  € ð 	‡w�w”%—+‘+ÔÜÐ0°·±°	Ð:Ó;Ð;Ø‡�œ%Ÿ-™-Ô'ÜÐ:¸9¿?¹?Ð:KÐLÓMÐMØ‡�œ%Ÿ-™-Ô'ÜÐ:¸9¿?¹?Ð:KÐLÓMÐMà�V‰V�B˜Ÿ™ �Ó$€FØ×!Ñ! "Ó%×/Ñ/°Ó3€IØ×!Ñ! "Ó%×/Ñ/°Ó2€Ià
 	Õ)Õ
*¨\Õ
9€CØÒØ�ˆà�6‰6�%×(Ð(œ5Ÿ=™=Ó)Ð)r   z"bitsandbytes::int8_mixed_scaled_mmc                ó�  € V ^8„  d   QhR\         P                  R\         P                  R\         P                  R\         P                  R\         P                  R\        \         P                  ,          R\        \         P                  ,          R\        \         P                  \        \         P                  ,          3,          /# )	r"   r#   ÚCAÚCBÚSCAÚSCBÚoutlier_colsr'   r(   )r   r*   r   Útuple)r+   s   "r   r,   r,   A   s•   € ÷ #ñ #Ü‡|�|ð#ä�‰ð#ô 	�‰ð#ô 
�‰ð	#ô
 
�‰ð#ô œ5Ÿ<™<Õ(ð#ô ”5—<‘<Õ
 ð#ô Œ5�<‰<œ¤%§,¡,Õ/Ð/Õ0ñ#r   c           	      ó\  € R pVe£   VP                  4       '       d�   V RV3,          P                  4       p\        P                  P                  P
                  P                  VRV3,          P                  4       V4      P                  V P                  4      P                  4       pM-\        P                  ! ^ V P                  V P                  R7      p\        P                  P                  P                  P                  WW4W`P                  R7      p	Ve   V	P                  W‡4      p	W˜3# )NºNNN©Údevicer&   )r'   r&   )ÚnumelÚ
contiguousr   ÚopsÚbitsandbytesÚint8_vectorwise_dequantr    r6   r&   ÚtÚemptyrE   Úint8_scaled_mmÚaddmm)
r#   r<   r=   r>   r?   r@   r'   ÚsubBÚsubAÚoutputs
   &&&&&&&   r   r:   r:   @   sê   € ð €DàÒ L×$6Ñ$6×$8Ò$8à��L�Õ!×,Ñ,Ó.ˆô �I‰I×"Ñ"×:Ñ:×BÑBÀ2ÀaÈÀoÕCV×CaÑCaÓCcÐehÓiß‰R�—‘‹[ß‰Q‹Sñ 	ô �{Š{˜1 Q§X¡X°Q·W±WÔ=ˆô �Y‰Y×#Ñ#×2Ñ2×:Ñ:¸2À3ÐRV×^eÑ^eÐ:Óf€FàÒà—‘˜dÓ)ˆàˆ<Ðr   zbitsandbytes::int8_scaled_mmc                ó$  € V ^8„  d   QhR\         P                  R\         P                  R\         P                  R\         P                  R\        \         P                  ,          R\        \         P                  ,          R\         P                  /# )r"   r#   ÚBr$   r%   r'   r&   r(   r)   )r+   s   "r   r,   r,   h   st   € ÷ ñ Ü‡|�|ðä‡|�|ðô �|‰|ðô �|‰|ð	ô
 ”5—<‘<Õ
 ðô ”E—K‘KÕ ðô ‡\�\ñr   c                 ó  € \         P                  P                  P                  P	                  W4      p\         P                  P                  P
                  P	                  TTTT;'       g    \         P                  VR 7      # ))r&   r'   )r   rH   rI   Úint8_linear_matmulr    Úint8_mm_dequantr7   )r#   rS   r$   r%   r'   r&   Úout_i32s   &&&&&& r   r:   r:   g   sg   € ô �i‰i×$Ñ$×7Ñ7×?Ñ?ÀÓE€GÜ�9‰9×!Ñ!×1Ñ1×9Ñ9ØØØØ×$Ð$”u—}‘}Øð :ó ð r   z bitsandbytes::int8_linear_matmulc                óX   € V ^8„  d   QhR\         P                  R\         P                  /# )r"   r#   rS   ©r   r*   )r+   s   "r   r,   r,   {   s"   € ÷ *ñ *Œ�‰ð *œ%Ÿ,™,ñ *r   c                 ó   € \        W4      # r   )Ú_int8_linear_matmul_impl)r#   rS   s   &&r   r:   r:   z   s   € ä# AÓ)Ð)r   z$bitsandbytes::int8_linear_matmul.outc                óx   € V ^8„  d   QhR\         P                  R\         P                  R\         P                  /# ©r"   r#   rS   r9   rY   )r+   s   "r   r,   r,   €   s-   € ÷ (ñ (Œ�‰ð (œ%Ÿ,™,ð (¬U¯\©\ñ (r   c                 óŒ   € VP                   \        P                  8w  d   \        R VP                    24      h\	        WV4       R# )zout must be int32, got N)r&   r   r/   r0   r[   )r#   rS   r9   s   &&&r   r:   r:      s3   € à
‡y�y”E—K‘KÔÜÐ2°3·9±9°+Ð>Ó?Ð?Ü˜Q 3Ö'r   c                óŽ   € V ^8„  d   QhR\         P                  R\         P                  R\        \         P                  ,          /# r]   )r   r*   r   )r+   s   "r   r,   r,   †   s2   € ÷ ñ ¤§¡ð ´·±ð ÄHÌUÏ\É\ÕDZñ r   c                 óì   € \         P                  ! V P                  4       VP                  4       P                  4       4      P	                  \         P
                  4      pVe   VP                  V4      pV# r   )r   ÚmatmulÚfloatrK   r6   r/   Úcopy_)r#   rS   r9   Úresults   &&& r   r[   r[   †   sK   € ä�\Š\˜!Ÿ'™'›) Q§W¡W£Y§[¡[£]Ó3×6Ñ6´u·{±{ÓC€FØ
‚Ø—‘˜6Ó"ˆØ€Mr   z#bitsandbytes::int8_vectorwise_quantc                ó8   € V ^8„  d   QhR\         P                  /# )r"   r#   rY   )r+   s   "r   r,   r,   �   s   € ÷ ",ñ ",Œ�‰ñ ",r   c                 ó  € V P                  4       V P                  R,          ,          pRpRpVR8”  d«   V P                  4       V8¬  pVP                  4       '       dQ   \        P
                  ! VP                  ^ R7      4      P                  R4      pW,          P                  4       p^ W&   M1\        P                  ! ^ V P                  \        P                  R7      p\        P                  ! V P                  4       ^R7      P                  P                  4       p\        P                  ! V RVP                  R4      ,          ,          4      P!                  \        P"                  4      pV^8”  d   Ve   ^ VRV3&   Ve   W@X&   WvV3# )é   Nç        ©ÚdimrD   g     À_@rC   r.   )rF   r3   ÚabsÚanyr   Úargwherer2   ÚclonerL   rE   Úint64ÚmaxÚvaluesrb   Úroundr5   r6   Úint8)r#   Ú	thresholdÚrowsr@   Úoutlier_restoreÚoutliersr$   Úout_rows   &&      r   r:   r:   Ž   s0  € à�7‰7‹9˜Ÿ™ �Õ#€DØ€Là€Oà�3„Ø—5‘5“7˜iÑ'ˆà�<‰<�>Š>ô !Ÿ>š>¨(¯,©,¸1¨,Ó*=Ó>×CÑCÀBÓGˆLØ�k×/Ñ/Ó1ˆOØˆAŠKô !Ÿ;š; q°·±ÄÇÁÔMˆLô —	’	˜!Ÿ%™%›' qÔ)×0Ñ0×6Ñ6Ó8€Iô �kŠk˜!˜u y×':Ñ':¸2Ó'>Õ>Õ?Ó@×CÑCÄEÇJÁJÓO€Gð ˆa„x�LÒ,Ø#$ˆ��<�Ñ ð Ò"Ø%ˆ(‰à˜|Ð+Ð+r   z bitsandbytes::quantize_blockwisec          
      óº   € V ^8„  d   QhR\         P                  R\         P                  R\        R\        \         P                  \         P                  3,          /# )r"   r#   ÚcodeÚ	blocksizer(   )r   r*   ÚintrA   )r+   s   "r   r,   r,   µ   sE   € ÷ &ñ &Œ�‰ð &œUŸ\™\ð &´cð &¼eÄEÇLÁLÔRW×R^ÑR^ÐD^Õ>_ñ &r   c                 ó²  € V P                  R	4      P                  4       pVP                  4       pWB,          pWE,
          pWb,          pVRV P                  Wr4      pVP                  4       P	                  R	R7      ^ ,          p	\
        P                  ! VRV	P                  RR7      P                  R	^4      ,          ,          R	^4      P                  R	4      p
V'       dŽ   W6R P                  4       P	                  4       P                  RR7      p\
        P                  ! W›P                  ^ 4      .4      p	\
        P                  ! V
\
        P                  ! W6R V,          R	^4      .4      p
VRR	 VR,          ,           ^,          p\
        P                  ! W¬RR7      P                  \
        P                  4      pVP                  V P                  4      V	3# )
rg   Nri   ç      ð?çäxª�û88©Úminºrg   NNT©Ú	out_int32r.   )r4   rb   rF   rk   rp   r   Úclampr2   Úcatr5   Ú	bucketizer6   Úuint8r3   )r#   rz   r{   ÚA_flatÚnÚremÚfullÚblocksÚA_comÚabsmaxÚscaledÚamÚboundsÚqs   &&&           r   r:   r:   ´   si  € à�Y‰Y�r‹]× Ñ Ó"€FØ�‰‹€AØ
�-€CØ�7€DØÕ€FØ�5�DˆM×!Ñ! &Ó4€EØ�Y‰Y‹[�_‰_ ˆ_Ó$ QÕ'€FÜ�[Š[˜ #¨¯©¸¨Ó(?×(DÑ(DÀRÈÓ(KÕ"KÕLÈbÐRSÓT×\Ñ\Ð]_Ó`€Fß
Ø�Eˆ]×ÑÓ ×$Ñ$Ó&×,Ñ,°Ð,Ó7ˆÜ—’˜F§L¡L°£OÐ4Ó5ˆÜ—’˜F¤E§K¢K°°u°ÀÕ0BÀBÈÓ$JÐKÓLˆØ�3�Bˆi˜$˜r�(Õ" aÕ'€FÜ�Š˜°$Ô7×:Ñ:¼5¿;¹;ÓG€AØ�9‰9�Q—W‘WÓ˜vÐ%Ð%r   F)Údynamicc          
      ó¤   € V ^8„  d   QhR\         P                  R\         P                  R\         P                  R\        R\         P                  /# )r"   r‰   r�   rz   r{   r&   ©r   r*   r|   r&   )r+   s   "r   r,   r,   È   sF   € ÷ ñ Ü�L‰LðÜ"'§,¡,ðÜ6;·l±lðÜORðÜ[`×[fÑ[fñr   c                 ó  € V P                  4       pW P                  \        P                  4      ,          pWS,          pV^ 8X  d:   VP	                  RV4      VP                  R^4      ,          P	                  V4      pMrWW,
          pWƒ,          p	\        P                  ! VRV P	                  W“4      VRV	 P                  R^4      ,          P	                  V4      WhR W,          ,          .4      pVP                  V4      # )r   Nr.   )rF   r6   r   ro   r4   r2   r†   )
r‰   r�   rz   r{   r&   rŠ   r9   r‹   rŒ   r�   s
   &&&&&     r   Ú_dequantize_blockwise_computer˜   Ç   sÖ   € ð 	�‰‹€AØ
�y‰yœŸ™Ó%Õ
&€CØ
�-€CØ
ˆa„xØ�{‰{˜2˜yÓ)¨F¯K©K¸¸AÓ,>Õ>×GÑGÈÓJ‰à�wˆØÕ"ˆÜ�iŠià�U�d�×#Ñ# FÓ6¸ÀÀ¸×9MÑ9MÈbÐRSÓ9TÕT×]Ñ]Ð^bÓcØ�E�
˜V�^Õ+ðó
ˆð �6‰6�%‹=Ðr   z"bitsandbytes::dequantize_blockwisec                óÄ   € V ^8„  d   QhR\         P                  R\         P                  R\         P                  R\        R\         P                  R\         P                  /# )r"   r#   r�   rz   r{   r&   r(   r–   )r+   s   "r   r,   r,   Ý   sX   € ÷ iñ iŒ�‰ð iœuŸ|™|ð i´5·<±<ð iÌCð iÔX]×XcÑXcð iÔhm×htÑhtñ ir   c                 ól   € \        V P                  R4      WW44      P                  V P                  4      # ©rg   r.   )r˜   r4   r3   )r#   r�   rz   r{   r&   s   &&&&&r   r:   r:   Ü   s+   € ä(¨¯©°2«¸ÀiÓW×_Ñ_Ð`a×`gÑ`gÓhÐhr   c                óD   € V ^8„  d   QhR\         R\        P                  /# )r"   Ú
quant_typerE   )Ústrr   rE   )r+   s   "r   r,   r,   â   s   € ÷ ñ ¬#ð ´u·|±|ñ r   c                 ó–   € \        W4      p\        P                  ! V4      pW#R R ,          W#R,          ,          ,           ^,          pWC3# )Nr‚   r.   )r
   r   Úargsort)r�   rE   rz   ÚorderÚ	midpointss   &&   r   Ú_get_4bit_quantize_boundsr£   á   sA   € ä˜*Ó-€DÜ�MŠM˜$Ó€EØ˜C˜R�jÕ! D¨r­¥OÕ3°qÕ8€IØÐÐr   zbitsandbytes::quantize_4bitc                óÆ   € V ^8„  d   QhR\         P                  R\        R\        R\         P                  R\
        \         P                  \         P                  3,          /# )r"   r#   r{   r�   Úquant_storager(   )r   r*   r|   rž   r&   rA   )r+   s   "r   r,   r,   ê   sN   € ÷ ñ Ü‡|�|ðÜ #ðÜ14ðÜEJÇ[Á[ðä
Œ5�<‰<œŸ™Ð%Õ&ñr   c                 ó
  € \        W P                  4      w  rEV P                  R4      P                  4       pVP	                  4       pWq,          pWx,
          p	W‘,          p
VRV	 P                  W¡4      pVP                  4       P                  RR7      ^ ,          p\        P                  ! VRVP                  RR7      P                  R^4      ,          ,          R^4      P                  R4      pV'       dŽ   WiR P                  4       P                  4       P                  RR7      p\        P                  ! WÎP                  ^ 4      .4      p\        P                  ! V\        P                  ! WiR V,          R^4      .4      pVP	                  4       ^,          '       d+   \        P                  P                  P                  VR4      p\        P                  ! WÔRR7      pVR8w  d	   W_,          pVP!                  \        P"                  4      pVR	,          ^,          VR
,          ,          P                  ^4      pV\        P"                  8w  d/   VP%                  4       P                  V4      P                  ^4      pVV3# )rg   Nri   r~   r   r€   Trƒ   Únf4ºNNr"   ºrg   Nr"   r.   )r   rg   )r£   rE   r4   rb   rF   rk   rp   r   r…   r2   r†   r5   ÚnnÚ
functionalÚpadr‡   r6   rˆ   Úsqueeze)r#   r{   r�   r¥   r’   r¡   r‰   rŠ   r‹   rŒ   r�   rŽ   r�   r�   r‘   r“   Úq8Úpackeds   &&&&              r   r:   r:   é   sâ  € ô .¨j¿(¹(ÓC�M€FØ�Y‰Y�r‹]× Ñ Ó"€FØ�‰‹€AØ
�-€CØ�7€DØÕ€FØ�5�DˆM×!Ñ! &Ó4€EØ�Y‰Y‹[�_‰_ ˆ_Ó$ QÕ'€FÜ�[Š[˜ #¨¯©¸¨Ó(?×(DÑ(DÀRÈÓ(KÕ"KÕLÈbÐRSÓT×\Ñ\Ð]_Ó`€Fß
Ø�Eˆ]×ÑÓ ×$Ñ$Ó&×,Ñ,°Ð,Ó7ˆÜ—’˜F§L¡L°£OÐ4Ó5ˆÜ—’˜F¤E§K¢K°°u°ÀÕ0BÀBÈÓ$JÐKÓLˆØ‡|�|ƒ~˜×ÔÜ—‘×$Ñ$×(Ñ(¨°Ó8ˆÜ�Š˜°$Ô7€AØ�UÔØ�HˆØ	
�‰Œe�k‰kÓ	€BØ�#�w˜!�|˜r $�xÕ'×2Ñ2°1Ó5€FØœŸ™Ô#Ø—‘Ó!×&Ñ& }Ó5×?Ñ?ÀÓBˆØ�6ˆ>Ðr   c                óÆ   € V ^8„  d   QhR\         P                  R\         P                  R\         P                  R\        R\        \        ,          R\         P                  /# )r"   r‰   r�   rz   r{   r3   r&   )r   r*   r|   r   r&   )r+   s   "r   r,   r,     sX   € ÷ 1ñ 1Ü�L‰Lð1ä�L‰Lð1ô �,‰,ð1ô ð	1ô
 ”C�=ð1ô �;‰;ñ1r   c                 óü  € \        V4      p\        P                  ! V P                  ^ 4      ^,          \        P                  V P
                  R7      pV ^,          VR&   V ^,	          VR&   W',          RV pWc,          pV'       d—   Wh,
          p	W“,          p
\        P                  ! V\        P                  V P
                  R7      pVRV	 P                  RV4      VRV
 P                  R^4      ,          P                  V	4      VRV	% WyR W,          ,          W¹R% M8VP                  RV4      VP                  R^4      ,          P                  V4      pVP                  ! R.VR,          O5!  P                  V4      # )r   )r&   rE   r©   r¨   Nr‚   r.   )
r   r   rL   Úsizer/   rE   r1   r2   r4   r6   )r‰   r�   rz   r{   r3   r&   rŠ   Úout_dqr‹   rŒ   r�   r9   s   &&&&&&      r   Ú_dequantize_4bit_computer´     s4  € ô 	ˆU‹€AÜ�[Š[˜Ÿ™ Q›¨!Õ+´5·;±;ÀvÇ}Á}ÔU€FØ˜C•<€Fˆ4�LØ˜A•+€Fˆ3�KØ�\˜"˜1Ð€FØ
�-€Cß
Ø�wˆØÕ"ˆÜ�kŠk˜!¤5§=¡=¸¿¹ÔGˆØ˜U˜d�m×(Ñ(¨¨YÓ7¸&ÀÀ&¸/×:NÑ:NÈrÐSTÓ:UÕU×^Ñ^Ð_cÓdˆˆEˆTˆ
Ø˜E�] V¥^Õ3ˆˆE‰
à�{‰{˜2˜yÓ)¨F¯K©K¸¸AÓ,>Õ>×GÑGÈÓJˆØ�;Š;�rÐ&˜E "�IÓ&×)Ñ)¨%Ó0Ð0r   zbitsandbytes::dequantize_4bitc                óÒ   € V ^8„  d   QhR\         P                  R\         P                  R\        R\        R\        \        ,          R\         P
                  R\         P                  /# )r"   r#   r�   r{   r�   r3   r&   r(   )r   r*   r|   rž   r   r&   )r+   s   "r   r,   r,   !  sk   € ÷ Zñ ZÜ‡|�|ðZä�L‰LðZô ðZô ð	Zô
 ”C�=ðZô �;‰;ðZô ‡\�\ñZr   c                 óâ   € V P                   \        P                  8w  d    V P                  \        P                  4      p \	        W0P
                  4      p\        V P                  R4      WW$V4      # r›   )r&   r   rˆ   r2   r
   rE   r´   r4   )r#   r�   r{   r�   r3   r&   rz   s   &&&&&& r   r:   r:      sN   € ð 	‡w�w”%—+‘+ÔØ�F‰F”5—;‘;ÓˆÜ˜*§h¡hÓ/€DÜ# A§I¡I¨b£M°6ÀÐSXÓYÐYr   zbitsandbytes::gemv_4bitc                óæ   € V ^8„  d   QhR\         P                  R\         P                  R\        \        ,          R\         P                  R\         P                  R\        R\         P                  /# )r"   r#   rS   ÚshapeBr�   rz   r{   r(   )r   r*   r   r|   )r+   s   "r   r,   r,   0  sf   € ÷ ñ Ü‡|�|ðä‡|�|ðô ”S�Mðô �L‰Lð	ô
 �,‰,ðô ðô ‡\�\ñr   c                 óü   € V^,          ^ 8”  d   RMRp\         P                  P                  P                  P	                  WWVW P
                  4      p\         P                  P                  P                  V VRR7      # )rg   Úfp4r§   N)r'   )	r   rH   rI   Údequantize_4bitr    r&   rª   r«   Úlinear)r#   rS   r¸   r�   rz   r{   r�   ÚB_dqs   &&&&&&  r   r:   r:   /  sk   € ð ˜q�' Aœ+‘¨5€JÜ�9‰9×!Ñ!×1Ñ1×9Ñ9¸!ÀYÐ\b×dkÑdkÓl€Dä�8‰8×Ñ×%Ñ%Ø	ØØð &ó ð r   c                óª  € V ^8„  d   QhR\         P                  R\         P                  R\        \        ,          R\         P                  R\        R\        R\
        \         P                  ,          R\
        \         P                  ,          R	\
        \         P                  ,          R
\
        \         P                  ,          R\         P                  /# )r"   r#   rS   r¸   r�   r{   r�   r'   Úabsmax_8bitÚabsmax_codeÚabsmax_offsetr(   )r   r*   r   r|   rž   r   )r+   s   "r   r,   r,   C  s®   € ÷ 5ñ 5Ü‡|�|ð5ä‡|�|ð5ô ”S�Mð5ô �L‰Lð	5ô
 ð5ô ð5ô ”5—<‘<Õ
 ð5ô œ%Ÿ,™,Õ'ð5ô œ%Ÿ,™,Õ'ð5ô œEŸL™LÕ)ð5ô ‡\�\ñ5r   c
                 ór  € VeL   \         P                  P                  P                  P	                  WsVR\         P
                  4      V	,           p\         P                  P                  P                  P	                  WWEW P                  4      p
\         P                  P                  P                  W
V4      # )Né   )r   rH   rI   Údequantize_blockwiser    r1   r»   r&   rª   r«   r¼   )r#   rS   r¸   r�   r{   r�   r'   r¿   rÀ   rÁ   r½   s   &&&&&&&&&& r   Ú_gemm_4bit_default_implrÅ   C  sŽ   € ð Òä�I‰I×"Ñ"×7Ñ7×?Ñ?ÀÐU`ÐbeÔgl×gtÑgtÓuØõð 	ô �9‰9×!Ñ!×1Ñ1×9Ñ9¸!ÀYÐ\b×dkÑdkÓl€DÜ�8‰8×Ñ×%Ñ% a¨tÓ4Ð4r   zbitsandbytes::gemm_4bitÚmomentumÚlarsÚrmspropÚadagradÚadamÚlambÚlionÚademamixc                ó.  € V ^8„  d   QhR\         P                  R\         P                  R\         P                  R\        \         P                  ,          R\         P                  R\        R\        R\        R	\        R
\        R\        R\        R\        /# )r"   ÚgÚpÚstate1Ústate2Ú	unorm_vecÚbeta1Úbeta2ÚepsÚweight_decayÚstepÚlrÚgnorm_scaleÚoptimizer_id©r   r*   r   rb   r|   )r+   s   "r   r,   r,   q  s£   € ÷ 9ñ 9Ü‡|�|ð9ä‡|�|ð9ô �L‰Lð9ô ”U—\‘\Õ"ð	9ô
 �|‰|ð9ô ð9ô ð9ô 
ð9ô ð9ô ð9ô 	ð9ô ð9ô ñ9r   c                óº  € W°,          pV^8X  d®   RRWY,          ,
          ,          pRRWi,          ,
          ,          pW%,          RV,
          V,          ,           pW6,          RV,
          V,          V,          ,           pVV,          pVV,          pV\         P                  ! V4      V,           ,          pVV,          pM÷V^8X  d   TpMíV^ 8X  d$   V	^8X  d   TpMW%,          V,           pVV,          pMÃV^8X  d!   W&,          RV,
          V,          ,           pTpMœV^8X  dS   W%,          RV,
          V,          V,          ,           pV\         P                  ! V4      V,           ,          pVV,          pMCV^8X  d=   W-V,          ,           pV\         P                  ! V4      V,           ,          pVV,          p\         P                  ! X4      pVP                  V4       R# )z.Preprocessing optimizer, computing update normr~   N)r   r   ÚsumÚadd_)rÏ   rÐ   rÑ   rÒ   rÓ   rÔ   rÕ   rÖ   r×   rØ   rÙ   rÚ   rÛ   Úg_valsÚcorrection1Úcorrection2Ús1_valsÚs2_valsÚupdate_valsÚupdate_normÚ
total_norms   &&&&&&&&&&&&&        r   Ú_optimizer_precondition_32bitrè   p  s‡  € ð$ �_€Fà�qÔØ˜S 5¥;Õ.Õ/ˆØ˜S 5¥;Õ.Õ/ˆà•. C¨%¥K°6Õ#9Õ9ˆØ•. C¨%¥K°6Õ#9¸FÕ#BÕBˆà˜KÕ'ˆØ˜KÕ'ˆà¤§¢¨GÓ!4°sÕ!:Õ;ˆØ! KÕ/‰à	˜Ô	Ø‰à	˜Ô	Ø�1Œ9Ø‰Gà•n vÕ-ˆGØ Õ'‰à	˜Ô	Ø•. C¨%¥K°6Õ#9Õ9ˆØ‰à	˜Ô	Ø•. C¨%¥K°6Õ#9¸FÕ#BÕBˆØ¤§
¢
¨7Ó 3°cÕ 9Õ:ˆØ! KÕ/‰à	˜Ô	Ø F�?Õ*ˆØ¤§
¢
¨7Ó 3°cÕ 9Õ:ˆØ! KÕ/ˆä—’˜;Ó'€JØ‡N�N�:Ör   c          "      ót  € V ^8„  d   QhR\         P                  R\         P                  R\         P                  R\        \         P                  ,          R\        \         P                  ,          R\        R\        R\        R	\        R
\        R\        R\        R\        R\        R\        R\        R\        /# )r"   rÏ   rÐ   rÑ   rÒ   rÓ   Ú	max_unormÚ
param_normrÔ   rÕ   Úbeta3ÚalpharÖ   r×   rØ   rÙ   rÚ   rÛ   rÜ   )r+   s   "r   r,   r,   ®  sã   € ÷ wñ wÜ‡|�|ðwä‡|�|ðwô �L‰Lðwô ”U—\‘\Õ"ð	wô
 œŸ™Õ%ðwô ðwô ðwô ðwô ðwô ðwô ðwô 
ðwô ðwô ðwô 	ðwô  ð!wô" ñ#wr   c                ó¸	  € VP                  4       pWð,          P                  4       pVR9   d   VR8”  d   VVV,          ,           pRpVR8”  de   \        P                  ! V4      pVR9   d,   VWV,          V,           8”  d   WV,          V,           V,          pMVWV,          8”  d   WV,          V,          pV^8X  dý   W',          RV,
          V,          ,           pW8,          RV,
          V,          V,          ,           pRW},          ,
          p\        RW�,          ,
          4      pV) V,          V,          pVR8”  d   VRWì,          ,
          ,          pVV,          V\        P                  ! V4      VV,          ,           ,          ,          pVV,           pVP                  V4       VP                  V4       EMV^8X  EdO   V^ ,          pV^,          pTpVV,          RV,
          V,          ,           pVV	,          RV	,
          V,          ,           pVV,          RV,
          V,          V,          ,           pRW},          ,
          p\        RW�,          ,
          4      pVR8”  d   VRWì,          ,
          ,          pVV,          V
V,          ,           p\        P                  ! V4      V,          V,           p VVVV ,          ,          ,
          pV^ ,          P                  V4       V^,          P                  V4       VP                  V4       EM¾V^ 8X  dG   V^8X  d   TpMW',          V,           pVV) V,          ,          pVV,           pVP                  V4       EMqV^8X  d—   VR8”  d   VRWì,          ,
          ,          pW',          RV,
          V,          ,           p!VV,          \        P                  ! V!4      ,          pVV,
          pW(,          RV,
          V,          ,           pVP                  V4       MÔV^8X  dr   W',          RV,
          V,          V,          ,           pVV,          V,          \        P                  ! V4      V,           ,          pVV,
          pVP                  V4       M\V^8X  dV   VVV,          ,           pVV,          \        P                  ! V4      V,           ,          pVV,
          pVP                  V4       VP                  V4       R# )zUnified optimizer update kernelrh   r~   N)r   rg   r"   )r   rg   r"   é   )rb   r   r   rc   Úsign)"rÏ   rÐ   rÑ   rÒ   rÓ   rê   rë   rÔ   rÕ   rì   rí   rÖ   r×   rØ   rÙ   rÚ   rÛ   Úp_valsrà   Úupdate_scaleÚcurrent_unormrã   rä   rá   râ   Ú	step_sizeÚ
update_valÚs3_valsÚm1Úm2ÚnuÚmixed_momentumÚadaptive_termÚmomentum_updates"   &&&&&&&&&&&&&&&&&                 r   Ú_optimizer_update_32bitrý   ­  sß  € ð, �W‰W‹Y€FØ�o×$Ñ$Ó&€Fð
 �yÔ  \°CÔ%7Ø˜& <Õ/Õ/ˆà€LØ�3„ÜŸ
š
 9Ó-ˆØ˜<Ô'Ø˜yÕ5¸Õ;Ô;Ø )Õ 6¸Õ <ÀÕM�øà˜yÕ5Ô5Ø )Õ 6¸-ÕG�à�qÔØ•. C¨%¥K°6Õ#9Õ9ˆØ•. C¨%¥K°6Õ#9¸FÕ#BÕBˆà˜E�KÕ'ˆÜ˜3 ¥Õ,Ó-ˆØ�C˜+Õ%¨Õ3ˆ	à˜#ÔØ˜s RÕ%6Õ6Õ7ˆFà! IÕ-°¼E¿JºJÀwÓ<OÐRUÐXcÕRcÕ<cÕ1dÕeˆ
Ø˜*Õ$ˆà�‰�WÔØ�‰�WÖà	˜Õ	Ø˜•)ˆØ˜•)ˆØˆà�u�_  e¥¨vÕ5Õ5ˆØ�u�_  e¥¨vÕ5Õ5ˆØ�u�_  e¥¨vÕ5¸Õ>Õ>ˆà˜E�KÕ'ˆÜ˜3 ¥Õ,Ó-ˆà˜#ÔØ˜s RÕ%6Õ6Õ7ˆFà˜{Õ*¨u°r­zÕ:ˆÜŸš B›¨+Õ5¸Õ<ˆØ˜" °Õ >Õ?Õ?ˆàˆq�	�‰˜ÔØˆq�	�‰˜ÔØ�‰�RÖà	˜Ô	Ø�1Œ9Ø‰Gà•n vÕ-ˆGà! b S¨7¥]Õ3ˆ
Ø˜*Õ$ˆà�‰�WÖà	˜Ô	ð ˜#ÔØ˜s RÕ%6Õ6Õ7ˆFà �.¨C°%­K¸6Õ+AÕAˆØ! BÕ&¬¯ª°OÓ)DÕDˆ
Ø˜*Õ$ˆà•. C¨%¥K°6Õ#9Õ9ˆØ�‰�WÕà	˜Ô	Ø•. C¨%¥K°6Õ#9¸FÕ#BÕBˆØ! BÕ&¨Õ/´5·:²:¸gÓ3FÈÕ3LÕMˆ
Ø˜*Õ$ˆà�‰�WÕà	˜Ô	Ø˜6 F�?Õ*ˆØ˜&•[¤E§J¢J¨wÓ$7¸#Õ$=Õ>ˆ
Ø˜*Õ$ˆà�‰�WÔà‡G�GˆF†Or   z$bitsandbytes::optimizer_update_32bitc          $      óx  € V ^8„  d   QhR\         R\        P                  R\        P                  R\        P                  R\        \        P                  ,          R\        \        P                  ,          R\        R\        R	\        R
\        R\        R\        R\        R\        R\
        R\        R\        RR/# )r"   Úoptimizer_namerÏ   rÐ   rÑ   rÒ   rÓ   rê   rë   rÔ   rÕ   rì   rí   rÖ   r×   rØ   rÙ   rÚ   r(   N)rž   r   r*   r   rb   r|   )r+   s   "r   r,   r,   )  sî   € ÷ O
ñ O
ÜðO
ä‡|�|ðO
ô ‡|�|ðO
ô �L‰Lð	O
ô
 ”U—\‘\Õ"ðO
ô œŸ™Õ%ðO
ô ðO
ô ðO
ô ðO
ô ðO
ô ðO
ô ðO
ô 
ðO
ô ðO
ô ðO
ô  	ð!O
ô" ð#O
ð& 
ñ'O
r   c                ól  € V'       d   \        R4      h\        V ,          pV R8X  dI   \        VVVVVVVVV	V
VVVVVVV4       VR8”  d%   VP                  4        \	        WW4WXWœWÞVVV4       R# R# VR8”  d#   VP                  4        \	        WW4WXWœWÞVVV4       \        VVVVVVVVV	V
VVVVVVV4       R# )z=
32-bit optimizer implemented by PyTorch with @torch.compile
zskip_zeros is not supported yetrÌ   rh   N)ÚNotImplementedErrorÚname2optimizer_idrý   Úzero_rè   )rÿ   rÏ   rÐ   rÑ   rÒ   rÓ   rê   rë   rÔ   rÕ   rì   rí   rÖ   r×   rØ   rÙ   rÚ   Ú
skip_zerosrÛ   s   &&&&&&&&&&&&&&&&&& r   r:   r:   (  s   € ÷0 Ü!Ð"CÓDÐDä$ ^Õ4€Là˜ÔÜØØØØØØØØØØØØØØØØØô#	
ð( �sŒ?Ø�O‰OÔÜ)Ø�f i¸ÀLÐXZÐ\gÐiuöñ ð �sŒ?Ø�O‰OÔÜ)Ø�f i¸ÀLÐXZÐ\gÐiuôô 	 ØØØØØØØØØØØØØØØØØö#	
r   r   )NN)rh   )NNNN)r~   F)Úcollections.abcr   Ú	functoolsr   r   Úmathr   r   Útypingr   r   Ú_opsr	   Úutilsr
   r   r:   r[   r˜   r£   r´   rÅ   ÚMOMENTUMÚRMSPROPÚADAGRADÚADAMÚLIONÚADEMAMIXr  rè   rý   r   r   r   Ú<module>r     s_  ðÝ $ß "ß Ý ã å #Ý "ôñ4 Ð0°)Ó<ö*ó =ð*ñ2 Ð5°yÓAö#ó Bð#ñL Ð/°Ó;öó <ðñ$ Ð3°YÓ?ô*ó @ð*ñ Ð7¸ÓCô(ó Dð(÷ñ Ð6¸	ÓBö",ó Cð",ñJ Ð3°YÓ?ô&ó @ð&ñ$ ˜EÔ"ôó #ðñ( Ð5°yÓAôió Bðið ôó ðñ Ð.°	Ó:ôó ;ðñ8 ˜EÔ"ô1ó #ð1ñ2 Ð0°)Ó<ôZó =ðZñ Ð*¨IÓ6ôó 7ð÷&5ñ, Ð)¨9Ô 5Ð6MÔ Nð €Ø
€Ø
€Ø€à€Ø€ð �Ø
ˆHØˆwØˆwØ
ˆDØ
ˆDØ
ˆDØ�ð	Ð ð ô9ó ð9ðx ôwó ðwñt Ð7¸ÓCöO
ó DòO
r   