
    Si+                    f    S SK Jr  S SKrS SKrS SKJr  S SKJr  S SKJ	r	  S SK
Jr   " S S\5      rg)	    )annotationsN)TensorProto)Base)expect)make_tensorc                  ,   \ rS rSr\SS j5       r\SS j5       r\SS j5       r\SS j5       r\SS j5       r	\SS j5       r
\SS j5       r\SS	 j5       r\SS
 j5       r\SS j5       r\SS j5       r\SS j5       r\SS j5       r\SS j5       rSrg)DequantizeLinear   c                 r   [         R                  R                  S/ SQS/S9n [        R                  " / SQ5      R                  [        R                  5      n[        R                  " S5      n[        R                  " S5      n[        R                  " / SQ[        R                  S	9n[        U XU/U/S
S9  g )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        k/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/onnx/backend/test/case/node/dequantizelinear.pyexportDequantizeLinear.export   s    {{$$3E % 
 HH%&--bhh7**Q-xx}HH)<-C(		
    c                 J   [         R                  R                  S/ SQS/S9n [        R                  " SS/SS/S	S
//SS/SS/SS//SS/SS/SS////[        R
                  S9n[        R                  " / SQ[        R                  S9n[        R                  " / SQ[        R
                  S9nUR                  [        R                  5      UR                  SSSS5      R                  [        R                  5      -
  UR                  SSSS5      -  n[        U XU/U/SS9  g )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_axisDequantizeLinear.export_axis%   s"   {{$$3E % 
 HH Wr3i"b2Wr2hR12YC3*5 ((	
 ((9BJJ7xxRXX>HHRZZ <#7#71a#C#J#J2::#VVOOAq!Q'( 	-C-		
r+   c                    [         R                  R                  SSS/S/SS9n [        S[        R
                  S// SQ5      n[        R                  " S	5      n[        R                  " / S
Q[        R                  S9n[        U X/U/SS9  g )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_e4m3fnDequantizeLinear.export_e4m3fnE   s    {{$$#E	 % 
 [55s<RS**Q-HH32::F<C/		
r+   c                    [         R                  R                  SSS/S/SS9n [        S[        R
                  S// SQ5      n[        R                  " S	5      n[        R                  " / S
Q[        R                  S9n[        U X/U/SS9  g )Nr	   r   r   r   r   rE   r2   rG   r   rI   r   $test_dequantizelinear_e4m3fn_float16r   )
r   r   r    r   r   rO   r!   float16r"   r   rP   s       r(   export_e4m3fn_float16&DequantizeLinear.export_e4m3fn_float16Z   s    {{$$#E	 % 
 [55s<RS**Q-HH32::F<C7		
r+   c                 X   [         R                  R                  S/ SQS/SS9n [        S[        R
                  S// SQ5      n[        S	[        R
                  S
/S/5      n[        R                  " S5      n[        R                  " / SQ[        R                  S9n[        U XU/U/SS9  g )Nr	   )r   r   
zero_pointr   r   rE   r   r2   rG   rY   r?   r   rI   r   'test_dequantizelinear_e4m3fn_zero_pointr   rN   )r'   r   rY   r   r   s        r(   export_e4m3fn_zero_point)DequantizeLinear.export_e4m3fn_zero_pointo   s    {{$$1E	 % 
 [55s<RS {/G/G!qcR
**Q-HH32::F
+C:		
r+   c                    [         R                  R                  SSS/S/SS9n [        S[        R
                  S// SQ5      n[        R                  " S	5      n[        R                  " / S
Q[        R                  S9n[        U X/U/SS9  g )Nr	   r   r   r   r   rE   r2   )r   rH   r?   i   ir   )rJ   rK   rL   g      @g      hr   test_dequantizelinear_e5m2r   )
r   r   r    r   r   
FLOAT8E5M2r!   r%   r"   r   rP   s       r(   export_e5m2DequantizeLinear.export_e5m2   s    {{$$#E	 % 
 [33aS:QR**Q-HH5RZZH<C-		
r+   c                 r   [         R                  R                  S/ SQS/S9n [        R                  " / SQ5      R                  [        R                  5      n[        R                  " S5      n[        R                  " S5      n[        R                  " / SQ[        R                  S	9n[        U XU/U/S
S9  g )Nr	   r   r   r   )i0u  iy  i   i  r   i  )g     g     rL   g      }@r   test_dequantizelinear_uint16r   )	r   r   r    r!   r"   r#   uint16r%   r   r&   s        r(   export_uint16DequantizeLinear.export_uint16   s    {{$$3E % 
 HH1299"))D**Q-yy'HH32::F-C/		
r+   c                 r   [         R                  R                  S/ SQS/S9n [        R                  " / SQ5      R                  [        R                  5      n[        R                  " S5      n[        R                  " S5      n[        R                  " / SQ[        R                  S	9n[        U XU/U/S
S9  g )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_int16DequantizeLinear.export_int16   s    {{$$3E % 
 HH-.55bhh?**Q-xxHH32::F-C.		
r+   c                 V   [         R                  R                  S/ SQS/SS9n [        S[        R
                  S// SQ5      n[        R                  " S	5      n[        S
[        R
                  SS/5      n[        R                  " / SQ[        R                  S9n[        U XU/U/SS9  g )Nr	   r   r   r   rE   r   r2   )r   r?      
   r
   r   r   r?   r?   )r            r   test_dequantizelinear_uint4r   )
r   r   r    r   r   UINT4r!   r%   r"   r   r&   s        r(   export_uint4DequantizeLinear.export_uint4   s    {{$$3E	 % 
 [..5FG**Q-">;3D3DdQCPHH(

;-C.		
r+   c                 V   [         R                  R                  S/ SQS/SS9n [        S[        R
                  S// SQ5      n[        R                  " S	5      n[        S
[        R
                  SS/5      n[        R                  " / SQ[        R                  S9n[        U XU/U/SS9  g )Nr	   r   r   r   rE   r   r2   )r   r?   rm   r   r   ro   r?   )rp   r   rq   iir   test_dequantizelinear_int4r   )
r   r   r    r   r   INT4r!   r%   r"   r   r&   s        r(   export_int4DequantizeLinear.export_int4   s    {{$$3E	 % 
 [--s4EF**Q-">;3C3CTA3OHH*"**=-C-		
r+   c                 V   [         R                  R                  S/ SQS/SS9n [        S[        R
                  S// SQ5      n[        R                  " S	5      n[        S
[        R
                  SS/5      n[        R                  " / SQ[        R                  S9n[        U XU/U/SS9  g )Nr	   r   r   r   rE   r   r9   )r   r?   r   r   r   r   ro   r?   )rp   r   r   r9   r   test_dequantizelinear_uint2r   )
r   r   r    r   r   UINT2r!   r%   r"   r   r&   s        r(   export_uint2DequantizeLinear.export_uint2   s    {{$$3E	 % 
 [..\B**Q-">;3D3DdQCPHH]"**5-C.		
r+   c                 V   [         R                  R                  S/ SQS/SS9n [        S[        R
                  S// SQ5      n[        R                  " S	5      n[        S
[        R
                  SS/5      n[        R                  " / SQ[        R                  S9n[        U XU/U/SS9  g )Nr	   r   r   r   rE   r   r9   )r   r?   rp   r   r   ro   r?   )rp   r   ry   ir   test_dequantizelinear_int2r   )
r   r   r    r   r   INT2r!   r%   r"   r   r&   s        r(   export_int2DequantizeLinear.export_int2  s    {{$$3E	 % 
 [--sNC**Q-">;3C3CTA3OHH_BJJ7-C-		
r+   c                 V   [         R                  R                  S/ SQS/SS9n [        S[        R
                  S// SQ5      n[        R                  " S	5      n[        S
[        R
                  SS/5      n[        R                  " / SQ[        R                  S9n[        U XU/U/SS9  g )Nr	   r   r   r   rE   r   r2   )r   r?   r   g      ?ry   r   r   ro   )r   r   rp   r   rz   r    test_dequantizelinear_float4e2m1r   )
r   r   r    r   r   
FLOAT4E2M1r!   r%   r"   r   r&   s        r(   export_float4e2m1"DequantizeLinear.export_float4e2m1  s    {{$$3E	 % 
 [33aS:MN**Q-">;3I3I4RSQTUHH&bjj9-C3		
r+   c            	       ^^^ [         R                  R                  S/ SQS/SSS9n [        R                  " SS/S	S
/SS//SS/SS/SS//SS/SS/SS//SS/SS/SS////[        R
                  S9m[        R                  " SS/SS /SS//S!S/SS/S!S////[        R                  S9m[        R                  " SS"/S"S/SS#//SS/SS/S$S////[        R
                  S9nTR                  UR                  :X  d   eSm[        UUU4S% j[        [        TR                  5      5       5       5      (       d   eTR                  T   TR                  T   -  S":X  d   eTR                  T   TR                  T   -  n[        R                  " TUTS&9n[        R                  " XTS&9nTR                  [        R                  5      UR                  [        R                  5      -
  U-  n[        U TTU/U/S'S(9  g ))Nr	   r   r   r?   r   )r   r   rF   
block_sizer   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   rq   !   A   *   r7   r8   r9   r:   r;   r<   r   g      @rL   g      @rK   g      @r      r
   c              3  r   >#    U  H,  nUT:w  d  M  TR                   U   TR                   U   :H  v   M.     g 7f)N)shape).0i
block_axisr   r   s     r(   	<genexpr>2DequantizeLinear.export_blocked.<locals>.<genexpr>^  s7      
(J +AGGAJ'--**(s   
7&7)repeatsrF   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_blockedDequantizeLinear.export_blocked0  sX   {{$$3E % 
 HH Wr3i"b2Wr2hR1Wr2hR12YC3*5	 ((

 (( 3Z#sc3Z83Z#sc3Z8 **
 xx VaVaW-VaVb!W- ((
 }} 2 2222
 
3qww<(
 
 
 	
 

 wwz"W]]:%>>!CCC''*%z)BB !iizR#%99
$
 
 HHRZZ #;#B#B2::#NN  	w-C0		
r+    N)returnNone)__name__
__module____qualname____firstlineno__staticmethodr)   rB   rQ   rV   r[   r`   re   rj   rv   r}   r   r   r   r   __static_attributes__r   r+   r(   r	   r	      s   
 
( 
 
> 
 
( 
 
( 
 
* 
 
( 
 
& 
 
& 
 
* 
 
* 
 
* 
 
* 
 
* 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
t f
r+   