§
    1�Åj-  ã                  ón   — d dl mZ d dlZd dlZd dlmZ d dlmZ d dlm	Z	 d dl
mZ  G d„ de¦  «        ZdS )	é    )ÚannotationsN)ÚTensorProto)ÚBase)Úexpect)Úmake_tensorc                  ó^  — e Zd Zedd„¦   «         Zedd„¦   «         Zedd„¦   «         Zedd„¦   «         Zedd„¦   «         Zedd„¦   «         Z	edd	„¦   «         Z
edd
„¦   «         Zedd„¦   «         Zedd„¦   «         Zedd„¦   «         Zedd„¦   «         Zedd„¦   «         Zedd„¦   «         ZdS )ÚDequantizeLinearÚreturnÚNonec                 óx  — t           j                             dg d¢dg¬¦  «        } t          j        g d¢¦  «                             t          j        ¦  «        }t          j        d¦  «        }t          j        d¦  «        }t          j        g d¢t          j        ¬	¦  «        }t          | |||g|gd
¬¦  «         d S )Nr	   ©ÚxÚx_scaleÚx_zero_pointÚy©ÚinputsÚoutputs)r   é   é€   éÿ   é   r   )i ÿÿÿiÿÿÿr   éþ   ©ÚdtypeÚtest_dequantizelinear©r   r   Úname)	ÚonnxÚhelperÚ	make_nodeÚnpÚarrayÚastypeÚuint8Úfloat32r   ©Únoder   r   r   r   s        ú]C:\Projects\Historical\venv\Lib\site-packages\onnx/backend/test/case/node/dequantizelinear.pyÚexportzDequantizeLinear.export   sÄ   € åŒ{×$Ò$ØØ3Ð3Ð3Ø�Eð %ñ 
ô 
ˆõ ŒHÐ%Ð%Ð%Ñ&Ô&×-Ò-­b¬hÑ7Ô7ˆÝ”*˜Q‘-”-ˆÝ”x ‘}”}ˆÝŒHÐ)Ð)Ð)µ´Ð<Ñ<Ô<ˆåØØ�w Ð-Ø�CØ(ð		
ñ 	
ô 	
ð 	
ð 	
ð 	
ó    c                 ó`  — t           j                             dg d¢dg¬¦  «        } t          j        ddgddgd	d
ggddgddgddggddgddgddggggt          j        ¬¦  «        }t          j        g d¢t          j        ¬¦  «        }t          j        g d¢t          j        ¬¦  «        }|                     t          j        ¦  «        |                     dddd¦  «                             t          j        ¦  «        z
  |                     dddd¦  «        z  }t          | |||g|gd¬¦  «         d S )Nr	   r   r   r   r   éY   é"   éÈ   éJ   é;   é   é   éW   é    é   éõ   éc   é   éŽ   éy   éf   r   )r   r9   r2   )éT   r3   éÄ   é   Útest_dequantizelinear_axisr   )
r   r    r!   r"   r#   r%   r&   r$   Úreshaper   r'   s        r)   Úexport_axiszDequantizeLinear.export_axis%   s`  € åŒ{×$Ò$ØØ3Ð3Ð3Ø�Eð %ñ 
ô 
ˆõ ŒHð ˜�W˜r 3˜i¨"¨b¨Ð2Ø˜�W˜r 2˜h¨¨R¨Ð1Ø˜2�Y  C ¨3°¨*Ð5ððõ ”(ð	
ñ 	
ô 	
ˆõ ”(˜9˜9˜9­B¬JÐ7Ñ7Ô7ˆÝ”x   µR´XÐ>Ñ>Ô>ˆà�HŠH•R”ZÑ Ô  <×#7Ò#7¸¸1¸aÀÑ#CÔ#C×#JÒ#JÍ2Ì:Ñ#VÔ#VÑVØ�OŠO˜A˜q ! QÑ'Ô'ñ(ˆõ 	ØØ�w Ð-Ø�CØ-ð		
ñ 	
ô 	
ð 	
ð 	
ð 	
r+   c                 ó(  — t           j                             dddgdgd¬¦  «        } t          dt          j        dgg d¢¦  «        }t          j        d	¦  «        }t          j        g d
¢t          j        ¬¦  «        }t          | ||g|gd¬¦  «         d S )Nr	   r   r   r   r   ©r   r   Úaxisr2   ©r   ç      à?r?   iÀ  i˜ÿÿÿr   ©ç        ç      ð?ç       @g      Œ@g      jÀr   Útest_dequantizelinear_e4m3fnr   ©
r   r    r!   r   r   ÚFLOAT8E4M3FNr"   r&   r#   r   ©r(   r   r   r   s       r)   Úexport_e4m3fnzDequantizeLinear.export_e4m3fnE   s¯   € åŒ{×$Ò$ØØ˜Ð#Ø�EØð	 %ñ 
ô 
ˆõ ˜�[Ô5¸°sÐ<RÐ<RÐ<RÑSÔSˆÝ”*˜Q‘-”-ˆÝŒHÐ3Ð3Ð3½2¼:ÐFÑFÔFˆåØØ�w�<Ø�CØ/ð		
ñ 	
ô 	
ð 	
ð 	
ð 	
r+   c                 ó(  — t           j                             dddgdgd¬¦  «        } t          dt          j        dgg d¢¦  «        }t          j        d	¦  «        }t          j        g d
¢t          j        ¬¦  «        }t          | ||g|gd¬¦  «         d S )Nr	   r   r   r   r   rD   r2   rF   r   rH   r   Ú$test_dequantizelinear_e4m3fn_float16r   )
r   r    r!   r   r   rN   r"   Úfloat16r#   r   rO   s       r)   Úexport_e4m3fn_float16z&DequantizeLinear.export_e4m3fn_float16Z   s¯   € åŒ{×$Ò$ØØ˜Ð#Ø�EØð	 %ñ 
ô 
ˆõ ˜�[Ô5¸°sÐ<RÐ<RÐ<RÑSÔSˆÝ”*˜Q‘-”-ˆÝŒHÐ3Ð3Ð3½2¼:ÐFÑFÔFˆåØØ�w�<Ø�CØ7ð		
ñ 	
ô 	
ð 	
ð 	
ð 	
r+   c                 óf  — t           j                             dg d¢dgd¬¦  «        } t          dt          j        dgg d¢¦  «        }t          d	t          j        d
gdg¦  «        }t          j        d¦  «        }t          j        g d¢t          j        ¬¦  «        }t          | |||g|gd¬¦  «         d S )Nr	   )r   r   Ú
zero_pointr   r   rD   r   r2   rF   rV   r?   r   rH   r   Ú'test_dequantizelinear_e4m3fn_zero_pointr   rM   )r(   r   rV   r   r   s        r)   Úexport_e4m3fn_zero_pointz)DequantizeLinear.export_e4m3fn_zero_pointo   sÍ   € åŒ{×$Ò$ØØ1Ð1Ð1Ø�EØð	 %ñ 
ô 
ˆõ ˜�[Ô5¸°sÐ<RÐ<RÐ<RÑSÔSˆÝ  ­{Ô/GÈ!ÈÈqÈcÑRÔRˆ
Ý”*˜Q‘-”-ˆÝŒHÐ3Ð3Ð3½2¼:ÐFÑFÔFˆåØØ�w 
Ð+Ø�CØ:ð		
ñ 	
ô 	
ð 	
ð 	
ð 	
r+   c                 ó(  — t           j                             dddgdgd¬¦  «        } t          dt          j        dgg d¢¦  «        }t          j        d	¦  «        }t          j        g d
¢t          j        ¬¦  «        }t          | ||g|gd¬¦  «         d S )Nr	   r   r   r   r   rD   r2   )r   rG   r?   i À  i ÿÿÿr   )rI   rJ   rK   g      ø@g      hÀr   Útest_dequantizelinear_e5m2r   )
r   r    r!   r   r   Ú
FLOAT8E5M2r"   r&   r#   r   rO   s       r)   Úexport_e5m2zDequantizeLinear.export_e5m2…   s¯   € åŒ{×$Ò$ØØ˜Ð#Ø�EØð	 %ñ 
ô 
ˆõ ˜�[Ô3°a°SÐ:QÐ:QÐ:QÑRÔRˆÝ”*˜Q‘-”-ˆÝŒHÐ5Ð5Ð5½R¼ZÐHÑHÔHˆåØØ�w�<Ø�CØ-ð		
ñ 	
ô 	
ð 	
ð 	
ð 	
r+   c                 óx  — t           j                             dg d¢dg¬¦  «        } t          j        g d¢¦  «                             t          j        ¦  «        }t          j        d¦  «        }t          j        d¦  «        }t          j        g d¢t          j        ¬	¦  «        }t          | |||g|gd
¬¦  «         d S )Nr	   r   r   r   )i0u  iy  i €  iè€  r   iÿ  )g     žµÀg     œ«ÀrK   g      }@r   Útest_dequantizelinear_uint16r   )	r   r    r!   r"   r#   r$   Úuint16r&   r   r'   s        r)   Úexport_uint16zDequantizeLinear.export_uint16š   sÆ   € åŒ{×$Ò$ØØ3Ð3Ð3Ø�Eð %ñ 
ô 
ˆõ ŒHÐ1Ð1Ð1Ñ2Ô2×9Ò9½"¼)ÑDÔDˆÝ”*˜Q‘-”-ˆÝ”y Ñ'Ô'ˆÝŒHÐ3Ð3Ð3½2¼:ÐFÑFÔFˆåØØ�w Ð-Ø�CØ/ð		
ñ 	
ô 	
ð 	
ð 	
ð 	
r+   c                 óx  — t           j                             dg d¢dg¬¦  «        } t          j        g d¢¦  «                             t          j        ¦  «        }t          j        d¦  «        }t          j        d¦  «        }t          j        g d¢t          j        ¬	¦  «        }t          | |||g|gd
¬¦  «         d S )Nr	   r   r   r   )iÔþÿÿiâÿÿÿiÿûÿÿiö  r   i üÿÿ)g      –@g     Ÿ@g       Àg     ì±@r   Útest_dequantizelinear_int16r   )	r   r    r!   r"   r#   r$   Úint16r&   r   r'   s        r)   Úexport_int16zDequantizeLinear.export_int16®   sÄ   € åŒ{×$Ò$ØØ3Ð3Ð3Ø�Eð %ñ 
ô 
ˆõ ŒHÐ-Ð-Ð-Ñ.Ô.×5Ò5µb´hÑ?Ô?ˆÝ”*˜Q‘-”-ˆÝ”x ‘”ˆÝŒHÐ3Ð3Ð3½2¼:ÐFÑFÔFˆåØØ�w Ð-Ø�CØ.ð		
ñ 	
ô 	
ð 	
ð 	
ð 	
r+   c                 ód  — t           j                             dg d¢dgd¬¦  «        } t          dt          j        dgg d¢¦  «        }t          j        d	¦  «        }t          d
t          j        ddg¦  «        }t          j        g d¢t          j        ¬¦  «        }t          | |||g|gd¬¦  «         d S )Nr	   r   r   r   rD   r   r2   )r   r?   é   é
   é   r   r   ©r?   r?   )éþÿÿÿr   é   é   é   r   Útest_dequantizelinear_uint4r   )
r   r    r!   r   r   ÚUINT4r"   r&   r#   r   r'   s        r)   Úexport_uint4zDequantizeLinear.export_uint4Â   sË   € åŒ{×$Ò$ØØ3Ð3Ð3Ø�EØð	 %ñ 
ô 
ˆõ ˜�[Ô.°°Ð5FÐ5FÐ5FÑGÔGˆÝ”*˜Q‘-”-ˆÝ" >µ;Ô3DÀdÈQÈCÑPÔPˆÝŒHÐ(Ð(Ð(µ´
Ð;Ñ;Ô;ˆåØØ�w Ð-Ø�CØ.ð		
ñ 	
ô 	
ð 	
ð 	
ð 	
r+   c                 ód  — t           j                             dg d¢dgd¬¦  «        } t          dt          j        dgg d¢¦  «        }t          j        d	¦  «        }t          d
t          j        ddg¦  «        }t          j        g d¢t          j        ¬¦  «        }t          | |||g|gd¬¦  «         d S )Nr	   r   r   r   rD   r   r2   )r   r?   rf   éüÿÿÿéøÿÿÿr   r   ri   r?   )rj   r   rk   iöÿÿÿiîÿÿÿr   Útest_dequantizelinear_int4r   )
r   r    r!   r   r   ÚINT4r"   r&   r#   r   r'   s        r)   Úexport_int4zDequantizeLinear.export_int4Ø   sË   € åŒ{×$Ò$ØØ3Ð3Ð3Ø�EØð	 %ñ 
ô 
ˆõ ˜�[Ô-°¨sÐ4EÐ4EÐ4EÑFÔFˆÝ”*˜Q‘-”-ˆÝ" >µ;Ô3CÀTÈAÈ3ÑOÔOˆÝŒHÐ*Ð*Ð*µ"´*Ð=Ñ=Ô=ˆåØØ�w Ð-Ø�CØ-ð		
ñ 	
ô 	
ð 	
ð 	
ð 	
r+   c                 ód  — t           j                             dg d¢dgd¬¦  «        } t          dt          j        dgg d¢¦  «        }t          j        d	¦  «        }t          d
t          j        ddg¦  «        }t          j        g d¢t          j        ¬¦  «        }t          | |||g|gd¬¦  «         d S )Nr	   r   r   r   rD   r   r9   )r   r?   r   r   r   r   ri   r?   )rj   r   r   r9   r   Útest_dequantizelinear_uint2r   )
r   r    r!   r   r   ÚUINT2r"   r&   r#   r   r'   s        r)   Úexport_uint2zDequantizeLinear.export_uint2î   sÅ   € åŒ{×$Ò$ØØ3Ð3Ð3Ø�EØð	 %ñ 
ô 
ˆõ ˜�[Ô.°°°\°\°\ÑBÔBˆÝ”*˜Q‘-”-ˆÝ" >µ;Ô3DÀdÈQÈCÑPÔPˆÝŒH�]�]�]­"¬*Ð5Ñ5Ô5ˆåØØ�w Ð-Ø�CØ.ð		
ñ 	
ô 	
ð 	
ð 	
ð 	
r+   c                 ód  — t           j                             dg d¢dgd¬¦  «        } t          dt          j        dgg d¢¦  «        }t          j        d	¦  «        }t          d
t          j        ddg¦  «        }t          j        g d¢t          j        ¬¦  «        }t          | |||g|gd¬¦  «         d S )Nr	   r   r   r   rD   r   r9   )r   r?   éÿÿÿÿrj   r   r   ri   r?   )rj   r   rr   iúÿÿÿr   Útest_dequantizelinear_int2r   )
r   r    r!   r   r   ÚINT2r"   r&   r#   r   r'   s        r)   Úexport_int2zDequantizeLinear.export_int2  sÅ   € åŒ{×$Ò$ØØ3Ð3Ð3Ø�EØð	 %ñ 
ô 
ˆõ ˜�[Ô-°¨s°N°N°NÑCÔCˆÝ”*˜Q‘-”-ˆÝ" >µ;Ô3CÀTÈAÈ3ÑOÔOˆÝŒH�_�_�_­B¬JÐ7Ñ7Ô7ˆåØØ�w Ð-Ø�CØ-ð		
ñ 	
ô 	
ð 	
ð 	
ð 	
r+   c                 ód  — t           j                             dg d¢dgd¬¦  «        } t          dt          j        dgg d¢¦  «        }t          j        d	¦  «        }t          d
t          j        ddg¦  «        }t          j        g d¢t          j        ¬¦  «        }t          | |||g|gd¬¦  «         d S )Nr	   r   r   r   rD   r   r2   )r   r?   r|   g      ø?rr   r   r   ri   )r   r   rj   r   rs   r   Ú test_dequantizelinear_float4e2m1r   )
r   r    r!   r   r   Ú
FLOAT4E2M1r"   r&   r#   r   r'   s        r)   Úexport_float4e2m1z"DequantizeLinear.export_float4e2m1  sÍ   € åŒ{×$Ò$ØØ3Ð3Ð3Ø�EØð	 %ñ 
ô 
ˆõ ˜�[Ô3°a°SÐ:MÐ:MÐ:MÑNÔNˆÝ”*˜Q‘-”-ˆÝ" >µ;Ô3IÈ4ÐRSÐQTÑUÔUˆÝŒHÐ&Ð&Ð&­b¬jÐ9Ñ9Ô9ˆåØØ�w Ð-Ø�CØ3ð		
ñ 	
ô 	
ð 	
ð 	
ð 	
r+   c            	     óê  ‡‡‡— t           j                             dg d¢dgdd¬¦  «        } t          j        ddgd	d
gddggddgddgddggddgddgddggddgddgddggggt          j        ¬¦  «        Št          j        ddgdd gddggd!dgddgd!dggggt          j        ¬¦  «        Št          j        dd"gd"dgdd#ggddgddgd$dggggt          j        ¬¦  «        }‰j        |j        k    sJ ‚dŠt          ˆˆˆfd%„t          t          ‰j        ¦  «        ¦  «        D ¦   «         ¦  «        sJ ‚‰j        ‰         ‰j        ‰         z  d"k    sJ ‚‰j        ‰         ‰j        ‰         z  }t          j        ‰|‰¬&¦  «        }t          j        ||‰¬&¦  «        }‰                     t          j        ¦  «        |                     t          j        ¦  «        z
  |z  }t          | ‰‰|g|gd'¬(¦  «         d S ))Nr	   r   r   r?   r   )r   r   rE   Ú
block_sizer   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   rk   é!   éA   é*   r7   r8   r9   r:   r;   r<   r   g      @rK   g      @rJ   g      @r   é   rh   c              3  ó\   •K  — | ]&}|‰k    ¯‰j         |         ‰j         |         k    V — Œ'd S )N)Úshape)Ú.0ÚiÚ
block_axisr   r   s     €€€r)   ú	<genexpr>z2DequantizeLinear.export_blocked.<locals>.<genexpr>^  sG   øè è € ð 
ð 
àØ�JŠˆð ŒG�AŒJ˜'œ-¨Ô*Ò*àˆˆˆð
ð 
r+   )ÚrepeatsrE   Útest_dequantizelinear_blockedr   )r   r    r!   r"   r#   r%   r&   r‹   ÚallÚrangeÚlenÚrepeatr$   r   )	r(   r   r�   Úx_scale_elementwiseÚx_zero_point_elementwiser   rŽ   r   r   s	         @@@r)   Úexport_blockedzDequantizeLinear.export_blocked0  sÂ  øøø€ åŒ{×$Ò$ØØ3Ð3Ð3Ø�EØØð %ñ 
ô 
ˆõ ŒHð ˜�W˜r 3˜i¨"¨b¨Ð2Ø˜�W˜r 2˜h¨¨R¨Ð1Ø˜�W˜r 2˜h¨¨R¨Ð1Ø˜2�Y  C ¨3°¨*Ð5ð	ðõ ”(ð

ñ 

ô 

ˆõ ”(ð ˜3�Z # s ¨c°3¨ZÐ8Ø˜3�Z # s ¨c°3¨ZÐ8ððõ ”*ð
ñ 
ô 
ˆõ ”xð ˜�V˜a ˜V a¨ WÐ-Ø˜�V˜a ˜V b¨! WÐ-ððõ ”(ð
ñ 
ô 
ˆð Œ} Ô 2Ò2Ð2Ð2Ð2Øˆ
åð 
ð 
ð 
ð 
ð 
ð 
å�3˜qœw™<œ<Ñ(Ô(ð
ñ 
ô 
ñ 
ô 
ð 	
ð 	
ð 
ð
 Œw�zÔ" W¤]°:Ô%>Ñ>À!ÒCÐCÐCÐCØ”'˜*Ô%¨¬°zÔ)BÑBˆõ !œi¨¸ÀzÐRÑRÔRÐÝ#%¤9Ø '°
ð$
ñ $
ô $
Ð ð
 �HŠH•R”ZÑ Ô Ð#;×#BÒ#BÅ2Ä:Ñ#NÔ#NÑNØñ ˆõ 	ØØ�w Ð-Ø�CØ0ð		
ñ 	
ô 	
ð 	
ð 	
ð 	
r+   N)r
   r   )Ú__name__Ú
__module__Ú__qualname__Ústaticmethodr*   rB   rP   rT   rX   r\   r`   rd   rp   rv   rz   r   rƒ   r˜   © r+   r)   r	   r	      sØ  € € € € € Øð
ð 
ð 
ñ „\ð
ð( ð
ð 
ð 
ñ „\ð
ð> ð
ð 
ð 
ñ „\ð
ð( ð
ð 
ð 
ñ „\ð
ð( ð
ð 
ð 
ñ „\ð
ð* ð
ð 
ð 
ñ „\ð
ð( ð
ð 
ð 
ñ „\ð
ð& ð
ð 
ð 
ñ „\ð
ð& ð
ð 
ð 
ñ „\ð
ð* ð
ð 
ð 
ñ „\ð
ð* ð
ð 
ð 
ñ „\ð
ð* ð
ð 
ð 
ñ „\ð
ð* ð
ð 
ð 
ñ „\ð
ð* ðD
ð D
ð D
ñ „\ðD
ð D
ð D
r+   r	   )Ú
__future__r   Únumpyr"   r   r   Úonnx.backend.test.case.baser   Úonnx.backend.test.case.noder   Úonnx.helperr   r	   r�   r+   r)   ú<module>r£      s´   ðð #Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð à €€€Ø Ð Ð Ð Ð Ð Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø .Ð .Ð .Ð .Ð .Ð .Ø #Ð #Ð #Ð #Ð #Ð #ðf
ð f
ð f
ð f
ð f
�tñ f
ô f
ð f
ð f
ð f
r+   