§
    1�Åj”  ã                  ó~   — 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
mZ d„ Zd„ Zd„ Zd	„ Z G d
„ de¦  «        ZdS )é    )ÚannotationsN)ÚBase)Úexpect)Úapply_affine_transformÚconstruct_original_gridc                óÂ  — t          j        t          j        | ¦  «        t          j        | ¦  «        t          j        | ¦  «        t          j        | ¦  «        t          j        | ¦  «        t          j        | ¦  «         t          j        | ¦  «        t          j        | ¦  «        t          j        | ¦  «        g	d¬¦  «                             ddd¦  «        }t          j        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «         t          j        |¦  «        t          j        |¦  «        g	d¬¦  «                             ddd¦  «        }t          j        t          j        |¦  «        |||t          j        |¦  «        |||t          j        |¦  «        g	d¬¦  «                             ddd¦  «        }t          j        |t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        |	t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        |
g	d¬¦  «                             ddd¦  «        }t          j        t          j        |||g¦  «        ¦  «                             ddd¦  «        }||z  |z  |z  }t          j        |d¦  «        }t          j	        ||f¦  «        }t          j        |d¦  «        }| 
                    t           j        ¦  «        S )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                     úWC:\Projects\Historical\venv\Lib\site-packages\onnx/backend/test/case/node/affinegrid.pyÚcreate_affine_matrix_3dr/      sê  € õ ŒHåŒL˜Ñ Ô ÝŒM˜&Ñ!Ô!ÝŒM˜&Ñ!Ô!ÝŒM˜&Ñ!Ô!ÝŒF�6‰NŒNÝŒV�F‰^Œ^ˆOÝŒM˜&Ñ!Ô!ÝŒF�6‰NŒNÝŒF�6‰NŒNð
	
ð ðñ ô ÷ ‚gˆb�!�QÑÔð 
õ ŒHåŒF�6‰NŒNÝŒM˜&Ñ!Ô!ÝŒF�6‰NŒNÝŒM˜&Ñ!Ô!ÝŒL˜Ñ Ô ÝŒM˜&Ñ!Ô!ÝŒV�F‰^Œ^ˆOÝŒM˜&Ñ!Ô!ÝŒF�6‰NŒNð
	
ð ðñ ô ÷ ‚gˆb�!�QÑÔð 
õ ŒHåŒL˜Ñ!Ô!ØØØÝŒL˜Ñ!Ô!ØØØÝŒL˜Ñ!Ô!ð
	
ð ðñ ô ÷ ‚gˆb�!�QÑÔð 
õ ŒHàÝŒM˜'Ñ"Ô"ÝŒM˜'Ñ"Ô"ÝŒM˜'Ñ"Ô"ØÝŒM˜'Ñ"Ô"ÝŒM˜'Ñ"Ô"ÝŒM˜'Ñ"Ô"Øð
	
ð ðñ ô ÷ ‚gˆb�!�QÑÔð 
õ ”,�rœx¨°8¸XÐ(FÑGÔGÑHÔH×PÒPØ
ˆAˆqñô €Kð ˜e‘m eÑ+¨eÑ3€OÝ”l ?°IÑ>Ô>€OÝ”I˜°Ð<Ñ=Ô=€MÝ”L °	Ñ:Ô:€MØ×Ò¥¤
Ñ+Ô+Ð+ó    c                ó†  — t          j        t          j        | ¦  «        t          j        | ¦  «         t          j        | ¦  «        t          j        | ¦  «        gd¬¦  «                             ddd¦  «        }t          j        t          j        |¦  «        ||t          j        |¦  «        gd¬¦  «                             ddd¦  «        }t          j        |t          j        |¦  «        t          j        |¦  «        |gd¬¦  «                             ddd¦  «        }	t          j        t          j        ||g¦  «        ¦  «                             ddd¦  «        }
||z  |	z  }t          j        |d¦  «        }t          j	        ||
f¦  «        }t          j        |d¦  «        }| 
                    t           j        ¦  «        S )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   `   sˆ  € õ Œ(Ý	Œ�‰Œ�"œ& ™.œ.˜­"¬&°©.¬.½"¼&À¹.¼.ÐIÐPRðñ ô ç‚gˆb�!�QÑÔð õ ŒHÝ	Œ�gÑ	Ô	 ¨µ"´,¸wÑ2GÔ2GÐHÈrðñ ô ç‚gˆb�!�QÑÔð 
õ ŒHØ	•"”- Ñ(Ô(­"¬-¸Ñ*@Ô*@À'ÐJÐQSðñ ô ç‚gˆb�!�QÑÔð 
õ ”,�rœx¨°8Ð(<Ñ=Ô=Ñ>Ô>×FÒFÀrÈ1ÈaÑPÔP€KØ˜E‘k EÑ)€OÝ”l ?°IÑ>Ô>€OÝ”I˜°Ð<Ñ=Ô=€MÝ”L °	Ñ:Ô:€MØ×Ò¥¤
Ñ+Ô+Ð+r0   c            	     ó”  — t          j        t           j        dz  t           j        dz  g¦  «        } t          j        ddg¦  «        }t          j        ddg¦  «        }t          j        ddg¦  «        }t          j        d	d
g¦  «        }t          j        ddg¦  «        }t          j        ddg¦  «        }t          | ||||||¦  «        S )Né   r   ç      @ç      @çffffff
Àçš™™™™™ñ?ç      à¿ç      à?ç333333Ó?ç333333Ó¿çš™™™™™@çÍÌÌÌÌÌ@çÍÌÌÌÌÌì?)r   r   Úpir3   )Úangler   r   r!   r"   r$   r%   s          r.   Úcreate_theta_2drC   t   sµ   € ÝŒH•b”e˜a‘i¥¤¨¡Ð+Ñ,Ô,€EÝŒx˜˜c˜
Ñ#Ô#€HÝŒx˜˜s˜Ñ$Ô$€HÝŒh˜˜c�{Ñ#Ô#€GÝŒh˜˜T�{Ñ#Ô#€GÝŒh˜˜S�zÑ"Ô"€GÝŒh˜˜S�zÑ"Ô"€GÝ"Øˆx˜ 7¨G°W¸gñô ð r0   c                 ó€  — t          j        t           j        dz  t           j        dz  g¦  «        } t          j        t           j        dz  t           j        dz  g¦  «        }t          j        ddg¦  «        }t          j        ddg¦  «        }t          j        d	d
g¦  «        }t          j        ddg¦  «        }t          j        ddg¦  «        }t          j        ddg¦  «        }t          j        d
dg¦  «        }t          j        ddg¦  «        }	t          j        ddg¦  «        }
t          | |||||||||	|
¦  «        S )Nr5   r   é   r   r6   r7   r8   r9   gš™™™™™ñ¿r>   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   € ÝŒX•r”u˜q‘y¥"¤%¨!¡)Ð,Ñ-Ô-€FÝŒX•r”u˜q‘y¥"¤%¨!¡)Ð,Ñ-Ô-€FÝŒx˜˜c˜
Ñ#Ô#€HÝŒx˜˜s˜Ñ$Ô$€HÝŒx˜˜s˜Ñ$Ô$€HÝŒh˜˜c�{Ñ#Ô#€GÝŒh˜˜T�{Ñ#Ô#€GÝŒh˜˜T�{Ñ#Ô#€GÝŒh˜˜S�zÑ"Ô"€GÝŒh˜˜S�zÑ"Ô"€GÝŒh˜˜S�zÑ"Ô"€Gå"ØØØØØØØØØØØñô ð r0   c                  ó>   — e Zd Zedd„¦   «         Zedd„¦   «         ZdS )Ú
AffineGridÚreturnÚNonec                 óz  — t          ¦   «         } t          | ¦  «        dddf\  }}}}||f}dD ]�}t          j                             dddgdg|¬	¦  «        }t          ||¦  «        }t          | |¦  «        }	d
}
|dk    r|
dz  }
t          || t          j	        ||||gt          j
        ¬¦  «        g|	g|
¬¦  «         ŒŽd S )Nr   é   rE   ©r   r   rH   ÚthetaÚsizeÚgrid©ÚinputsÚoutputsÚalign_cornersÚtest_affine_grid_2dr   Ú_align_corners©Údtype©rR   rS   Úname)rC   ÚlenÚonnxÚhelperÚ	make_noder   r   r   r   r   Úint64)Útheta_2dÚNÚCÚHÚWÚ	data_sizerT   ÚnodeÚoriginal_gridrP   Ú	test_names              r.   Ú export_2d_no_reference_evaluatorz+AffineGrid.export_2d_no_reference_evaluatorž   sý   € å"Ñ$Ô$ˆÝ˜‘]”] A q¨!Ð+‰
ˆˆ1ˆa�Ø˜�Fˆ	Ø#ð 	ð 	ˆMÝ”;×(Ò(ØØ Ð(Ø˜Ø+ð	 )ñ ô ˆDõ 4°I¸}ÑMÔMˆMÝ)¨(°MÑBÔBˆDà-ˆIØ Ò!Ð!ØÐ-Ñ-�	ÝØØ ¥"¤(¨A¨q°!°Q¨<½r¼xÐ"HÑ"HÔ"HÐIØ˜Øð	ñ ô ð ð ð	ð 	r0   c                 ó‚  — t          ¦   «         } t          | ¦  «        ddddf\  }}}}}|||f}dD ]Ž}t          j                             dddgd	g|¬
¦  «        }t          ||¦  «        }	t          | |	¦  «        }
d}|dk    r|dz  }t          || t          j	        |||||gt          j
        ¬¦  «        g|
g|¬¦  «         Œ�d S )Nr   r5   rL   rE   rM   rH   rN   rO   rP   rQ   Útest_affine_grid_3dr   rV   rW   rY   )rF   r[   r\   r]   r^   r   r   r   r   r   r_   )Útheta_3dra   rb   ÚDrc   rd   re   rT   rf   rg   rP   rh   s               r.   Ú export_3d_no_reference_evaluatorz+AffineGrid.export_3d_no_reference_evaluator¸   s  € å"Ñ$Ô$ˆÝ˜H™œ q¨!¨Q°Ð1‰ˆˆ1ˆa��AØ˜˜1�Iˆ	Ø#ð 	ð 	ˆMÝ”;×(Ò(ØØ Ð(Ø˜Ø+ð	 )ñ ô ˆDõ 4°I¸}ÑMÔMˆMÝ)¨(°MÑBÔBˆDà-ˆIØ Ò!Ð!ØÐ-Ñ-�	ÝØØ ¥"¤(¨A¨q°!°Q¸¨?Å"Ä(Ð"KÑ"KÔ"KÐLØ˜Øð	ñ ô ð ð ð	ð 	r0   N)rI   rJ   )Ú__name__Ú
__module__Ú__qualname__Ústaticmethodri   rn   © r0   r.   rH   rH   �   sR   € € € € € Øðð ð ñ „\ðð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   rs   r0   r.   ú<module>ry      sî   ðð #Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð à €€€Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø .Ð .Ð .Ð .Ð .Ð .ðð ð ð ð ð ð ð ðL,ð L,ð L,ð^,ð ,ð ,ð(
ð 
ð 
ðð ð ð83ð 3ð 3ð 3ð 3�ñ 3ô 3ð 3ð 3ð 3r0   