+
    "Ý³j?  ã                   ól   € ^ RI t ^ RI Ht ^ RIHt RR ltR R ltR R ltR	 R
 ltR R ltR R lt	R# )é    N©ÚTensor)ÚDTensorc                ód  € . pY '       d   ^M^,
          p^WA,
          ,          ^,
          p\        V4       Fú  p\        V '       d   ^Wd,           V,
          ,          ^,           M#^Wd,           V,
          ^,           ,          ^,           4      p\        P                  ! R^V4      pVRR VR,          ,           R,          p	V^
V^,
          ) V,           ,          V	,          P	                  4       ,          pV '       g   KÅ  V^
V^,
          ) V,           ,          ) V	,          P	                  4       ,          pKü  	  V^ 8”  d«   \        P                  ! R^V^,           4      pVRR VR,          ,           R,          p	V^
V^,
          ) X,           ,          V	,          P	                  4       ,          pV '       d6   V^
V^,
          ) V,           ,          ) V	,          P	                  4       ,          pVP                  ^ 4       VP                  R4       \        V4      ^V,          8X  g   Q hVP                  4        V# )aÿ  
Creates the dynamic quantiztion map.

The dynamic data type is made up of a dynamic exponent and
fraction. As the exponent increase from 0 to -7 the number
of bits available for the fraction shrinks.

This is a generalization of the dynamic type where a certain
number of the bits and be reserved for the linear quantization
region (the fraction). n determines the maximum number of
exponent bits.

For more details see
(8-Bit Approximations for Parallelism in Deep Learning)[https://arxiv.org/abs/1511.04561]
gš™™™™™¹?N:é   NNg       @g      ð?éÿÿÿÿ)ÚrangeÚintÚtorchÚlinspaceÚtolistÚappendÚlenÚsort)
ÚsignedÚmax_exponent_bitsÚ
total_bitsÚdataÚnon_sign_bitsÚadditional_itemsÚiÚfraction_itemsÚ
boundariesÚmeanss
   &&&       ÚZ/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torchao/optim/quant_utils.pyÚcreate_dynamic_mapr      sÙ  € ð" €Dð ¦v¡!°1Õ5€MØ˜]Õ>Õ?À!ÕCÐÜÐ$Ö%ˆÜçð �!Õ#Ð&7Õ7Õ8¸1Ö<à�qÕ(Ð+<Õ<¸qÕ@ÕAÀAÕEó
ˆô
 —^’^ C¨¨NÓ;ˆ
Ø˜C˜R� :¨b¥>Õ1°SÕ8ˆØ�"Ð,¨qÕ0Ð1°AÕ5Õ6¸%Õ?×GÑGÓIÕIˆß‰6Ø�rÐ 1°AÕ 5Ð6¸Õ:Õ;Ð<¸uÕD×LÑLÓNÕNŠDñ &ð ˜!ÔÜ—^’^ C¨Ð,<¸qÕ,@ÓAˆ
Ø˜C˜R� :¨b¥>Õ1°SÕ8ˆØ�"Ð,¨qÕ0Ð1°AÕ5Õ6¸%Õ?×GÑGÓIÕIˆßØ�rÐ 1°AÕ 5Ð6¸Õ:Õ;Ð<¸uÕD×LÑLÓNÕNˆDà‡K�K�„NØ‡K�K�Ôäˆt‹9˜˜:�Ô%Ð%Ð%à‡I�I„KØ€Kó    c                ó0   € V ^8„  d   QhR\         R\        /# )é   ÚinputÚ
block_size)r   r
   )Úformats   "r   Ú__annotate__r#   @   s   € ÷ $ñ $œð $¬Cñ $r   c                óð   € V P                   pV P                  RV4      p V P                  4       P                  R4      P	                  R4      pWP                  R^4      ,          p V P                  V4      V3# )z(Scale tensor so that max(abs(input)) = 1gê-�™—q=r   )ÚshapeÚviewÚabsÚamaxÚclip)r    r!   r%   Úscales   &&  r   Úscale_tensorr+   @   se   € à�K‰K€Eð �J‰J�r˜:Ó&€EØ�I‰I‹K×Ñ˜RÓ ×%Ñ% eÓ,€EØ—J‘J˜r 1Ó%Õ%€EØ�:‰:�eÓ˜eÐ#Ð#r   c                ó0   € V ^8„  d   QhR\         R\         /# ©r   r    Úqmapr   )r"   s   "r   r#   r#   K   s   € ÷ !ñ !¤6ð !´ñ !r   c                 óÄ  € \         P                  ! W^€,          8¬  ^€^ 4      pV\         P                  ! WV^@,           ,          8¬  ^@^ 4      ,          pV\         P                  ! WV^ ,           ,          8¬  ^ ^ 4      ,          pV\         P                  ! WV^,           ,          8¬  ^^ 4      ,          pV\         P                  ! WV^,           ,          8¬  ^^ 4      ,          pV\         P                  ! WV^,           ,          8¬  ^^ 4      ,          pV\         P                  ! WV^,           ,          8¬  ^^ 4      ,          pV\         P                  ! WV^,           ,          8¬  ^^ 4      ,          pV^,           P                  ^ÿR7      pW,          pW,          pW,
          p\         P                  ! WeV,
          R,          8¬  W24      pVP                  \         P                  4      # )é€   ©Úmaxç      à?©r   Úwherer)   ÚtoÚuint8©r    r.   ÚcodesÚcodes_upÚval_downÚval_upÚresiduals   &&     r   Úquantize_8bit_with_qmapr>   K   sm  € ô �KŠK˜ c¥Ñ*¨C°Ó3€EØ	ŒU�[Š[˜ u¨r¥zÕ"2Ñ2°B¸Ó:Õ:€EØ	ŒU�[Š[˜ u¨r¥zÕ"2Ñ2°B¸Ó:Õ:€EØ	ŒU�[Š[˜ u¨r¥zÕ"2Ñ2°B¸Ó:Õ:€EØ	ŒU�[Š[˜ u¨q¥y¥/Ñ1°1°aÓ8Õ8€EØ	ŒU�[Š[˜ u¨q¥y¥/Ñ1°1°aÓ8Õ8€EØ	ŒU�[Š[˜ u¨q¥y¥/Ñ1°1°aÓ8Õ8€EØ	ŒU�[Š[˜ u¨q¥y¥/Ñ1°1°aÓ8Õ8€Eð ˜•	×Ñ CÐÓ(€HØ�{€HØ�^€FØÕ€HÜ�KŠK˜¨hÕ%6¸#Õ$=Ñ=¸xÓO€Eà�8‰8”E—K‘KÓ Ð r   c                ó0   € V ^8„  d   QhR\         R\         /# r-   r   )r"   s   "r   r#   r#   a   s   € ÷ !ñ !¤6ð !´ñ !r   c                 óL  € \         P                  ! W^,          8¬  ^^ 4      pV\         P                  ! WV^,           ,          8¬  ^^ 4      ,          pV\         P                  ! WV^,           ,          8¬  ^^ 4      ,          pV\         P                  ! WV^,           ,          8¬  ^^ 4      ,          pV^,           P                  ^R7      pW,          pW,          pW,
          p\         P                  ! WeV,
          R,          8¬  W24      pVP                  \         P                  4      # )é   r1   r3   r4   r8   s   &&     r   Úquantize_4bit_with_qmaprB   a   sâ   € ô �KŠK˜ a¥Ñ(¨!¨QÓ/€EØ	ŒU�[Š[˜ u¨q¥y¥/Ñ1°1°aÓ8Õ8€EØ	ŒU�[Š[˜ u¨q¥y¥/Ñ1°1°aÓ8Õ8€EØ	ŒU�[Š[˜ u¨q¥y¥/Ñ1°1°aÓ8Õ8€Eð ˜•	×Ñ BÐÓ'€HØ�{€HØ�^€FØÕ€HÜ�KŠK˜¨hÕ%6¸#Õ$=Ñ=¸xÓO€Eà�8‰8”E—K‘KÓ Ð r   c                ó<   € V ^8„  d   QhR\         R\         R\         /# )r   r9   r.   r*   r   )r"   s   "r   r#   r#   s   s!   € ÷ !ñ !œVð !¬6ð !¼&ñ !r   c                 óÔ   € WP                  4       ,          P                  VP                  ^ ,          R4      VP                  R^4      ,          pVP                  V P                  4      # )r   r   )r
   r&   r%   )r9   r.   r*   Úouts   &&& r   Údequant_with_qmaprF   s   sH   € à
�y‰y‹{Õ
×
 Ñ
  §¡¨Q¥°Ó
4°u·z±zÀ"ÀaÓ7HÕ
H€CØ�8‰8�E—K‘KÓ Ð r   c                ó0   € V ^8„  d   QhR\         R\         /# )r   Ú_x_f32Úreturnr   )r"   s   "r   r#   r#   y   s   € ÷ )ñ )œVð )¬ñ )r   c                 ó–  € \        V \        4      pV'       d   V P                  4       MT p\        P                  ! ^ RVP
                  VP                  \        P                  R7      pVP                  \        P                  4      pVR,          pVR,          p\        P                  ! W58  VR,           V4      pVP                  \        P                  4      P                  4       pV'       d[   \        P                  ! VV P                  V P                  R\        V P
                  4      \        V P!                  4       4      R7      # T# )r   )ÚdeviceÚdtypeiÿÿ  l     þ i   F)Ú	run_checkr%   Ústride)Ú
isinstancer   Úto_localr   Úrandintr%   rK   Úint32r&   r5   Úfloat32Úbfloat16Ú
from_localÚdevice_meshÚ
placementsÚtuplerN   )rH   Úis_dtÚx_f32Ú
rand_16bitÚ
x_f32_bitsÚ
x_fractionÚx_bf16_towards_zeroÚx_bf16_truncs   &       r   Ú_fp32_to_bf16_srr`   y   s  € ô �vœwÓ'€Eß!&ˆF�O‰OÔ¨F€Eä—’Ø	ˆ7�E—K‘K¨¯©¼E¿K¹Kô€Jð —‘œEŸK™KÓ(€JØ˜fÕ$€JØ$ zÕ1Ðä—’ØÑØØ
õ	àó	€Jð —?‘?¤5§=¡=Ó1×:Ñ:Ó<€L÷ ô 	×ÒØØ×ÑØ×ÑØÜ˜Ÿ™Ó%Ü˜Ÿ™›Ó)ô	
ðð ðr   )Té   rA   )
r   r   Útorch.distributed.tensorr   r   r+   r>   rB   rF   r`   © r   r   Ú<module>rd      s/   ðó Ý Ý ,ô
0õf$õ!õ,!õ$!÷)r   