o
    ¡¿¯i¶  ã                   @   s*   d dl Z dd„ Zd	dd„Z	 d
dd„ZdS )é    Nc                 C   s   t | tƒr| S | | fS )N)Ú
isinstanceÚtuple)Únum© r   úQ/home/ubuntu/.local/lib/python3.10/site-packages/espnet2/enh/layers/conv_utils.pyÚ	num2tuple   s   r   é   c                 C   sÈ   t | ƒt |ƒt |ƒt |ƒt |ƒf\} }}}}t |d ƒt |d ƒf}t | d t|d ƒ |d |d d   d |d  d ¡}t | d t|d ƒ |d |d d   d |d  d ¡}||fS ©Nr   r   )r   ÚmathÚfloorÚsum)Úh_wÚkernel_sizeÚstrideÚpadÚdilationÚhÚwr   r   r   Úconv2d_output_shape	   s   û6ÿ6ÿr   c                 C   sÔ   t | ƒt |ƒt |ƒt |ƒt |ƒt |ƒf\} }}}}}t |d ƒt |d ƒf}| d d |d  t|d ƒ |d |d d   |d  d }| d d |d  t|d ƒ |d |d d   |d  d }||fS r	   )r   r   )r   r   r   r   r   Úout_padr   r   r   r   r   Úconvtransp2d_output_shape   s:   ú
ÿþýüÿ
ÿþýüÿr   )r   r   r   r   )r   r   r   r   r   )r
   r   r   r   r   r   r   r   Ú<module>   s
   
ÿ