
    /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        q/home/longshao/multi-rider-rag/.venv/lib/python3.11/site-packages/onnx/backend/test/case/node/dequantizelinear.pyexportzDequantizeLinear.export   s    {$$333E % 
 
 H%%%&&--bh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 Wr3i"b2Wr2hR12YC3*5 (	
 	
 	
 (999BJ777xRX>>>HHRZ  <#7#71a#C#C#J#J2:#V#VVOOAq!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  ir                 ?       @g      @g      jr   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32: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32: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!qcRR
*Q--H3332: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   ir   )rI   rJ   rK   g      @g      hr   test_dequantizelinear_e5m2r   )
r   r    r!   r   r   
FLOAT8E5M2r"   r&   r#   r   rO   s       r)   export_e5m2zDequantizeLinear.export_e5m2   s    {$$#E	 % 
 
 [3aS:Q:Q:QRR*Q--H555RZ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32: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   )iiii  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5bh??*Q--xH3332: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	 % 
 
 [.5F5F5FGG*Q--">;3DdQC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   iir   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	 % 
 
 [-s4E4E4EFF*Q--">;3CTA3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--">;3DdQC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   ir   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	 % 
 
 [-sNNNCC*Q--">;3CTA3OOH___BJ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	 % 
 
 [3aS:M:M:MNN*Q--">;3I4RSQTUUH&&&bj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 GAJ'-**
 
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 Wr3i"b2Wr2hR1Wr2hR12YC3*5	 (

 

 

 ( 3Z#sc3Z83Z#sc3Z8 *
 
 
 x VaVaW-VaVb!W- (
 
 
 } 22222
 
 
 
 
 
 
3qw<<((
 
 
 
 
 	
 	
 

 wz"W]:%>>!CCCC'*%z)BB !izRRR#%9'
$
 $
 $
 
 HHRZ  #;#B#B2:#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+   