o
    oiz                     @   s   d dl mZ deddfddZdeddfdd	Zd
eddfddZdeddfddZdeddfddZdeddfddZdeddfddZdeddfddZ	dS )    )TensorzreturnNc                 C   sN   | j }t|}|dkr|d dks|dkr|  r|dkr%td| j  d S N      r   z(Invalid input size, we expect [B]. Got: shapelennumel
ValueError)r   z_shapelen_z_shape r   S/home/ubuntu/.local/lib/python3.10/site-packages/kornia/geometry/liegroup/_utils.pycheck_so2_z_shape   s
   ,r   tc                 C   sP   | j }t|}|dkr|d dks|dkr|d dks|dkr&td| d S )Nr   r   r   z9Invalid translation shape, we expect [B, 2], or [2] Got: r	   r
   r   )r   t_shapelen_t_shaper   r   r   check_so2_t_shape   
   0r   thetac                 C   sL   | j }t|}|dkr|d dks|dkr|  r|dkr$td| d S r   r   )r   theta_shapelen_theta_shaper   r   r   check_so2_theta_shape$   s   r   matrixc                 C   sp   | j }t|}|dkr|d dks/|d dks/|dkr'|d dks/|d dks/|dks/|dk r6td| d S )N   r   r   r   z8Invalid input size, we expect [B, 2, 2] or [2, 2]. Got: r   r   matrix_shapelen_matrix_shaper   r   r   check_so2_matrix_shape/        r!   c                 C   sB   |  dddD ]}|d |d ks|d |d  krtdqd S )Nr   )r   r   )r   r   )r   r   )r   r   zInvalid rotation matrix)reshaper   )r   mr   r   r   check_so2_matrix:   s
   "r&   c                 C   s   t |  d S )N)r   )r   r   r   r   check_se2_t_shape@   s   r'   vc                 C   sP   | j }t|}|dkr|d dks|dkr|d dks|dkr&td| d S )Nr   r   r   r   z0Invalid input shape, we expect [B, 3], [3] Got: r   )r(   v_shapelen_v_shaper   r   r   check_v_shapeD   r   r+   c                 C   sp   | j }t|}|dkr|d dks/|d dks/|dkr'|d dks/|d dks/|dks/|dk r6td| d S )Nr   r   r   r   z8Invalid input size, we expect [B, 3, 3] or [3, 3]. Got: r   r   r   r   r   check_se2_omega_shapeK   r"   r,   )
kornia.corer   r   r   r   r!   r&   r'   r+   r,   r   r   r   r   <module>   s   