
    Ng#                     b    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 )    N)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dS )DequantizeLinearreturnNc                  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        h/var/www/html/ai-engine/env/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   r7   r0   )T   r1         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   axisr0   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_e4m3fnD   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   rB   r0   rD   r   rF   r   $test_dequantizelinear_e4m3fn_float16r   )
r   r   r   r   r   rL   r    float16r!   r   rM   s       r'   export_e4m3fn_float16z&DequantizeLinear.export_e4m3fn_float16Y   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   rB   r   r0   rD   rT   r=   r   rF   r   'test_dequantizelinear_e4m3fn_zero_pointr   rK   )r&   r   rT   r   r   s        r'   export_e4m3fn_zero_pointz)DequantizeLinear.export_e4m3fn_zero_pointn   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   rB   r0   )r   rE   r=   i   ir   )rG   rH   rI   g      @g      hr   test_dequantizelinear_e5m2r   )
r   r   r   r   r   
FLOAT8E5M2r    r$   r!   r   rM   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     rI   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   rB   r   r0   )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   rB   r   r0   )r   r=   rd   ir   r   rg   r=   )rh   r   ri   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            	         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   rC   
block_sizer   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   ri   !   A   *   r5   r6   r7   r8   r9   r:   r   g      @rI   g      @rH   g      @r      rf   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)   )repeatsrC   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_blocked   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)   )r	   N)__name__
__module____qualname__staticmethodr(   r@   rN   rR   rV   rZ   r^   rb   rn   rs   r    r)   r'   r   r      sx       
 
 
 \
( 
 
 
 \
> 
 
 
 \
( 
 
 
 \
( 
 
 
 \
* 
 
 
 \
( 
 
 
 \
& 
 
 
 \
& 
 
 
 \
* 
 
 
 \
* D
 D
 D
 \D
 D
 D
r)   r   )numpyr    r   r   onnx.backend.test.case.baser   onnx.backend.test.case.noder   onnx.helperr   r   r   r)   r'   <module>r      s   
            , , , , , , . . . . . . # # # # # #d
 d
 d
 d
 d
t d
 d
 d
 d
 d
r)   