
    Si                    v    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
Jr  S rS rS rS	 r " S
 S\5      rg)    )annotationsN)Base)expect)apply_affine_transformconstruct_original_gridc                   [         R                  " [         R                  " U 5      [         R                  " U 5      [         R                  " U 5      [         R                  " U 5      [         R                  " U 5      [         R
                  " U 5      * [         R                  " U 5      [         R
                  " U 5      [         R                  " U 5      /	SS9R                  SSS5      n[         R                  " [         R                  " U5      [         R                  " U5      [         R
                  " U5      [         R                  " U5      [         R                  " U5      [         R                  " U5      [         R
                  " U5      * [         R                  " U5      [         R                  " U5      /	SS9R                  SSS5      n[         R                  " [         R                  " U5      UUU[         R                  " U5      UUU[         R                  " U5      /	SS9R                  SSS5      n[         R                  " U[         R                  " U5      [         R                  " U5      [         R                  " U5      U	[         R                  " U5      [         R                  " U5      [         R                  " U5      U
/	SS9R                  SSS5      n[         R                  " [         R                  " X#U/5      5      R                  SSS5      nX-  U-  U-  n[         R                  " US5      n[         R                  " UU45      n[         R                  " US5      nUR                  [         R                  5      $ )Naxis      r      r   )npstack	ones_like
zeros_likecossinreshape	transposearrayhstackastypefloat32)angle1angle2offset_xoffset_yoffset_zshear_xshear_yshear_zscale_xscale_yscale_zrot_xrot_yshearscaletranslationrotation_matrixaffine_matrixs                     e/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/onnx/backend/test/case/node/affinegrid.pycreate_affine_matrix_3dr/      s    HHLL MM&!MM&!MM&!FF6NVVF^OMM&!FF6NFF6N
	
  gb!Q 
 HHFF6NMM&!FF6NMM&!LL MM&!VVF^OMM&!FF6N
	
  gb!Q 
 HHLL!LL!LL!
	
  gb!Q 
 HHMM'"MM'"MM'"MM'"MM'"MM'"
	
  gb!Q 
 ,,rxxX(FGHPP
AqK me+e3Oll?I>OII<=MLL	:M

++    c                   [         R                  " [         R                  " U 5      [         R                  " U 5      * [         R                  " U 5      [         R                  " U 5      /SS9R	                  SSS5      n[         R                  " [         R
                  " U5      X4[         R
                  " U5      /SS9R	                  SSS5      n[         R                  " U[         R                  " U5      [         R                  " U5      U/SS9R	                  SSS5      n	[         R                  " [         R                  " X/5      5      R	                  SSS5      n
Xx-  U	-  n[         R                  " US5      n[         R                  " X45      n[         R                  " US5      nUR                  [         R                  5      $ )Nr	   r
   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r!   r"   r$   r%   rotr)   r*   r+   r,   r-   s                r.   create_affine_matrix_2dr3   `   sR    ((	"&&."&&."&&.IPRgb!Q  HH	g	",,w2GHrgb!Q 
 HH	"--("--*@'JQSgb!Q 
 ,,rxx(<=>FFr1aPKkE)Oll?I>OII<=MLL	:M

++r0   c            	        [         R                  " [         R                  S-  [         R                  S-  /5      n [         R                  " SS/5      n[         R                  " SS/5      n[         R                  " SS/5      n[         R                  " S	S
/5      n[         R                  " SS/5      n[         R                  " SS/5      n[        XX#XEU5      $ )N   r         @      @ffffff
皙?            ?333333?333333ӿ皙@@?)r   r   pir3   )angler   r   r!   r"   r$   r%   s          r.   create_theta_2drC   t   s    HHbeeai+,Exxc
#Hxxs$Hhhc{#GhhT{#GhhSz"GhhSz"G"Gg r0   c                    [         R                  " [         R                  S-  [         R                  S-  /5      n [         R                  " [         R                  S-  [         R                  S-  /5      n[         R                  " SS/5      n[         R                  " SS/5      n[         R                  " S	S
/5      n[         R                  " SS/5      n[         R                  " SS/5      n[         R                  " SS/5      n[         R                  " S
S/5      n[         R                  " SS/5      n	[         R                  " SS/5      n
[        U UUUUUUUUU	U
5      $ )Nr5   r      r   r6   r7   r8   r9   gr>   r:   r;   r<   r=   gffffff?gɿr?   r@   g      ?)r   r   rA   r/   )r   r   r   r   r    r!   r"   r#   r$   r%   r&   s              r.   create_theta_3drF      s   XXruuqy"%%!),-FXXruuqy"%%!),-Fxxc
#Hxxs$Hxxs$Hhhc{#GhhT{#GhhT{#GhhSz"GhhSz"GhhSz"G" r0   c                  <    \ rS rSr\SS j5       r\SS j5       rSrg)
AffineGrid   c                 D   [        5       n [        U 5      SSS4u  pp4X44nS H{  n[        R                  R	                  SSS/S/US	9n[        XV5      n[        X5      n	S
n
US:X  a  U
S-  n
[        UU [        R                  " XX4/[        R                  S9/U	/U
S9  M}     g )Nr      rE   r   r   rH   thetasizegridinputsoutputsalign_cornerstest_affine_grid_2dr   _align_cornersdtyperQ   rR   name)rC   lenonnxhelper	make_noder   r   r   r   r   int64)theta_2dNCHW	data_sizerS   nodeoriginal_gridrO   	test_names              r.    export_2d_no_reference_evaluator+AffineGrid.export_2d_no_reference_evaluator   s    "$]Aq!+
aF	#M;;(((+	 ) D 4IMM)(BD-I!--	 "((A!<rxx"HI	 $r0   c                 L   [        5       n [        U 5      SSSS4u  pp4nX4U4nS H|  n[        R                  R	                  SSS/S	/US
9n[        Xg5      n	[        X	5      n
SnUS:X  a  US-  n[        UU [        R                  " XX4U/[        R                  S9/U
/US9  M~     g )Nr   r5   rK   rE   rL   rH   rM   rN   rO   rP   test_affine_grid_3dr   rU   rV   rX   )rF   rZ   r[   r\   r]   r   r   r   r   r   r^   )theta_3dr`   ra   Drb   rc   rd   rS   re   rf   rO   rg   s               r.    export_3d_no_reference_evaluator+AffineGrid.export_3d_no_reference_evaluator   s    "$Hq!Q1aA1I	#M;;(((+	 ) D 4IMM)(BD-I!--	 "((A!?"(("KL	 $r0    N)returnNone)__name__
__module____qualname____firstlineno__staticmethodrh   rn   __static_attributes__rp   r0   r.   rH   rH      s(     2  r0   rH   )
__future__r   numpyr   r[   onnx.backend.test.case.baser   onnx.backend.test.case.noder   !onnx.reference.ops.op_affine_gridr   r   r/   r3   rC   rF   rH   rp   r0   r.   <module>r~      s=    #   , .L,^,(
83 3r0   